【ウディタ】ダメージ床を一定歩数だけ回避する

今回はダメージ床を回避(無効に)する方法の解説よ。実行すると一定の歩数だけダメージ床からダメージを受けなくするのね。

ダメージ床自体の作り方は前回の投稿で解説しているから、まずはそちらを読んでね。

レビニアですわよ。今回はRPGでおなじみのダメージ床の作成なのよ。 発動までの歩数というのは「ダメージ床の上を何歩歩いたらダメージを受けてしまうか」ということね。つまり1回ダ...

ダメージ床回避の歩数を管理する通常(予備)変数を用意する

ダメージ床回避の作り方だけど、おおむねは「ランダムエンカウントを抑制するイベントを作成する」のやり方と一緒よ。


まずはダメージ床避けの歩数を管理する通常(予備)変数を用意するわ(今回は予備変数に作成)。
→予備変数1のデータ3に「床ダメージ抑制」と名前をつける

歩数管理を通常(予備)変数で作成する理由は、エンカ避けの時と同様にイベントの起動条件にするためね。可変DBだと条件分岐には使えてもイベント起動の条件には使えないのよ。

ダメージ床コモンを修正する


次はコモンの作成だけど、その前に前回作成したダメージ床コモンを修正するわ。先頭にダメージ床回避が起動中(V1-3が1以上)は処理を中断するイベントを追加してね。
→■条件分岐(変数): 【1】 V1-3[床ダメージ抑制] が 1 以上
→-◇分岐: 【1】 [ V1-3[床ダメージ抑制] が 1 以上 ]の場合↓
→|■イベント処理中断
→◇分岐終了◇

既存コモンの改造はこれでOK。あとはダメージ床回避を起動するコモンと、移動中にダメージ床回避の残り歩数を減らすコモンを作成するわ。

ダメージ床回避&残り歩数管理用コモンを作成する


まずはダメージ床回避を起動するためのコモンから。セルフ変数は使わないわ。
→コモンイベント作成:名前「〇床ダメージ抑制:起動」、起動条件「呼び出しのみ」


処理内容は簡単。用意した予備変数V1-3に床ダメージを回避させたい歩数を入力するだけよ(今回は255歩)。起動時のメッセージも入れておくわ。
→■変数操作: V1-3[床ダメージ抑制] = 255 + 0
→■文章:身体が少しだけ宙に浮いた。


次は歩数管理用コモン。1歩歩くたびに残り歩数を減らす処理をするの。起動条件は予備変数を条件として起動する並列実行よ。
→コモンイベント作成:名前「┗床ダメ抑制:歩数管理」、起動条件「並列実行&V1-3が1以上」


主人公座標をチェックして移動しているかを判別するから、そのためのセルフ変数をこのように用意してね。


主人公座標は変数操作+で取得できるわ。
→■変数操作+: CSelf10[現在座標X] = 主人公 の X座標(精密)
→■変数操作+: CSelf11[現在座標Y] = 主人公 の Y座標(精密)


次に1歩でも動いたかどうかを条件分岐でチェックして、動いていれば残り歩数を-1
→■条件分岐(変数): 【1】 CSelf10[現在座標X] が CSelf12[前回座標X] 以外
→-◇分岐: 【1】 [ CSelf10[現在座標X] が CSelf12[前回座標X] 以外 ]の場合↓
→|■変数操作: V1-3[床ダメージ抑制] -= 1 + 0
→-◇上記以外
→|■条件分岐(変数): 【1】 CSelf11[現在座標Y] が CSelf13[前回座標Y] 以外
→|-◇分岐: 【1】 [ CSelf11[現在座標Y] が CSelf13[前回座標Y] 以外 ]の場合↓
→| |■変数操作: V1-3[床ダメージ抑制] -= 1 + 0
→|◇分岐終了◇
→◇分岐終了◇


そして取得した主人公座標を「前回座標」へ格納。並列実行は繰り返し実行され続けるから、この一連の処理で主人公が移動したかどうかを判別するわけね。
→■変数操作: CSelf12[前回座標X] = CSelf10[現在座標X] + 0
→■変数操作: CSelf13[前回座標Y] = CSelf11[現在座標Y] + 0


最後に、床ダメージ回避が切れた(残り歩数が0)時のメッセージを表示
→■条件分岐(変数): 【1】 V1-3[床ダメージ抑制] が 0 と同じ
→-◇分岐: 【1】 [ V1-3[床ダメージ抑制] が 0 と同じ ]の場合↓
→|■文章:浮遊状態が解除された。
→◇分岐終了◇

これでコモンの作成は完了よ。あとは起動用コモンを呼び出すための設定ね。

ダメージ床回避をアイテムから起動する

ダメージ床回避の起動だけど今回はアイテムから起動させるわ。別に技能からでもかまわないわ(やり方は大体一緒よ)。


ダメージ床回避起動用のアイテムを作成して、使用するとコモンが起動(イベント起動)するように設定するわ。コモンイベントの呼び出しは「50000+イベントID」よ。
→ユーザーDB2:アイテムの空きIDに「フロートポーション」を新規作成する
→使用可能な場面:[0]マップ時だけ
→効果のタイプ:[3]イベント起動
→イベント番号指定:500258

これで準備はOK。作成したアイテムの手持ち個数も増やしておいてね。

ダメージ床回避を試してみる


それじゃテストするわ。作成したダメージ床回避アイテムを使用


起動時のメッセージが出力。同時に予備変数に残り歩数が格納され、歩数管理用の並列実行コモンも起動しているわ。


床ダメージ回避が起動中は、ダメージ床コモンが処理中断されるから歩いてもノーダメージ。


歩数管理用コモンにより残り歩数が減らされ0になるとメッセージが表示


再びダメージ床でダメージを受けるようになるわ。

ダメージ床回避(無効)の解説は以上よ。エンカ除けの時とほとんど変わらないから、そちらを見てくれた方なら解説しなくても思いついたかもしれないわね。