128 lines
No EOL
6 KiB
Ruby
128 lines
No EOL
6 KiB
Ruby
#==============================================================================
|
||
# ■ RGSS3 特定ボタン対応コモンイベント Ver1.00 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, "false"],
|
||
[:Y, 2, "false"],
|
||
[:Z, 3, "false"],
|
||
[:L, 4, "false"],
|
||
[:R, 5, "false"],
|
||
[:F5, 6, "false"],
|
||
[:F6, 7, "false"],
|
||
[:F7, 8, "false"],
|
||
[:F8, 9, "false"],
|
||
[:CTRL, 10, "false"],
|
||
[:ALT, 100, "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?
|
||
|
||
#それぞれ判定開始。
|
||
|
||
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 |