设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1632|回复: 5
打印 上一主题 下一主题

[已经过期] 自动换行的脚本跟选择框自适应的脚本冲突,求大神破解

[复制链接]

Lv2.观梦者

梦石
0
星屑
848
在线时间
250 小时
注册时间
2013-10-4
帖子
120
跳转到指定楼层
1
发表于 2014-4-15 14:58:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
图书馆伸手了两个脚本,使用时发现用了自动换行,选择框自适应就不能实现了,两个功能都想要,咋整??
以下选择框自适应宽度脚本:
class Window_ChoiceList

  def max_choice_width
    $game_message.choices.collect {|s| pro_ex(s) }.max
  end
  
  def pro_ex(str)
    s = convert_escape_characters(str)
    pos = {:x => 0, :y => -Graphics.height, :new_x => 0, :height => calc_line_height(s)}
    process_character(s.slice!(0, 1), s, pos) until s.empty?
    pos[:x]
  end
end

以下自动换行脚本:

class Window_Base

  alias :iisnow_convert_escape_characters :convert_escape_characters

  def convert_escape_characters(text)

    result = iisnow_convert_escape_characters(text)

    result.gsub!(/\ek/)          { "\k" }

    result
  end

  def process_character(c, text, pos)

    case c

    when "\r"  

      return

    when "\n"  

      process_new_line(text, pos) if !@auto_n

    when "\k"

      @auto_n = false

    when "\f"   

      process_new_page(text, pos)

    when "\e"   

      process_escape_character(obtain_escape_code(text), text, pos)

    else      
      process_normal_character(c,text,pos)

    end

  end

  

  def process_normal_character(c,text,pos)

    @auto_n = true

    text_width = text_size(c).width

    if real_width - pos[:x] > text_width

      draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)

      pos[:x] += text_width

    else
      process_new_line(text,pos)

      process_normal_character(c,text,pos)

    end

  end

  def real_width

    return self.width - 2 * standard_padding

  end

  

end


class Window_Message

  

  def process_normal_character(c,text,pos)

    super

    wait_for_one_character

  end


end

Lv1.梦旅人

梦石
0
星屑
55
在线时间
79 小时
注册时间
2013-1-15
帖子
100
2
发表于 2014-4-15 16:36:16 | 只看该作者
脚本 中有些脚本不能有空行 或者用#填上。目测你的脚本有空行  可能是这问题  最好发范例

点评

空行不会有问题,不要乱说  发表于 2014-4-15 17:37
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
848
在线时间
250 小时
注册时间
2013-10-4
帖子
120
3
 楼主| 发表于 2014-4-15 16:40:10 | 只看该作者
qqabcc 发表于 2014-4-15 16:36
脚本 中有些脚本不能有空行 或者用#填上。目测你的脚本有空行  可能是这问题  最好发范例 ...

每个脚本单独运行都没问题,两个脚本功能间的冲突
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-4-15 17:40:20 | 只看该作者
两个脚本确实会不兼容,要么放弃一个功能,要么对 pro_ex 进行重定义,使之与自动换行脚本兼容
我现在没有环境改不了脚本 =。 =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
139 小时
注册时间
2014-6-12
帖子
128
5
发表于 2014-10-24 19:57:44 | 只看该作者
遇到同样的问题了

点评

真神奇,我的基础脚本269行就是一个end根本不可能在这里报nameerror,我们用的一定不是同一个脚本  发表于 2014-10-24 21:07
嗯 基础脚本269报nameerror 新建的工程也报,就舍弃了  发表于 2014-10-24 20:13
http://rm.66rpg.com/home.php?mod=space&uid=291206&do=blog&id=11571 这个自动换行也会?  发表于 2014-10-24 20:03
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-14 10:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表