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