#============================================================================== # ■ RGSS3 特定ボタン対応コモンイベント Ver1.01 by 星潟 #------------------------------------------------------------------------------ # マップ上でプレイヤーが自由に動かす事が出来る状態の時 # 特定のボタンを押す事で、設定した条件に合う場合に # それぞれ指定したコモンイベントを発生させます。 #============================================================================== # ★設定方法 #------------------------------------------------------------------------------ # キーとコモンイベント、そしてそれらの条件を設定し # それぞれ、[キーシンボル, コモンイベントID, 条件の文字列]の順に配列を指定します。 #============================================================================== # キーシンボルは、それぞれ以下の物が使用できます。 # 既存スクリプトと競合しないよう、既に使用している物は避けて設定して下さい。 #------------------------------------------------------------------------------ # :X デフォルトではキーボードのAに割り当て。 # :Y デフォルトではキーボードのSに割り当て。 # :Z デフォルトではキーボードのDに割り当て。 # :L デフォルトではキーボードのQ/PageUPに割り当て。 # :R デフォルトではキーボードのW/PageDownに割り当て。 # :F5 デフォルトではキーボードのF5に割り当て。 # :F6 デフォルトではキーボードのF6に割り当て。 # :F7 デフォルトではキーボードのF7に割り当て。 # :F8 デフォルトではキーボードのF8に割り当て。 # :ALT デフォルトではキーボードのAltに割り当て。 # :CTRL デフォルトではキーボードのCtrlに割り当て。 #------------------------------------------------------------------------------ # 以下5つは使用できますが、最初からシステム上で使われているので # 使用するのは避けた方がいいでしょう。 #------------------------------------------------------------------------------ # :A デフォルトではキーボードのSHIFT等に割り当て。(ダッシュ) # :B デフォルトではキーボードのX等に割り当て。(メニュー) # :C デフォルトではキーボードのZ等に割り当て。(調べる/話しかける) # :F9 デフォルトではキーボードのF9等に割り当て。(ダッシュ) # :SHIFT デフォルトではキーボードのSHIFT等に割り当て。(ダッシュ) #============================================================================== # 条件指定の例 #------------------------------------------------------------------------------ # 無条件に有効にする場合 # "true" #------------------------------------------------------------------------------ # スイッチ1がONの時有効にする場合 # "$game_switches[1]" #------------------------------------------------------------------------------ # スイッチ2がOFFの時有効にする場合 # "!$game_switches[2]" #------------------------------------------------------------------------------ # 変数3が10の時有効にする場合 # "$game_variables[3] == 10" #------------------------------------------------------------------------------ # 変数4が15より大きい時有効にする場合 # "$game_variables[4] > 15" #------------------------------------------------------------------------------ # 変数5が20以上の時有効にする場合 # "$game_variables[5] >= 20" #------------------------------------------------------------------------------ # 変数6が25より小さい時有効にする場合 # "$game_variables[6] < 25" #------------------------------------------------------------------------------ # 変数7が30以下の時有効にする場合 # "$game_variables[7] <= 30" #------------------------------------------------------------------------------ # アイテムID2番を所持している時のみ有効にする場合 # "$game_party.has_item?($data_items[2])" #------------------------------------------------------------------------------ # 武器ID3番を所持している時のみ有効にする場合(装備品は含まない) # "$game_party.has_item?($data_weapons[3], false)" #------------------------------------------------------------------------------ # 防具ID4番を所持している時のみ有効にする場合(装備品も含む) # "$game_party.has_item?($data_armors[4], true)" #============================================================================== module INSTANT_KEY #ボタン、コモンイベントID、条件で構成された配列を作成。 #必要に応じて追加/削除して下さい。 KEYS = [ [:X, 1, "true"], [:Y, 2, "true"], [:Z, 3, "true"], [:L, 4, "true"], [:R, 5, "true"], [:F5, 6, "true"], [:F6, 7, "true"], [:F7, 8, "true"], [:F8, 9, "true"], [:CTRL, 10, "true"], [:ALT, 11, "true"] ] end class Game_Map #-------------------------------------------------------------------------- # フレーム更新 #-------------------------------------------------------------------------- alias update_f6f7 update def update(main = false) #本来の処理を実行。 update_f6f7(main) #イベント実行中でなくキャラクターが行動可能かつ方向キーの入力がない場合は処理続行。 return if $game_map.interpreter.running? or !$game_player.movable? or Input.dir4 != 0 #それぞれ判定開始。 INSTANT_KEY::KEYS.each {|array| #指定ボタンが押されていない場合は飛ばす。 next unless Input.trigger?(array[0]) #条件を満たさない場合は飛ばす。 next unless eval(array[2]) #コモンイベントをセットする。 $game_temp.reserve_common_event(array[1]) #残りの判定を全て行わない。 return } end end