素材>RPGツクールVXAce

5.スイッチONでダッシュ禁止

VXAceではデフォルト状態だとシフトキーでダッシュ、ダッシュを禁止したい場合はマップエディタの「マップの設定」で
「ダッシュを禁止する」にチェックを入れないと禁止できません。
つまり、マップごとにダッシュするかしないかを設定する程度であとは他の方のスクリプト素材を組み込むことになるわけですが、単純に「スイッチ○○番がON(またはOFF)だったらダッシュを禁止したい」と思った場合には色々と不便なわけで。
でも、実は1行追加するだけでダッシュ禁止ONOFF設定が可能だったりします。

スクリプト「■ Game_Player」140行目前後に

という記述があるのですがここに

を挿入するだけです(140行目に「return Input.press?(:A)」があるのでその1行上あたりが無難)
ちなみに「[101]」は必ずしも101にする必要はありません。
自分の都合がいいスイッチIDを入力してあげるといいです。
(101なのは現在制作中のゲームで使用している都合なんですけどね)

これで、「スイッチ101番がONだった場合はシフトキーを押してもダッシュしない」状態になります。
もしOFFの時にダッシュしない、と言う設定にしたければtrueをfalseにしてあげるだけで反転します。
なので、任意のタイミングでダッシュ禁止させることが可能になります。
もっとも、マップの設定で禁止していた場合はスイッチを切り替えてもダッシュしませんが。

これを応用したら「普段はダッシュ禁止だけど特定条件下(スイッチON時)でダッシュ可能」とか「時間制限ありでダッシュ可能」とかもできるかもしれません。
(時間制限ありでダッシュ可能を実装するならスイッチはfalse設定にしておいた方がいいのかなあ・・・その辺はこの小ネタを使う人のアイディア次第だと思います)

ちなみにオレは「ゲーム難易度によってダッシュの可否が変わる」という使い方をしています。
イージー、ノーマルの時はダッシュできるけどハードの時はできない、みたいな。
・・・と、するとやっぱりこれは一時ダッシュ機能を付けてもいいということなのだろうか・・・