#============================================================================== # 「プレイヤーの行動チェック」(ACE) ver4.1 by奈々 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # 自作イベントのサポートになる、チェック機能を提供します。 # 1、メニュー画面を開いたときに指定したスイッチをオンにする。 # 2、プレイヤーが移動したときに指定したスイッチをオンにする。 # 3、プレイヤーが戦闘したときに指定したスイッチをオンにする。 # プレイヤーが戦闘した敵のトループIDを変数に代入する。 # 戦闘結果を変数に代入する。(0:勝利 1:逃走 2:敗北) # 4、マップ画面で特定ボタンが入力されたときに指定したスイッチをオンにする。 # #============================================================================== # ◇初期設定 ↓ # # 以下の数字は「何番のスイッチ/変数を使うか」を指定します。 # 全て、0以下を指定することでその部分だけ機能を封印できます。 module Nana_check MENU_ON_SW_EV = 1 #イベントコマンドでメニューを開いたときにONになるスイッチNo. MENU_ON_SW_MAP = 1 #メニューボタンでメニューを開いたときにONになるスイッチNo. MOVE_PL_SW = 2 #プレイヤーが動いたときにONになるスイッチNo. BATTLE_ON_SW = 3 #プレイヤーが戦闘に入ったときにONになるスイッチNo. BATTLE_ON_VA = 3 #そのときに敵のトループIDが入る変数No. BATTLE_RESULT = 2 #そのときの戦闘の結果が入る変数No.(0:勝利 1:逃走 2:敗北) MAP_KEY_X_SW = 4 #Xボタンが押されたときにONになるスイッチNo. MAP_KEY_Y_SW = 4 #Yボタンが押されたときにONになるスイッチNo. MAP_KEY_Z_SW = 4 #Zボタンが押されたときにONになるスイッチNo. MAP_KEY_L_SW = 4 #Lボタンが押されたときにONになるスイッチNo. MAP_KEY_R_SW = 4 #Rボタンが押されたときにONになるスイッチNo. MAP_KEY_A_SW = 0 #Aボタン(ダッシュ)が押されたときにONになるスイッチNo. SEALED_KEY_A = false #trueでダッシュ機能を封印する MAP_KEY_B_SW = 0 #Bボタン(キャンセル)が押されたときにONになるスイッチNo. SEALED_KEY_B = false #trueでメニュー機能を封印する MAP_KEY_C_SW = 0 #Cボタン(決定)が押されたときにONになるスイッチNo. SEALED_KEY_C = false #trueでイベント起動機能を封印する end # 初期設定はここまでです。↑ #------------------------------------------------------------------------------ if Nana_check::MENU_ON_SW_EV > 0 #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ # イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● メニュー画面を開く #-------------------------------------------------------------------------- alias sw_on_command_351 command_351 def command_351 sw_on_command_351 $game_switches[Nana_check::MENU_ON_SW_EV] = true end end end if Nana_check::MENU_ON_SW_MAP > 0 #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # マップ画面の処理を行うクラスです。 #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● メニュー画面の呼び出し #-------------------------------------------------------------------------- alias sw_on_call_menu call_menu def call_menu sw_on_call_menu $game_switches[Nana_check::MENU_ON_SW_MAP] = true end end end if Nana_check::MOVE_PL_SW > 0 #============================================================================== # ■ Game_Player #------------------------------------------------------------------------------ # プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。 #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● 歩数増加 #-------------------------------------------------------------------------- alias increase_steps2 increase_steps def increase_steps increase_steps2 $game_switches[Nana_check::MOVE_PL_SW] = true end end end if Nana_check::BATTLE_ON_VA > 0 || Nana_check::BATTLE_ON_SW > 0 #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ # バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 開始後処理 #-------------------------------------------------------------------------- alias post_start2 post_start def post_start $game_variables[Nana_check::BATTLE_ON_VA] = $game_troop.troop.id if Nana_check::BATTLE_ON_VA > 0 $game_switches[Nana_check::BATTLE_ON_SW] = true if Nana_check::BATTLE_ON_SW > 0 post_start2 end end end if Nana_check::BATTLE_RESULT > 0 #============================================================================== # ■ BattleManager #------------------------------------------------------------------------------ # 戦闘の進行を管理するモジュールです。 #============================================================================== module BattleManager #-------------------------------------------------------------------------- # ● 戦闘終了 # result : 結果(0:勝利 1:逃走 2:敗北) #-------------------------------------------------------------------------- def self.battle_end(result) $game_variables[Nana_check::BATTLE_RESULT] = result @phase = nil @event_proc.call(result) if @event_proc $game_party.on_battle_end $game_troop.on_battle_end SceneManager.exit if $BTEST end end end if Nana_check::MAP_KEY_X_SW > 0 || Nana_check::MAP_KEY_Y_SW > 0 || Nana_check::MAP_KEY_Z_SW > 0 || Nana_check::MAP_KEY_L_SW > 0 || Nana_check::MAP_KEY_R_SW > 0 || Nana_check::MAP_KEY_A_SW > 0 || Nana_check::MAP_KEY_B_SW > 0 || Nana_check::MAP_KEY_C_SW > 0 #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # マップ画面の処理を行うクラスです。 #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● キャンセルボタンによるメニュー呼び出し判定 #-------------------------------------------------------------------------- def update_call_menu n7_key_check if $game_system.menu_disabled || $game_map.interpreter.running? @menu_calling = false else @menu_calling ||= Input.trigger?(:B) && Nana_check::SEALED_KEY_B == false call_menu if @menu_calling && !$game_player.moving? end end #-------------------------------------------------------------------------- # ● ボタンが押されたか判定 #-------------------------------------------------------------------------- def n7_key_check $game_switches[Nana_check::MAP_KEY_X_SW] = true if Input.trigger?(:X) && Nana_check::MAP_KEY_X_SW > 0 $game_switches[Nana_check::MAP_KEY_Y_SW] = true if Input.trigger?(:Y) && Nana_check::MAP_KEY_Y_SW > 0 $game_switches[Nana_check::MAP_KEY_Z_SW] = true if Input.trigger?(:Z) && Nana_check::MAP_KEY_Z_SW > 0 $game_switches[Nana_check::MAP_KEY_L_SW] = true if Input.trigger?(:L) && Nana_check::MAP_KEY_L_SW > 0 $game_switches[Nana_check::MAP_KEY_R_SW] = true if Input.trigger?(:R) && Nana_check::MAP_KEY_R_SW > 0 $game_switches[Nana_check::MAP_KEY_A_SW] = true if Input.trigger?(:A) && Nana_check::MAP_KEY_A_SW > 0 $game_switches[Nana_check::MAP_KEY_B_SW] = true if Input.trigger?(:B) && Nana_check::MAP_KEY_B_SW > 0 $game_switches[Nana_check::MAP_KEY_C_SW] = true if Input.trigger?(:C) && Nana_check::MAP_KEY_C_SW > 0 end end #============================================================================== # ■ Game_Player #------------------------------------------------------------------------------ # プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。 #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● 決定ボタンによるイベント起動判定 #-------------------------------------------------------------------------- def check_action_event return false if Nana_check::SEALED_KEY_C return false if in_airship? check_event_trigger_here([0]) return true if $game_map.setup_starting_event check_event_trigger_there([0,1,2]) $game_map.setup_starting_event end #-------------------------------------------------------------------------- # ● ダッシュ状態判定 #-------------------------------------------------------------------------- def dash? return false if @move_route_forcing return false if $game_map.disable_dash? return false if vehicle return false if Nana_check::SEALED_KEY_A return Input.press?(:A) end end end