=begin RGSS3    ★ キー入力によるマップからのアクション起動定義 ★ マップ上でのキー割り当てをある程度自由に定義しなおせます。 ダッシュやメニュー起動の他、アイテム画面やステータス画面、 セーブ画面やコモンイベント起動等が行なえます。 ● 使い方 ●======================================================== 設定箇所にてキーに割り当てるアクションを設定してください。 ==================================================================== ● 仕様 ●========================================================== マップからのメニュー起動を禁止している場合、 アイテム画面、スキル画面、装備画面、ステータス画面も開けなくなります。 ==================================================================== ver1.00 Last Update : 2016/02/27 02/27 : 新規 ろかん   http://kaisou-ryouiki.sakura.ne.jp/ =end #=========================================== # 設定箇所 #=========================================== module MAP_ACTION_KEY # ◆ マップ上でのキー割り当て定義 # # 下記の形式で設定を行います。 # [キーの種類] => [割り当てるアクション], # # 割り当て可能なアクションは下記の9パターンです。 # nil = アクションを何も割り当てません # :DASH = ダッシュします # :MENU = メニュー画面を開きます # :ITEM = アイテム画面を開きます # :SKILL = スキル画面を開きます # :EQUIP = 装備画面を開きます # :STATUS = ステータス画面を開きます # :SAVE = セーブ画面を開きます # 1~999 = 数値に対応したコモンイベントを実行します MAP_ACTION_KEY_DEF = { :A => :DASH, # Shiftキー :B => :MENU, # Escキー, Xキー :X => nil, # Aキー :Y => nil, # Sキー :Z => nil, # Dキー :L => nil, # Qキー :R => nil, # Wキー } end #=========================================== # ここまで #=========================================== $rsi ||= {} $rsi["キー入力によるマップからのアクション起動"] = true class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● インクルード MAP_ACTION_KEY #-------------------------------------------------------------------------- include MAP_ACTION_KEY #-------------------------------------------------------------------------- # ● 定義されたダッシュキーが押下されているか #-------------------------------------------------------------------------- def dash_key_press? result = false result = MAP_ACTION_KEY_DEF[:A] == :DASH && Input.press?(:A) result = MAP_ACTION_KEY_DEF[:B] == :DASH && Input.press?(:B) unless result result = MAP_ACTION_KEY_DEF[:X] == :DASH && Input.press?(:X) unless result result = MAP_ACTION_KEY_DEF[:Y] == :DASH && Input.press?(:Y) unless result result = MAP_ACTION_KEY_DEF[:Z] == :DASH && Input.press?(:Z) unless result result = MAP_ACTION_KEY_DEF[:L] == :DASH && Input.press?(:L) unless result result = MAP_ACTION_KEY_DEF[:R] == :DASH && Input.press?(:R) unless result result end #-------------------------------------------------------------------------- # ● ダッシュ状態判定 ※ 再定義 #-------------------------------------------------------------------------- def dash? return false if @move_route_forcing return false if $game_map.disable_dash? return false if vehicle return dash_key_press? end end class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● インクルード MAP_ACTION_KEY #-------------------------------------------------------------------------- include MAP_ACTION_KEY #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias _map_action_key_start start def start _map_action_key_start @map_action_calling = nil end #-------------------------------------------------------------------------- # ● 定義されたマップアクションキーが押下されたか #-------------------------------------------------------------------------- def input_map_action_trigger? if MAP_ACTION_KEY_DEF[:A] && Input.trigger?(:A) MAP_ACTION_KEY_DEF[:A] elsif MAP_ACTION_KEY_DEF[:B] && Input.trigger?(:B) MAP_ACTION_KEY_DEF[:B] elsif MAP_ACTION_KEY_DEF[:X] && Input.trigger?(:X) MAP_ACTION_KEY_DEF[:X] elsif MAP_ACTION_KEY_DEF[:Y] && Input.trigger?(:Y) MAP_ACTION_KEY_DEF[:Y] elsif MAP_ACTION_KEY_DEF[:Z] && Input.trigger?(:Z) MAP_ACTION_KEY_DEF[:Z] elsif MAP_ACTION_KEY_DEF[:L] && Input.trigger?(:L) MAP_ACTION_KEY_DEF[:L] elsif MAP_ACTION_KEY_DEF[:R] && Input.trigger?(:R) MAP_ACTION_KEY_DEF[:R] else nil end end #-------------------------------------------------------------------------- # ● キャンセルボタンによるメニュー呼び出し判定 ※ 再定義 #-------------------------------------------------------------------------- def update_call_menu if $game_map.interpreter.running? @map_action_calling = nil else @map_action_calling ||= input_map_action_trigger? if @map_action_calling @map_action_calling = nil if @map_action_calling == :DASH @map_action_calling = nil if @map_action_calling == :MENU && $game_system.menu_disabled @map_action_calling = nil if @map_action_calling == :ITEM && $game_system.menu_disabled @map_action_calling = nil if @map_action_calling == :SKILL && $game_system.menu_disabled @map_action_calling = nil if @map_action_calling == :EQUIP && $game_system.menu_disabled @map_action_calling = nil if @map_action_calling == :STATUS && $game_system.menu_disabled @map_action_calling = nil if @map_action_calling == :SAVE && $game_system.save_disabled if @map_action_calling && !$game_player.moving? call_action end end end end #-------------------------------------------------------------------------- # ● キーに割り当てられたアクションを実行 #-------------------------------------------------------------------------- def call_action if @map_action_calling.is_a?(Integer) $game_temp.reserve_common_event(@map_action_calling) else Sound.play_ok case @map_action_calling when :MENU SceneManager.call(Scene_Menu) Window_MenuCommand::init_command_position when :ITEM SceneManager.call(Scene_Item) when :SKILL SceneManager.call(Scene_Skill) when :EQUIP SceneManager.call(Scene_Equip) when :STATUS SceneManager.call(Scene_Status) when :SAVE SceneManager.call(Scene_Save) end end @map_action_calling = nil end end