#==============================================================================
# ■ Find_Command
#------------------------------------------------------------------------------
# 查找事件指令 by SailCat
# 该程序能够全局查找工程中的指定指令,方便剧情、事件debug
# 使用说明:
# 插入本脚本到Game_Temp(注意:不是Main)之前后执行就可以,你也可以手工做:
# finder = Find_Command.new
# finder.search(112) # 查找“条件分歧”指令
# finder.search(121, 5, 5, 1) # 查找“关闭5号开关”指令
# finder.search(201, nil, nil, nil, nil, 2) # 查找“场所移动后角色朝下”指令
# 找到的指令输出到FindLog.txt文件里
# 具体参数见脚本尾部。
#==============================================================================
class Find_Command
#--------------------------------------------------------------------------
# ● 常量
#--------------------------------------------------------------------------
COMMAND_CODES = {
101 => "显示文章",
102 => "显示选择项",
103 => "数值输入的处理",
104 => "更改文章选项",
105 => "按钮输入的处理",
106 => "等待",
108 => "注释",
111 => "条件分歧",
112 => "循环",
113 => "中断循环",
115 => "中断事件处理",
116 => "暂时消除事件",
117 => "公共事件",
118 => "标签",
119 => "标签跳转",
121 => "开关操作",
122 => "变量操作",
123 => "独立开关操作",
124 => "计时器操作",
125 => "增减金钱",
126 => "增减物品",
127 => "增减武器",
128 => "增减防具",
129 => "替换队员",
131 => "更改窗口外观",
132 => "更改战斗 BGM",
133 => "更改战斗结束 ME",
134 => "更改禁止存档",
135 => "更改禁止菜单",
136 => "更改禁止遇敌",
201 => "场所移动",
202 => "设置事件位置",
203 => "画面卷动",
204 => "更改地图设置",
205 => "更改雾的色调",
206 => "更改雾的不透明度",
207 => "显示动画",
208 => "更改透明状态",
209 => "设置移动路线",
210 => "等待移动结束",
221 => "准备渐变",
222 => "执行渐变",
223 => "更改画面色调",
224 => "画面闪烁",
225 => "画面震动",
231 => "显示图片",
232 => "移动图片",
233 => "旋转图片",
234 => "更改图片色调",
235 => "图片消失",
236 => "天气设置",
241 => "演奏 BGM",
242 => "淡出 BGM",
245 => "演奏 BGS",
246 => "淡出 BGS",
247 => "记忆 BGM / BGS",
248 => "还原 BGM / BGS",
249 => "演奏 ME",
250 => "演奏 SE",
251 => "停止 SE",
301 => "战斗处理",
302 => "商店处理",
303 => "名称输入处理",
311 => "增减 HP",
312 => "增减 SP",
313 => "更改状态",
314 => "完全回复",
315 => "增减 EXP",
316 => "增减等级",
317 => "增减能力值",
318 => "增减特技",
319 => "变更装备",
320 => "更改角色姓名",
321 => "更改角色职业",
322 => "更改角色图形",
331 => "增减敌人 HP",
332 => "增减敌人 SP",
333 => "更改敌人状态",
334 => "敌人出现",
335 => "敌人变身",
336 => "敌人完全回复",
337 => "显示动画",
338 => "伤害处理",
339 => "强制行动",
340 => "战斗中断",
351 => "呼叫菜单画面",
352 => "呼叫存档画面",
353 => "游戏结束",
354 => "返回标题画面",
355 => "脚本"
}
#--------------------------------------------------------------------------
# ● 初期化
#--------------------------------------------------------------------------
def initialize
# 删除前次导出的文件
if FileTest.exist?("FindLog.txt")
File.delete("FindLog.txt")
end
@map_infos = load_data("Data/MapInfos.rxdata")
end
def printMapTree(f,map_id)
#f.write(sprintf(" ■ Map: %d (%s)", map_id,
#@map_infos[map_id].name.split(/\|/)[0]))
#map_id = @map_infos[map_id].parent_id
#if map_id == 0
#return
#else
#f.write("-->")
#printMapTree(f,map_id)
#end
while map_id!=0
f.write(sprintf(" ■ Map: %d (%s)", map_id,
@map_infos[map_id].name.split(/\|/)[0]))
map_id = @map_infos[map_id].parent_id
if map_id!=0
f.write("-->")
end
end
f.write("\n")
end
#--------------------------------------------------------------------------
# ● 执行查找指令
# command_code: 指令的名称
# parameters: 指令的参数
#--------------------------------------------------------------------------
def search(command_code, *parameters)
File.open("FindLog.txt", "a") do |f|
#----------------------------start common event------------------------------
common_events_name = "Data/CommonEvents.rxdata"
if FileTest.exist?(common_events_name)
# 载入当前地图
f.write("-----------------------------------------------------\n")
f.write(" CommonEvents\n")
f.write("-----------------------------------------------------\n")
common_events = load_data(common_events_name)
#for i in 1..999
#common_event = common_events[i]
# i = 1
common_events.each do |common_event|
if common_event != nil #1-1-1(3)
# f.write(sprintf("CommonEvent ID: %d: %s[触发:%d,条件开关ID:%d]\n",
# common_event.id, common_event.name,common_event.trigger,common_event.switch_id))
t = false
event_list = common_event.list
#如果指令列表不为空
if event_list.length > 0
line = 0
# 循环事件的所有指令
event_list.each do |command|
# 如果指令名称匹配
if command_code == command.code
matched = true
# 逐个检查参数
para_size = [parameters.size, command.parameters.size].min
for j in 0...para_size
if parameters[j] != nil and parameters[j] != command.parameters[j]
matched = false
break
end
end
# 匹配的情况下
if matched
# 输出事件提示字样
if !t
# f.write(sprintf(" CommonEvent %d: %s (line:%03d/%03d)\n",
# common_event.id, common_event.name, line,event_list.length))
f.write(sprintf("CommonEvent ID: %d: %s[触发:%d,条件开关ID:%d]\n",
common_event.id, common_event.name,common_event.trigger,common_event.switch_id))
f.write("-----------------------------------------------------\n")
t = true
end
# 输出指令内容
f.write(sprintf("line:(%04d)/length:%04d) ",line,event_list.length))
f.write(COMMAND_CODES[command_code] + ": ")
for k in 0...command.parameters.size
f.write(command.parameters[k])
f.write(", ") if k < command.parameters.size - 1
end
f.write("\n")
end #0-0-0-0-0-0-0-0(7)
end
line += 1
end
end
end
# 结束输出指令内容
if t
f.write("-----------------------------------------------------\n")
end
end
end
f.write(" CommonEvents End\n")
f.write("-----------------------------------------------------\n")
#----------------------------end common event------------------------------
f.write(" Map Event\n")
f.write("-----------------------------------------------------\n")
for map_id in 1..999
map_name = sprintf("Data/Map%03d.rxdata", map_id)
if FileTest.exist?(map_name)
# 载入当前地图
#f.write("-----------------------------------------------------\n")
#f.write(sprintf(" ■ Map: %d (%s)\n", map_id,
# @map_infos[map_id].name.split(/\|/)[0]))
#f.write("-----------------------------------------------------\n")
map = load_data(map_name)
mt = false
# 循环地图中所有事件
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|
# 如果指令名称匹配
if command_code == command.code
matched = true
# 逐个检查参数
para_size = [parameters.size, command.parameters.size].min
for j in 0...para_size
if parameters[j] != nil and parameters[j] != command.parameters[j]
matched = false
break
end
end
# 匹配的情况下
if matched
# 输出事件提示字样
if !t
if !mt
#f.write("----MapTree------------------------------------------------\n")
printMapTree(f,map_id)
#f.write("\n----MapTree End------------------------------------------------\n")
mt = true;
end
f.write(sprintf(" □ Event %d: %s (%03d, %03d)\n",
event.id, event.name, event.x, event.y))
f.write("-----------------------------------------------------\n")
t = true
end
# 输出指令内容
f.write(COMMAND_CODES[command_code] + ": ")
for k in 0...command.parameters.size
f.write(command.parameters[k])
f.write(", ") if k < command.parameters.size - 1
end
f.write("\n")
end
end
end
end
end
# 结束输出指令内容
if t
f.write("-----------------------------------------------------\n")
end
end
end
end
end
f.write(" Map Event End\n")
f.write("-----------------------------------------------------\n")
end
end
end
#所有参数的指定,以下给出完整(可带参数查询)的参数表,没给出的说明不能带参数查询
#1)在最后一个指定参数之后的参数,如果不限制,可以省略
#2)在最后一个指定参数之前的参数,如果不限制,写成nil
# 显示文章: finder.search(101, 文章文本字符串) (注:暂只支持第1行文本)
# 显示选择项: finder.search(102, [选择项1, 选择项2, 选择项3, 选择项4], 取消的返回值)
# 数值输入的处理: finder.search(103, 变量id, 位数)
# 更改文章选项: finder.search(104, 位置上0/中1/下2,显示外框0/不显示外框1)
# 按钮输入的处理: finder.search(105, 变量id)
# 等待: finder.search(106, 帧数)
# 注释: finder.search(108, 注释文本字符串) (注:暂只支持第1行文本)
# 条件分歧: finder.search(111, 条件类别0-12, 条件参数1,条件参数2,...)
# 开关: finder.search(111, 0, 开关id, 开0/关1)
# 变量: finder.search(111, 1, 变量id, 常量比较0/变量比较1, 对像值(或对像变量id), 相等0/以上1/以下2/大于3/小于4/不等5)
# 独立开关: finder.search(111, 2, 独立开关编号A-D, 开0/关1)
# 计时: finder.search(111, 3, 时间, 以上0/以下1)
# 角色: finder.search(111, 4, 角色id, 同伴0/名称1/特技2/武器3/防具4/状态5, 比较的名称/特技id/武器id/防具id/状态id)
# 敌人: finder.search(111, 5, 敌人id, 出现0/状态1, 比较的状态id)
# 事件: finder.search(111, 6, 事件id/角色-1/本事件0, 朝向上8/左4/右6/下2)
# 钱: finder.search(111, 7, 钱数, 以上0/以下1)
# 物品: finder.search(111, 8, 物品id)
# 武器: finder.search(111, 9, 武器id)
# 防具: finder.search(111, 10, 防具id)
# 按钮: finder.search(111, 11, 按钮id(Input::A/B/C/X/Y/Z/L/R))
# 脚本: finder.search(111, 12, 脚本内容字符串)
# 公共事件: finder.search(117, 公共事件id)
# 标签: finder.search(118, 标签名字符串)
# 标签跳转: finder.search(119, 标签名字符串)
# 开关操作: finder.search(121, 起始开关id, 结束开关id, 开0/关1)(如单个操作则起始开关id=结束开关id)
# 变量操作: finder.search(122, 起始变量id, 结束变量id, 代入0/加法1/减法2/乘法3/除法4/剩余5, 操作值类别0-7, 操作值1, 操作值2)(如单个操作则起始变量id=结束变量id)
# 常量: 类别0,操作值1为常量值,无操作值2
# 变量: 类别1,操作值1为变量id,无操作值2
# 随机: 类别2,操作值1为起始值,操作值2为终止值
# 物品: 类别3,操作值1为物品id,无操作值2
# 角色: 类别4,操作值1为角色id,操作值2为取值类别,0-13分别对应lv/exp/hp/sp/mhp/msp/str/dex/agi/int/pdf/mdf/eva
# 敌人: 类别5,操作值1为敌人id,操作值2为取值类别,0-11分别对应hp/sp/mhp/msp/str/dex/agi/int/pdf/mdf/eva
# 事件: 类别6,操作值1为事件id,操作值2为取值类别,0-5分别对应x/y/朝向/屏x/屏y/地标
# 其它: 类别7,操作值1为取值类别,0-6分别对应地图/人数/钱/步数/游戏时间/计时/存档次数
# 独立开关操作: finder.search(123, 独立开关编号A-D,开0/关1)
# 计时器操作: finder.search(124, 开0/关1, 时间秒数)
# 增减金钱: finder.search(125, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减物品: finder.search(126, 物品id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减武器: finder.search(127, 武器id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减防具: finder.search(128, 防具id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 替换队员: finder.search(129, 角色id, 入0/出1, 原状0/初期化1)
# 更改窗口外观: finder.search(131, 外观文件名)
# 更改战斗 BGM: finder.search(132, BGM文件名)
# 更改战斗结束 ME: finder.search(133, ME文件名)
# 更改禁止存档: finder.search(134, 禁止0/允许1)
# 更改禁止菜单: finder.search(135, 禁止0/允许1)
# 更改禁止遇敌: finder.search(136, 禁止0/允许1)
# 场所移动: finder.search(201, 直接0/变量1, 地图id或其变量id, x坐标或其变量, y坐标或其变量, 朝向上8/左4/右6/下2)
# 设置事件位置: finder.search(202, 事件id, 直接0/变量1/交换2, x坐标或其变量/被交换事件id, y坐标或其变量, 朝向上8/左4/右6/下2)
# 画面卷动: finder.search(203, 卷动方向8/4/6/2, 卷动长度, 卷动速度1-6)
# 更改地图设置: finder.search(204, 远景0/雾1/背景2)
# 更改雾的色调: finder.search(205, nil, 帧数)
# 更改雾的不透明度: finder.search(206, 不透明度, 帧数)
# 显示动画: finder.search(207, 事件id, 动画id)
# 更改透明状态: finder.search(208, 透明0/普通1)
# 设置移动路线: finder.search(209, 事件id)
# 执行渐变: finder.search(222, 渐变文件名)
# 更改画面色调: finder.search(223, nil, 帧数)
# 画面闪烁: finder.search(224, nil, 帧数)
# 画面震动: finder.search(225, 强度, 频度, 帧数)
# 显示图片: finder.search(231, 图片id, 图片文件名)
# 移动图片: finder.search(232, 图片id)
# 旋转图片: finder.search(233, 图片id, 速度)
# 更改图片色调: finder.search(234, 图片id)
# 图片消失: finder.search(235, 图片id)
# 天气设置: finder.search(236, 无0/风1/雨2/雪3, 强度1-9, 持续)
# 演奏 BGM: finder.search(241, BGM文件名)
# 淡出 BGM: finder.search(242, 秒数)
# 演奏 BGS: finder.search(245, BGS文件名)
# 淡出 BGS: finder.search(246, 秒数)
# 演奏 ME: finder.search(249, ME文件名)
# 演奏 SE: finder.search(250, SE文件名)
# 战斗处理: finder.search(301, 队伍id, 不可逃0/可逃1, 不可败0/可败1)
# 名称输入处理: finder.search(303, 角色id, 字符数)
# 增减 HP: finder.search(311, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减 SP: finder.search(312, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 更改状态: finder.search(313, 角色id, 附加0/解除1, 状态id)
# 完全回复: finder.search(314, 角色id)
# 增减 EXP: finder.search(315, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减等级: finder.search(316, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减能力值: finder.search(317, 角色id, 0-5对应mhp/msp/str/dex/agi/int, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减特技: finder.search(318, 角色id, 学0/忘1, 特技id)
# 变更装备: finder.search(319, 角色id, 武器0/盾1/头2/甲3/饰4, 武器或防具id)
# 更改角色姓名: finder.search(320, 角色id, 名字)
# 更改角色职业: finder.search(321, 角色id, 职业id)
# 更改角色图形: finder.search(322, 角色id, 角色图文件名, 角色图色相, 战斗图文件名, 战斗图色相)
#finder = Find_Command.new
#finder.search(201,nil,nil,nil,nil,2)
#exit
#==============================================================================
# ■ Find_Command
#------------------------------------------------------------------------------
# 查找事件指令 by SailCat
# 该程序能够全局查找工程中的指定指令,方便剧情、事件debug
# 使用说明:
# 插入本脚本到Game_Temp(注意:不是Main)之前后执行就可以,你也可以手工做:
# finder = Find_Command.new
# finder.search(112) # 查找“条件分歧”指令
# finder.search(121, 5, 5, 1) # 查找“关闭5号开关”指令
# finder.search(201, nil, nil, nil, nil, 2) # 查找“场所移动后角色朝下”指令
# 找到的指令输出到FindLog.txt文件里
# 具体参数见脚本尾部。
#==============================================================================
class Find_Command
#--------------------------------------------------------------------------
# ● 常量
#--------------------------------------------------------------------------
COMMAND_CODES = {
101 => "显示文章",
102 => "显示选择项",
103 => "数值输入的处理",
104 => "更改文章选项",
105 => "按钮输入的处理",
106 => "等待",
108 => "注释",
111 => "条件分歧",
112 => "循环",
113 => "中断循环",
115 => "中断事件处理",
116 => "暂时消除事件",
117 => "公共事件",
118 => "标签",
119 => "标签跳转",
121 => "开关操作",
122 => "变量操作",
123 => "独立开关操作",
124 => "计时器操作",
125 => "增减金钱",
126 => "增减物品",
127 => "增减武器",
128 => "增减防具",
129 => "替换队员",
131 => "更改窗口外观",
132 => "更改战斗 BGM",
133 => "更改战斗结束 ME",
134 => "更改禁止存档",
135 => "更改禁止菜单",
136 => "更改禁止遇敌",
201 => "场所移动",
202 => "设置事件位置",
203 => "画面卷动",
204 => "更改地图设置",
205 => "更改雾的色调",
206 => "更改雾的不透明度",
207 => "显示动画",
208 => "更改透明状态",
209 => "设置移动路线",
210 => "等待移动结束",
221 => "准备渐变",
222 => "执行渐变",
223 => "更改画面色调",
224 => "画面闪烁",
225 => "画面震动",
231 => "显示图片",
232 => "移动图片",
233 => "旋转图片",
234 => "更改图片色调",
235 => "图片消失",
236 => "天气设置",
241 => "演奏 BGM",
242 => "淡出 BGM",
245 => "演奏 BGS",
246 => "淡出 BGS",
247 => "记忆 BGM / BGS",
248 => "还原 BGM / BGS",
249 => "演奏 ME",
250 => "演奏 SE",
251 => "停止 SE",
301 => "战斗处理",
302 => "商店处理",
303 => "名称输入处理",
311 => "增减 HP",
312 => "增减 SP",
313 => "更改状态",
314 => "完全回复",
315 => "增减 EXP",
316 => "增减等级",
317 => "增减能力值",
318 => "增减特技",
319 => "变更装备",
320 => "更改角色姓名",
321 => "更改角色职业",
322 => "更改角色图形",
331 => "增减敌人 HP",
332 => "增减敌人 SP",
333 => "更改敌人状态",
334 => "敌人出现",
335 => "敌人变身",
336 => "敌人完全回复",
337 => "显示动画",
338 => "伤害处理",
339 => "强制行动",
340 => "战斗中断",
351 => "呼叫菜单画面",
352 => "呼叫存档画面",
353 => "游戏结束",
354 => "返回标题画面",
355 => "脚本"
}
#--------------------------------------------------------------------------
# ● 初期化
#--------------------------------------------------------------------------
def initialize
# 删除前次导出的文件
if FileTest.exist?("FindLog.txt")
File.delete("FindLog.txt")
end
@map_infos = load_data("Data/MapInfos.rxdata")
end
def printMapTree(f,map_id)
#f.write(sprintf(" ■ Map: %d (%s)", map_id,
#@map_infos[map_id].name.split(/\|/)[0]))
#map_id = @map_infos[map_id].parent_id
#if map_id == 0
#return
#else
#f.write("-->")
#printMapTree(f,map_id)
#end
while map_id!=0
f.write(sprintf(" ■ Map: %d (%s)", map_id,
@map_infos[map_id].name.split(/\|/)[0]))
map_id = @map_infos[map_id].parent_id
if map_id!=0
f.write("-->")
end
end
f.write("\n")
end
#--------------------------------------------------------------------------
# ● 执行查找指令
# command_code: 指令的名称
# parameters: 指令的参数
#--------------------------------------------------------------------------
def search(command_code, *parameters)
File.open("FindLog.txt", "a") do |f|
#----------------------------start common event------------------------------
common_events_name = "Data/CommonEvents.rxdata"
if FileTest.exist?(common_events_name)
# 载入当前地图
f.write("-----------------------------------------------------\n")
f.write(" CommonEvents\n")
f.write("-----------------------------------------------------\n")
common_events = load_data(common_events_name)
#for i in 1..999
#common_event = common_events[i]
# i = 1
common_events.each do |common_event|
if common_event != nil #1-1-1(3)
# f.write(sprintf("CommonEvent ID: %d: %s[触发:%d,条件开关ID:%d]\n",
# common_event.id, common_event.name,common_event.trigger,common_event.switch_id))
t = false
event_list = common_event.list
#如果指令列表不为空
if event_list.length > 0
line = 0
# 循环事件的所有指令
event_list.each do |command|
# 如果指令名称匹配
if command_code == command.code
matched = true
# 逐个检查参数
para_size = [parameters.size, command.parameters.size].min
for j in 0...para_size
if parameters[j] != nil and parameters[j] != command.parameters[j]
matched = false
break
end
end
# 匹配的情况下
if matched
# 输出事件提示字样
if !t
# f.write(sprintf(" CommonEvent %d: %s (line:%03d/%03d)\n",
# common_event.id, common_event.name, line,event_list.length))
f.write(sprintf("CommonEvent ID: %d: %s[触发:%d,条件开关ID:%d]\n",
common_event.id, common_event.name,common_event.trigger,common_event.switch_id))
f.write("-----------------------------------------------------\n")
t = true
end
# 输出指令内容
f.write(sprintf("line:(%04d)/length:%04d) ",line,event_list.length))
f.write(COMMAND_CODES[command_code] + ": ")
for k in 0...command.parameters.size
f.write(command.parameters[k])
f.write(", ") if k < command.parameters.size - 1
end
f.write("\n")
end #0-0-0-0-0-0-0-0(7)
end
line += 1
end
end
end
# 结束输出指令内容
if t
f.write("-----------------------------------------------------\n")
end
end
end
f.write(" CommonEvents End\n")
f.write("-----------------------------------------------------\n")
#----------------------------end common event------------------------------
f.write(" Map Event\n")
f.write("-----------------------------------------------------\n")
for map_id in 1..999
map_name = sprintf("Data/Map%03d.rxdata", map_id)
if FileTest.exist?(map_name)
# 载入当前地图
#f.write("-----------------------------------------------------\n")
#f.write(sprintf(" ■ Map: %d (%s)\n", map_id,
# @map_infos[map_id].name.split(/\|/)[0]))
#f.write("-----------------------------------------------------\n")
map = load_data(map_name)
mt = false
# 循环地图中所有事件
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|
# 如果指令名称匹配
if command_code == command.code
matched = true
# 逐个检查参数
para_size = [parameters.size, command.parameters.size].min
for j in 0...para_size
if parameters[j] != nil and parameters[j] != command.parameters[j]
matched = false
break
end
end
# 匹配的情况下
if matched
# 输出事件提示字样
if !t
if !mt
#f.write("----MapTree------------------------------------------------\n")
printMapTree(f,map_id)
#f.write("\n----MapTree End------------------------------------------------\n")
mt = true;
end
f.write(sprintf(" □ Event %d: %s (%03d, %03d)\n",
event.id, event.name, event.x, event.y))
f.write("-----------------------------------------------------\n")
t = true
end
# 输出指令内容
f.write(COMMAND_CODES[command_code] + ": ")
for k in 0...command.parameters.size
f.write(command.parameters[k])
f.write(", ") if k < command.parameters.size - 1
end
f.write("\n")
end
end
end
end
end
# 结束输出指令内容
if t
f.write("-----------------------------------------------------\n")
end
end
end
end
end
f.write(" Map Event End\n")
f.write("-----------------------------------------------------\n")
end
end
end
#所有参数的指定,以下给出完整(可带参数查询)的参数表,没给出的说明不能带参数查询
#1)在最后一个指定参数之后的参数,如果不限制,可以省略
#2)在最后一个指定参数之前的参数,如果不限制,写成nil
# 显示文章: finder.search(101, 文章文本字符串) (注:暂只支持第1行文本)
# 显示选择项: finder.search(102, [选择项1, 选择项2, 选择项3, 选择项4], 取消的返回值)
# 数值输入的处理: finder.search(103, 变量id, 位数)
# 更改文章选项: finder.search(104, 位置上0/中1/下2,显示外框0/不显示外框1)
# 按钮输入的处理: finder.search(105, 变量id)
# 等待: finder.search(106, 帧数)
# 注释: finder.search(108, 注释文本字符串) (注:暂只支持第1行文本)
# 条件分歧: finder.search(111, 条件类别0-12, 条件参数1,条件参数2,...)
# 开关: finder.search(111, 0, 开关id, 开0/关1)
# 变量: finder.search(111, 1, 变量id, 常量比较0/变量比较1, 对像值(或对像变量id), 相等0/以上1/以下2/大于3/小于4/不等5)
# 独立开关: finder.search(111, 2, 独立开关编号A-D, 开0/关1)
# 计时: finder.search(111, 3, 时间, 以上0/以下1)
# 角色: finder.search(111, 4, 角色id, 同伴0/名称1/特技2/武器3/防具4/状态5, 比较的名称/特技id/武器id/防具id/状态id)
# 敌人: finder.search(111, 5, 敌人id, 出现0/状态1, 比较的状态id)
# 事件: finder.search(111, 6, 事件id/角色-1/本事件0, 朝向上8/左4/右6/下2)
# 钱: finder.search(111, 7, 钱数, 以上0/以下1)
# 物品: finder.search(111, 8, 物品id)
# 武器: finder.search(111, 9, 武器id)
# 防具: finder.search(111, 10, 防具id)
# 按钮: finder.search(111, 11, 按钮id(Input::A/B/C/X/Y/Z/L/R))
# 脚本: finder.search(111, 12, 脚本内容字符串)
# 公共事件: finder.search(117, 公共事件id)
# 标签: finder.search(118, 标签名字符串)
# 标签跳转: finder.search(119, 标签名字符串)
# 开关操作: finder.search(121, 起始开关id, 结束开关id, 开0/关1)(如单个操作则起始开关id=结束开关id)
# 变量操作: finder.search(122, 起始变量id, 结束变量id, 代入0/加法1/减法2/乘法3/除法4/剩余5, 操作值类别0-7, 操作值1, 操作值2)(如单个操作则起始变量id=结束变量id)
# 常量: 类别0,操作值1为常量值,无操作值2
# 变量: 类别1,操作值1为变量id,无操作值2
# 随机: 类别2,操作值1为起始值,操作值2为终止值
# 物品: 类别3,操作值1为物品id,无操作值2
# 角色: 类别4,操作值1为角色id,操作值2为取值类别,0-13分别对应lv/exp/hp/sp/mhp/msp/str/dex/agi/int/pdf/mdf/eva
# 敌人: 类别5,操作值1为敌人id,操作值2为取值类别,0-11分别对应hp/sp/mhp/msp/str/dex/agi/int/pdf/mdf/eva
# 事件: 类别6,操作值1为事件id,操作值2为取值类别,0-5分别对应x/y/朝向/屏x/屏y/地标
# 其它: 类别7,操作值1为取值类别,0-6分别对应地图/人数/钱/步数/游戏时间/计时/存档次数
# 独立开关操作: finder.search(123, 独立开关编号A-D,开0/关1)
# 计时器操作: finder.search(124, 开0/关1, 时间秒数)
# 增减金钱: finder.search(125, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减物品: finder.search(126, 物品id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减武器: finder.search(127, 武器id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减防具: finder.search(128, 防具id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 替换队员: finder.search(129, 角色id, 入0/出1, 原状0/初期化1)
# 更改窗口外观: finder.search(131, 外观文件名)
# 更改战斗 BGM: finder.search(132, BGM文件名)
# 更改战斗结束 ME: finder.search(133, ME文件名)
# 更改禁止存档: finder.search(134, 禁止0/允许1)
# 更改禁止菜单: finder.search(135, 禁止0/允许1)
# 更改禁止遇敌: finder.search(136, 禁止0/允许1)
# 场所移动: finder.search(201, 直接0/变量1, 地图id或其变量id, x坐标或其变量, y坐标或其变量, 朝向上8/左4/右6/下2)
# 设置事件位置: finder.search(202, 事件id, 直接0/变量1/交换2, x坐标或其变量/被交换事件id, y坐标或其变量, 朝向上8/左4/右6/下2)
# 画面卷动: finder.search(203, 卷动方向8/4/6/2, 卷动长度, 卷动速度1-6)
# 更改地图设置: finder.search(204, 远景0/雾1/背景2)
# 更改雾的色调: finder.search(205, nil, 帧数)
# 更改雾的不透明度: finder.search(206, 不透明度, 帧数)
# 显示动画: finder.search(207, 事件id, 动画id)
# 更改透明状态: finder.search(208, 透明0/普通1)
# 设置移动路线: finder.search(209, 事件id)
# 执行渐变: finder.search(222, 渐变文件名)
# 更改画面色调: finder.search(223, nil, 帧数)
# 画面闪烁: finder.search(224, nil, 帧数)
# 画面震动: finder.search(225, 强度, 频度, 帧数)
# 显示图片: finder.search(231, 图片id, 图片文件名)
# 移动图片: finder.search(232, 图片id)
# 旋转图片: finder.search(233, 图片id, 速度)
# 更改图片色调: finder.search(234, 图片id)
# 图片消失: finder.search(235, 图片id)
# 天气设置: finder.search(236, 无0/风1/雨2/雪3, 强度1-9, 持续)
# 演奏 BGM: finder.search(241, BGM文件名)
# 淡出 BGM: finder.search(242, 秒数)
# 演奏 BGS: finder.search(245, BGS文件名)
# 淡出 BGS: finder.search(246, 秒数)
# 演奏 ME: finder.search(249, ME文件名)
# 演奏 SE: finder.search(250, SE文件名)
# 战斗处理: finder.search(301, 队伍id, 不可逃0/可逃1, 不可败0/可败1)
# 名称输入处理: finder.search(303, 角色id, 字符数)
# 增减 HP: finder.search(311, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减 SP: finder.search(312, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 更改状态: finder.search(313, 角色id, 附加0/解除1, 状态id)
# 完全回复: finder.search(314, 角色id)
# 增减 EXP: finder.search(315, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减等级: finder.search(316, 角色id, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减能力值: finder.search(317, 角色id, 0-5对应mhp/msp/str/dex/agi/int, 增0/减1, 常量0/变量1, 常量值或变量id)
# 增减特技: finder.search(318, 角色id, 学0/忘1, 特技id)
# 变更装备: finder.search(319, 角色id, 武器0/盾1/头2/甲3/饰4, 武器或防具id)
# 更改角色姓名: finder.search(320, 角色id, 名字)
# 更改角色职业: finder.search(321, 角色id, 职业id)
# 更改角色图形: finder.search(322, 角色id, 角色图文件名, 角色图色相, 战斗图文件名, 战斗图色相)
#finder = Find_Command.new
#finder.search(201,nil,nil,nil,nil,2)
#exit