加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 soulsaga 于 2024-1-11 12:59 编辑
地图事件名称包含一次结束触发条件为自动执行的情況下只会执行一次
另一个是公共事件名称包含无条件为无视开关条件执行並行公共事件或自动事件
class Game_CommonEvent #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh # 建立必须的处理并行事件用的解释器 if self.trigger == 2 and $game_switches[self.switch_id] == true or self.trigger == 2 and name.include?("无条件") if @interpreter == nil @interpreter = Interpreter.new end else @interpreter = nil end end end class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● 定义实例变量 #-------------------------------------------------------------------------- attr_accessor :starting # 启动中标志 class Interpreter #-------------------------------------------------------------------------- # ● 设置启动中事件 #-------------------------------------------------------------------------- def setup_starting_event # 刷新必要的地图 if $game_map.need_refresh $game_map.refresh end # 如果调用的公共事件被预约的情况下 if $game_temp.common_event_id > 0 # 设置事件 setup($data_common_events[$game_temp.common_event_id].list, 0) # 解除预约 $game_temp.common_event_id = 0 return end # 更改独立开关 # 循环 (地图事件) for event in $game_map.events.values # 生成独立开关 key = [$game_map.map_id, event.id, "1"] event.starting=false if $game_self_switches[key] # 如果找到了启动中的事件 if event.starting # 如果不是自动执行 if event.trigger < 3 # 清除启动中标志 event.clear_starting # 锁定 event.lock end map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id)) # 设置事件 setup(event.list, event.id) $game_self_switches[key]=map.events[event.id].name.include?("一次结束") return end end # 循环(公共事件) for common_event in $data_common_events.compact # 目标的自动执行开关为 ON 的情况下 if common_event.trigger == 1 and $game_switches[common_event.switch_id] == true or common_event.trigger == 1 and common_event.name.include?("无条件") # 设置事件 setup(common_event.list, 0) return end end end end
class Game_CommonEvent
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
# 建立必须的处理并行事件用的解释器
if self.trigger == 2 and $game_switches[self.switch_id] == true or self.trigger == 2 and name.include?("无条件")
if @interpreter == nil
@interpreter = Interpreter.new
end
else
@interpreter = nil
end
end
end
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :starting # 启动中标志
class Interpreter
#--------------------------------------------------------------------------
# ● 设置启动中事件
#--------------------------------------------------------------------------
def setup_starting_event
# 刷新必要的地图
if $game_map.need_refresh
$game_map.refresh
end
# 如果调用的公共事件被预约的情况下
if $game_temp.common_event_id > 0
# 设置事件
setup($data_common_events[$game_temp.common_event_id].list, 0)
# 解除预约
$game_temp.common_event_id = 0
return
end
# 更改独立开关
# 循环 (地图事件)
for event in $game_map.events.values
# 生成独立开关
key = [$game_map.map_id, event.id, "1"]
event.starting=false if $game_self_switches[key]
# 如果找到了启动中的事件
if event.starting
# 如果不是自动执行
if event.trigger < 3
# 清除启动中标志
event.clear_starting
# 锁定
event.lock
end
map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
# 设置事件
setup(event.list, event.id)
$game_self_switches[key]=map.events[event.id].name.include?("一次结束")
return
end
end
# 循环(公共事件)
for common_event in $data_common_events.compact
# 目标的自动执行开关为 ON 的情况下
if common_event.trigger == 1 and
$game_switches[common_event.switch_id] == true or common_event.trigger == 1 and common_event.name.include?("无条件")
# 设置事件
setup(common_event.list, 0)
return
end
end
end
end
|