#任意地图的任意事件 -> 事件 -> 脚本 -> Reisen::MapCommonEvent.new(start, end)
#start 表示要搜索的地图ID 的开始序号, end 是结尾序号.
#by 铃仙·优昙华院·因幡、夜RK
module Reisen
class MapCommonEvent
def initialize(startID = 1, endID = 100)
@map_id ||= startID
@fp = File.open("CommonEvent.log", "w")
begin
@map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
@fp.write("地图ID:#{@map_id}\n")
write_event
@map_id += 1
rescue
@fp.write("地图ID:#{@map_id}\s<不存在>\n")
@map_id += 1
end until @map_id > endID
@fp.close
end
def write_event
@map.events.each {|key,value|value.pages.each{|page|page.list.each{|list|
case list.code
when 117 # 事件调用公共事件
@fp.write("\t\s\s事件ID:#{key},事件坐标(#{value.x},#{value.y})"+
"调用的公共事件ID为#{list.parameters[0]}\n")
when 655,355 # 脚本事件
list.parameters.each { |parameter|
parameter =~ /\$game_temp.common_event_id\s*=\s*(\d+)/
@fp.write("\t\s\s事件ID:#{key},事件坐标(#{value.x},#{value.y})"+"
调用的公共事件ID为#{$1}\n") if $1}
end}}}
end
end
end