=begin
===============================================================================
批量导入文本 By喵呜喵5
===============================================================================
【说明】
因为各种原因我们可能会使用记事本或者其他文本编辑器写剧本或者写对话
当我们要将写好的内容导入进游戏中时
如果只是导入七八句对话的话还好
但是如果对话有几百句的话一句一句用默认的方式一句句导入进工程中就很吃力了
这个脚本允许你将写在TXT中的对话批量导入进游戏的工程中
同时,这个脚本允许你在一句对话中输入超过4行以上的文字
(如果修改了脚本将对话框扩展到一次显示5行文字时这个功能就有用了)
注意:
1.使用前请备份你的工程,我不负责修正因为本脚本引起的任何工程数据丢失的问题
2.需要导入的TXT文档放在游戏工程目录下,起名为 Text.txt
3.需要导入的TXT文档编码要求为UTF8格式(请在保存时选择这个编码)
4.导入的对话保存在公共事件1中
5.使用下面设定部分的特殊符号用于区分每一句对话
=end
#==============================================================================
# 设定部分
#==============================================================================
M5MARK = "●"
#在这里设置一个符号用于对话的分割
#将这个符号插入到要分割那行的末尾,两个符号之间的内容将被视为一句对话
#请不要在对话的其他位置插入这个符号
#==============================================================================
# 设定结束
#==============================================================================
#==============================================================================
# 脚本部分
#==============================================================================
def read_txt
@file = Array.new
@flag = true
IO.foreach("Text.txt") do |line|
text = line.chomp.gsub("\xEF\xBB\xBF", "")
if @flag
@flag = false
@file.push(Array.new)
end
@flag = true if (text && text[-1] == M5MARK)
text = text.split(M5MARK)[0]
@file[-1].push(text ? text : "")
end
end
def save_common_event
event = load_data("Data/CommonEvents.rvdata2")
talk_command = RPG::EventCommand.new(101,0,["",0,0,2])
end_command = event[1].list.pop
@file.each do |message|
event[1].list.push talk_command
message.each do |line|
talk_content = RPG::EventCommand.new(401,0,[line])
event[1].list.push talk_content
end
end
event[1].list.push end_command
save_data(event,"Data/CommonEvents.rvdata2")
end
read_txt
save_common_event
msgbox "导入完毕!#{$TEST ? "\n请重新启动编辑器以查看效果" : ""}"
exit