# ▼▲▼ No41.AX. LR、キャラ切り替え ▼▲▼ # # # #============================================================================== # □ カスタマイズポイント #============================================================================== class Scene_Map # # キーコンフィグ # KEY_L = Input::L KEY_R = Input::R #-------------------------------------------------------------------------- # ○ LRを押したときに切り替える変数のID #-------------------------------------------------------------------------- def lr_variable_id return 10 end #-------------------------------------------------------------------------- # # このスクリプトはNo41.拡張となっていますが実際の機能は # # 「LRを押すことによって、 # 現在パーティ内にいるアクター達からIDを取得、切り替えを行い # それを指定した変数に格納する」 # # というものです。 # #-------------------------------------------------------------------------- end #============================================================================== # ■ Game_Player #============================================================================== class Game_Player #-------------------------------------------------------------------------- # ○ 操作可能? #-------------------------------------------------------------------------- def controlable? unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing return true end return false end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias xrxs41ax_update update def update # 呼び戻す xrxs41ax_update # 切り替わっていない場合 かつ メンバーが1人以上居る場合 かつ 操作可能 if $scene.is_a?(Scene_Map) and $game_party.actors.size > 0 and $game_player.controlable? # LR ボタンが押された場合 if Input.trigger?(KEY_L) or Input.trigger?(KEY_R) # 現在のインデックスを計算 index = 0 for actor in $game_party.actors if $game_variables[lr_variable_id()] == actor.id index = $game_party.actors.index(actor) end end # L ボタンが押された場合 if Input.trigger?(KEY_L) index = (index + $game_party.actors.size - 1) % $game_party.actors.size # R ボタンが押された場合 elsif Input.trigger?(KEY_R) index = (index + 1) % $game_party.actors.size end # そのインデックスのアクターのIDを取得 $game_variables[lr_variable_id()] = $game_party.actors[index].id # プレイヤーをリフレッシュ $game_player.refresh end end end end