赞 | 342 |
VIP | 10 |
好人卡 | 8 |
积分 | 262 |
经验 | 235776 |
最后登录 | 2024-9-23 |
在线时间 | 2387 小时 |
Lv5.捕梦者 (版主) 遠航の猫咪
- 梦石
- 3
- 星屑
- 23201
- 在线时间
- 2387 小时
- 注册时间
- 2005-10-15
- 帖子
- 1166
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
对话导出工具,具体见注释
cat发的一切脚本都有明确注释,确保新人能看懂
导出对话是cat的RGSS Assistant系列脚本第二弹,第一弹见"地图清洁工"
- #==============================================================================
- # ■ Dialog_Export
- #------------------------------------------------------------------------------
- # 对话导出工具 by SailCat
- # 该程序能够导出工程中的全部对话,包括对话中使用的控制指令等,方便剧情debug
- # 使用说明:
- # 插入本脚本到Game_Temp(注意:不是Main)之前后执行就可以,你也可以手工做:
- # dialog = Dialog_Export.new
- # dialog.export_dialog(1) # 导出第1张地图的对话
- # dialog.export_all_dialogs # 导出所有地图的对话
- # 导出的对话写在工程目录下的DialogScript.txt文件里
- # 注释掉第82行及以下的语句可以屏蔽这个功能,正常测试游戏
- #==============================================================================
- class Dialog_Export
- #--------------------------------------------------------------------------
- # ● 初期化
- #--------------------------------------------------------------------------
- def initialize
- # 删除前次导出的文件
- if FileTest.exist?("DialogScript.txt")
- File.delete("DialogScript.txt")
- end
- end
- #--------------------------------------------------------------------------
- # ● 执行导出对话
- # map_id: 地图ID
- #--------------------------------------------------------------------------
- def export_dialog(map_id)
- File.open("DialogScript.txt", "a") do |f|
- map_name = sprintf("Data/Map%03d.rxdata", map_id)
- if FileTest.exist?(map_name)
- # 载入当前地图
- f.write("-----------------------------------------------------\n")
- f.write(sprintf(" ■ Map: %d\n", map_id))
- f.write("-----------------------------------------------------\n")
- map = load_data(map_name)
- # 循环地图中所有事件
- for i in 1..999
- event = map.events[i]
- if event != nil
- t = false
- # 循环事件的每一页
- event.pages.each do |page|
- # 如果指令不为空
- if page.list.length > 0
- # 循环页的所有指令
- page.list.each do |command|
- # 检查“显示文章”指令
- case command.code
- when 101, 401
- # 输出事件提示字样
- if !t
- f.write(sprintf(" □ Event: %d: %s\n", event.id, event.name))
- f.write("-----------------------------------------------------\n")
- t = true
- end
- # 输出对话
- f.write(command.parameters[0])
- f.write("\n")
- end
- end
- end
- end
- # 结束输出对话
- if t
- f.write("-----------------------------------------------------\n")
- end
- end
- end
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 批量导出对话
- #--------------------------------------------------------------------------
- def export_all_dialogs
- for map_id in 1..999
- export_dialog(map_id)
- end
- end
- end
- dialog = Dialog_Export.new
- dialog.export_all_dialogs
- exit
复制代码 |
|