#==============================================================================
# 「プレイヤーの行動チェック」(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