本帖最后由 KB.Driver 于 2019-6-30 22:57 编辑
可以用一个比较简单的方法,就是通过变量让某一页的条件强制变为满足。
不过这个方法只能在敌群事件的最后使用,因为新的条件满足后会清除原来的@list
#============================================================================== # ■ 强制执行战斗事件 by Calendar99 #------------------------------------------------------------------------------ # 使用方法: # 在事件脚本中使用force_event(n)来强制执行当前敌群第n页的事件内容 #============================================================================== module BattleManager def self.force_event(page) @event_force_hash ||= {} @event_force_hash[page] = true end def self.release_event_force(page) @event_force_hash ||= {} @event_force_hash[page] = nil end def self.event_force?(page) @event_force_hash ||= {} @event_force_hash[page] end end class Game_Troop #-------------------------------------------------------------------------- # ● [别名修改]判定战斗事件(页)条件是否符合 #-------------------------------------------------------------------------- alias conditions_met_for_forcing_event? conditions_met? def conditions_met?(page) page_num = troop.pages.index(page) + 1 if BattleManager.event_force?(page_num) BattleManager.release_event_force(page_num) # 解除强制执行 return true else conditions_met_for_forcing_event?(page) # 原方法 end end end class Game_Interpreter #-------------------------------------------------------------------------- # ● [追加]强制执行战斗事件 #-------------------------------------------------------------------------- def force_event(page) return if !SceneManager.scene_is?(Scene_Battle) BattleManager.force_event(page) end end
#==============================================================================
# ■ 强制执行战斗事件 by Calendar99
#------------------------------------------------------------------------------
# 使用方法:
# 在事件脚本中使用force_event(n)来强制执行当前敌群第n页的事件内容
#==============================================================================
module BattleManager
def self.force_event(page)
@event_force_hash ||= {}
@event_force_hash[page] = true
end
def self.release_event_force(page)
@event_force_hash ||= {}
@event_force_hash[page] = nil
end
def self.event_force?(page)
@event_force_hash ||= {}
@event_force_hash[page]
end
end
class Game_Troop
#--------------------------------------------------------------------------
# ● [别名修改]判定战斗事件(页)条件是否符合
#--------------------------------------------------------------------------
alias conditions_met_for_forcing_event? conditions_met?
def conditions_met?(page)
page_num = troop.pages.index(page) + 1
if BattleManager.event_force?(page_num)
BattleManager.release_event_force(page_num) # 解除强制执行
return true
else
conditions_met_for_forcing_event?(page) # 原方法
end
end
end
class Game_Interpreter
#--------------------------------------------------------------------------
# ● [追加]强制执行战斗事件
#--------------------------------------------------------------------------
def force_event(page)
return if !SceneManager.scene_is?(Scene_Battle)
BattleManager.force_event(page)
end
end
|