Project1

标题: 自动换行的脚本跟选择框自适应的脚本冲突,求大神破解 [打印本页]

作者: oOxinlan    时间: 2014-4-15 14:58
标题: 自动换行的脚本跟选择框自适应的脚本冲突,求大神破解
图书馆伸手了两个脚本,使用时发现用了自动换行,选择框自适应就不能实现了,两个功能都想要,咋整??
以下选择框自适应宽度脚本:
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
作者: qqabcc    时间: 2014-4-15 16:36
脚本 中有些脚本不能有空行 或者用#填上。目测你的脚本有空行  可能是这问题  最好发范例
作者: oOxinlan    时间: 2014-4-15 16:40
qqabcc 发表于 2014-4-15 16:36
脚本 中有些脚本不能有空行 或者用#填上。目测你的脚本有空行  可能是这问题  最好发范例 ...

每个脚本单独运行都没问题,两个脚本功能间的冲突
作者: taroxd    时间: 2014-4-15 17:40
两个脚本确实会不兼容,要么放弃一个功能,要么对 pro_ex 进行重定义,使之与自动换行脚本兼容
我现在没有环境改不了脚本 =。 =
作者: situkei    时间: 2014-10-24 19:57
遇到同样的问题了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1