#◆◇◆◇◆ LVUPコモンイベントスクリプトVXA ver 1.00 ◇◆◇◆◇ # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 更新履歴 ○ ver 1.00(2014/02/10) 公開 ■ 説明 レベルアップ時に キャラ毎に指定されたコモンイベントを実行するようにできます。 (イベントが実行されるのはマップ画面です) コモンイベントはレベルごと指定可能です。 システム上の演出に一役買ってくれるかもしれません。 設定はソース内部を参照してください。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # LVUPコモンイベントスクリプトVXAを有効化 ( true で有効 / false で無効 ) RGSS["LVUPコモンイベントスクリプトVXA"] = true end # LVUPコモンイベントスクリプトVXAが有効な場合に以降の処理を実行する if MINTO::RGSS["LVUPコモンイベントスクリプトVXA"] == true then #============================================================================== # ☆ カスタマイズ #------------------------------------------------------------------------------ # 機能のカスタマイズをここで行います。 #============================================================================== module Minto_LVUPCommonEvent #-------------------------------------------------------------------------- # ● データ呼び出し # id : アクターのID # lv : アクターのレベル #-------------------------------------------------------------------------- def self.call(id, lv) # 変更しない $game_system.common_event_trigger ||= {} $game_system.common_event_trigger[id] ||= [] $game_temp.minto_common_events ||= [] event = nil # event = 実行されるコモンイベントのID # trigger(トリガー)の説明 # 0 : 指定範囲のレベルにアップする度に実行 # 1 : 指定範囲のレベルにアップしたら一回のみ実行 # アクターID毎に分岐 case id # アクターID 1 when 1 # 現在のアクターのレベルで分岐 case lv # レベルが10以上の場合 when 10..20 trigger = 1 event = 4 # レベルが30の場合 when 30 trigger = 1 event = 2 end # アクターID 2 when 2 # 現在のアクターのレベルで分岐 case lv # レベルが10以上の場合 when 10..20 trigger = 0 event = 4 # レベルが30の場合 when 30 trigger = 1 event = 2 end end # イベントが指定されていない場合 if event.nil? # メソッドを返す return end # トリガーが 1 の場合 if trigger == 1 then # そのアクターですでにイベントが実行されている場合 if $game_system.common_event_trigger[id].include?(event) then # メソッドを返す(イベントは実行されない) return # 未実行の場合 else # イベントを実行済みにする $game_system.common_event_trigger[id].push(event) end end # コモンイベントを予約する $game_temp.minto_common_events.push(event) end end #============================================================================== # ■ Game_Temp #------------------------------------------------------------------------------ #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン # スタンスは $game_temp で参照されます。 #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :minto_common_events # 予約されたコモンイベント end #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ #  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :common_event_trigger # コモンイベントトリガー end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ #  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors) # の内部で使用され、Game_Party クラス($game_party)からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● レベルアップ #-------------------------------------------------------------------------- alias :level_up_Minto_LVUPCommonEvent :level_up def level_up # 元の処理を実行 level_up_Minto_LVUPCommonEvent # データを呼び出す Minto_LVUPCommonEvent.call(@actor_id, @level) end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ #  マップ画面の処理を行うクラスです。 #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias :update_Minto_LVUPCommonEvent :update def update # 元の処理を実行 update_Minto_LVUPCommonEvent # イベント実行中の場合 if $game_map.interpreter.running? == true then # メソッドを返す return end # データが有効な場合 unless $game_temp.minto_common_events.nil? # コモンイベントが予約されている場合 unless $game_temp.minto_common_events.empty? # コモンイベントのIDを収得 c_id = $game_temp.minto_common_events.shift # 先頭からコモンイベントを実行する $game_temp.reserve_common_event(c_id) # メソッドを返す return end end end end end