导出游戏中的全部对话
对话导出工具,具体见注释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") endend#--------------------------------------------------------------------------# ● 执行导出对话# 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 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) f.write("\n") end end end end # 结束输出对话 if t f.write("-----------------------------------------------------\n") end end end end endend#--------------------------------------------------------------------------# ● 批量导出对话#--------------------------------------------------------------------------def export_all_dialogs for map_id in 1..999 export_dialog(map_id) endendenddialog = Dialog_Export.newdialog.export_all_dialogsexit复制代码
本帖来自P1论坛作者DeathKing,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=142142若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]