本帖最后由 铃仙·优昙华院·因幡 于 2014-2-21 17:31 编辑
module Reisen class MapCommonEvent def initialize(startID = 1, endID = 100) @map_id = startID - 1 @fp = File.open("CommonEvent.log", "w") while @map_id <= endID begin @map_id += 1 @map = load_data(sprintf("Data/Map%03d.rvdata", @map_id)) @fp.write("地图ID:#{@map_id}\n") write_event rescue @fp.write("地图ID:#{@map_id}不存在\n") next end end @fp.close end def write_event @map.events.each do |key, value| value.pages.each do |page| page.list.each do |list| case list.code when 117 # 事件调用公共事件 @fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{list.parameters[0]}\n") when 655,355 # 脚本事件 list.parameters.each do |parameter| parameter =~ /\$game_temp.common_event_id\s*=\s*(\d+)/ @fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{$1}\n") if $1 end end end end end end end end
module Reisen
class MapCommonEvent
def initialize(startID = 1, endID = 100)
@map_id = startID - 1
@fp = File.open("CommonEvent.log", "w")
while @map_id <= endID
begin
@map_id += 1
@map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
@fp.write("地图ID:#{@map_id}\n")
write_event
rescue
@fp.write("地图ID:#{@map_id}不存在\n")
next
end
end
@fp.close
end
def write_event
@map.events.each do |key, value|
value.pages.each do |page|
page.list.each do |list|
case list.code
when 117 # 事件调用公共事件
@fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{list.parameters[0]}\n")
when 655,355 # 脚本事件
list.parameters.each do |parameter|
parameter =~ /\$game_temp.common_event_id\s*=\s*(\d+)/
@fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{$1}\n") if $1
end
end
end
end
end
end
end
end
任意地图的任意事件 -> 事件 -> 脚本 -> Reisen::MapCommonEvent.new(start, end)
其中的 start 表示要搜索的地图ID 的开始序号, end 是结尾序号.
最后的搜索内容在工程根目录下一个 CommonEvent.log 里保存的, 内容差不多是这样的:
地图ID:1 事件ID:1,事件坐标(6,6)调用的公共事件ID为1 地图ID:2 事件ID:1,事件坐标(5,3)调用的公共事件ID为5 事件ID:1,事件坐标(5,3)调用的公共事件ID为422 地图ID:3不存在 地图ID:4不存在 地图ID:5不存在 地图ID:6不存在
地图ID:1
事件ID:1,事件坐标(6,6)调用的公共事件ID为1
地图ID:2
事件ID:1,事件坐标(5,3)调用的公共事件ID为5
事件ID:1,事件坐标(5,3)调用的公共事件ID为422
地图ID:3不存在
地图ID:4不存在
地图ID:5不存在
地图ID:6不存在
|