Project1
标题:
修正\c[1]、\g等令对话换行不准确问题
[打印本页]
作者:
3535
时间:
2008-3-26 03:54
标题:
修正\c[1]、\g等令对话换行不准确问题
范例工程:
http://rpg.blue/upload_program/files/Project1000_86904252.rar
Interpreter3的command_101
return true
end 下
@index += 1 上
加入
# 插入换行符
a = $game_temp.message_text.gsub(/\\\\/) { "㏒" }
# 有需要自已增加...如果用了一些对话脚本的变更文字大小此脚本没办法解决
a.gsub!(/\\[Cc]\[([0-9]+)\]/) { "㏑" }
a.gsub!(/\\[Vv]\[([0-9]+)\]/) { "㏑" }
a.gsub!(/\\[Gg]/) { "㏒" }
nsize = 0
letter = 0
done1 = nil
done2 = nil
ary = $game_temp.message_text.scan(/./)
ary2 = a.scan(/./)
for i in 0...ary2.size
rege = /[[:punct:]]/e =~ ary2[i]
rege2 = /[[:blank:]]/e =~ ary2[i]
if ary2[i] == "㏒"
letter += 2 # += 后的是有多少个字符 eg: \g <--2个字符
elsif ary2[i] == "㏑"
letter += 5 # \c[2] <--5个字符
else
if ary2[i].scan(/\d/) != [] or ary2[i].tr_s!("a-z", "a-z") != nil or rege == 0 or rege2 == 0
nsize += 0.5
letter += 1
else
nsize += 1
letter += 1
end
end
if done1 != true
if nsize.round >= 20 # 一行可容纳字数,自己调试
ary.insert(letter, "\n")
done1 = true
end
end
if done2 != true
if nsize.round >= 40
ary.insert(letter+1, "\n")
done2 = true
end
end
if nsize.round >= 60
ary.insert(letter+1, "\n")
end
end
$game_temp.message_text = ary.to_s
复制代码
if ary2
.scan(/\d/) != [] or ary2
.tr_s!("a-z", "a-z") != nil or rege == 0 or rege2 == 0
这行是分辨半角全角字...对默认脚本好像没什么用
改了对话框大小的游戏较有用..
此为初步构思,有bug请提出
提供一些有用字符;
∩∪⊥∠∟⊿㎡㏎㎏㏕{/gg}
以上的只适用在默认脚本
总括来说,要根据自己的游戏调整,要有点脚本基础才能用好。
作者:
沉影不器
时间:
2008-3-26 03:56
提示:
作者被禁止或删除 内容自动屏蔽
作者:
3535
时间:
2008-3-26 03:57
漏了说,以上的只适用在默认脚本
总括来说,要根据自己的游戏调整,要有点脚本基础才能用好。
作者:
美兽
时间:
2008-3-26 04:00
原来是要弄这个,原以为还是破解.
作者:
水迭澜
时间:
2008-3-26 04:05
在显示文章那把\n那个东西去了不行么……(天音:这人很天真……)
作者:
3535
时间:
2008-3-26 04:41
以下引用
水迭澜于2008-3-25 20:05:04
的发言:
在显示文章那把\n那个东西去了不行么……(天音:这人很天真……)
[本贴由作者于 2008-3-25 20:05:58 最后编辑]
不就无法换行..
作者:
水迭澜
时间:
2008-3-26 04:58
为什么我记得window_message里有换行的……= =bbb
好吧我退散
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1