# 設定項目_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ class Game_Troop < Game_Unit COMMON_EVENT_TROOPS = {# グループ自身のイベントよりも先に起動チェックする。 #例)2〜10の敵グループの戦闘で敵グループ1の戦闘イベントを、 # それと同時に 2、5、8〜10の敵グループでは敵グループ2の戦闘イベントも共用。 # 敵グループ15の戦闘では敵グループ2の戦闘イベントも共用する。 # 1=>[2..10], # 2=>[2,5,8..10,15], } COMMON_EVENT_TROOPS_AFTER = {# グループ自身のイベントの後に起動チェックする。 } end # 設定終了_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ =begin ★ks_戦闘イベントコモン化 最終更新日 2011/4/22 2011/4/22 スパンが“ターン”のイベントが1戦闘に1回しか起こらない不具合を修正。 □===制作・著作===□ MaidensnowOnline 暴兎 http://maidensnow.blog100.fc2.com/ 使用プロジェクトを公開する場合、readme等に当HP名とそのアドレスを記述してください。 使用報告はしてくれると喜びます。 □===配置場所===□ エリアスのみで構成されているので、 可能な限り"▼ メイン"の上、近くに配置してください。 □===前提スクリプト===□ なし □===説明・使用方法===□ 敵グループに指定されているイベントを、指定された他の敵グループ全てで 共用する事ができるスクリプト。 イベントの起動判定順は、共用設定で記述された順→本来のグループのイベント。 COMMON_EVENT_TROOPS 及び COMMON_EVENT_TROOPS_AFTER の キーにイベントを共用する敵グループIDを、 値に共用対象となる敵グループIDを、値か値の範囲によって指定して使用する。 COMMON_EVENT_TROOPS はグループ自身のイベントよりも先に、 COMMON_EVENT_TROOPS_AFTER はグループ自身のイベントの後に起動判定を行う。 (挙動的には敵グループのイベントページが前後に増設されると考えてください) □===エリアスしている主なメソッド===□ Game_Troop setup setup_battle_event =end #============================================================================== # ■ Game_Troop #============================================================================== class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # ● セットアップ # troop_id : 敵グループ ID #-------------------------------------------------------------------------- alias setup_for_common_battle_event setup def setup(troop_id) setup_for_common_battle_event(troop_id) @common_event_troops = [] @common_event_troops_after = [] l1 = [COMMON_EVENT_TROOPS, COMMON_EVENT_TROOPS_AFTER] l2 = [@common_event_troops, @common_event_troops_after] for i in 0...l1.size for trop_id in l1[i].keys next if @troop_id == trop_id for key in l1[i][trop_id] if key.is_a?(Range) next unless key === @troop_id else next unless key == @troop_id end l2[i] << trop_id break end end end end #-------------------------------------------------------------------------- # ● バトルイベントのセットアップ #-------------------------------------------------------------------------- alias setup_battle_event_for_common_battle_event setup_battle_event def setup_battle_event for i in 0..2 return if @interpreter.running? case i when 0 ; list = @common_event_troops when 1 ; setup_battle_event_for_common_battle_event ; next when 2 ; list = @common_event_troops_after end for key in list trop = $data_troops[key] for page in trop.pages next unless conditions_met?(page) @interpreter.setup(page.list) if page.span <= 1 @event_flags[page] = true end end end end end #-------------------------------------------------------------------------- # ● ターンの増加 #-------------------------------------------------------------------------- alias increase_turn_for_common_battle_event increase_turn def increase_turn for i in 0..2 return if @interpreter.running? case i when 0 ; list = @common_event_troops when 1 ; increase_turn_for_common_battle_event ; next when 2 ; list = @common_event_troops_after end for key in list trop = $data_troops[key] for page in trop.pages if page.span == 1 @event_flags[page] = false end end end end end end