【ウディタ】「戦闘終了後処理」に一工夫①:勝敗結果を取得させる

私よ、レビニアよ。今回の解説は「基本システムの戦闘終了後処理を改造」なのよ。


「戦闘終了後処理」というのは、基本システムに用意されている改造前提のコモン「○[変更可]戦闘終了後処理のことよ。その名のとおり「戦闘が終了した後」のタイミングで実行されるの。

何か戦闘が終了したタイミングで実行させたい処理(例えば前に解説した「戦闘終了時に発動するパッシブスキル」など)があったら、ここにイベントコマンドを記述すればいいわけね。便利!

今回はその「戦闘終了後処理」を一工夫して便利にしてみましょうと、そういう解説なのよ。

※ちなみに「戦闘終了後」以外にも、以下のような関連コモンもあるわ。

  • ○[変更可]戦闘開始時処理
    →戦闘が開始した直後
  • ○[変更可]1ターン開始時処理
    →ターンが開始する直前(味方がコマンド選択を終えた後)
  • ○[変更可]1ターン終了時処理
    →ターンが終了した直後(味方がコマンド選択をする前)
  • ○[変更可]戦闘終了後処理
    →戦闘が終了してマップ画面に戻った直後

「戦闘終了後処理」に勝敗結果を取得させてみる

で、今回何をするかというと「戦闘の勝敗結果を取得させてみる」ということをするわ。

戦闘に勝利した場合だけ実行させたいとか、その逆に敗北した場合だけ実行させたいとか、そういうことってないかしら?

そういう場合に「戦闘終了後処理」のが勝敗結果の情報をもっていたら便利よね。そのように改造するのよ。

で、「そもそも戦闘の勝敗結果をどこから取得すればいいのか」という話なのだけど、


基本システムの戦闘関システムは「188:X◆戦闘処理」というコモンを起点として動作しているのだけど、もちろんこれに「戦闘がどのようにして終了したか」も記録されているのよ。


具体的にはセルフ変数20番「終了判定」がそれにあたるわ。だからここに格納されている値を「戦闘終了後処理」に渡せばいいわけね。


※ちなみに95番に「勝敗結果」というセルフ変数もあるけど、これは「戦闘が完全に終了した後で結果が格納される変数」であり、「戦闘終了後処理」の呼び出しより後に使われるものなの。だから今回は無視していいわ。


それじゃ具体的なやり方を説明するわね。まずはコモン「○[変更可]戦闘終了後処理」の入力設定をひらいて


数値1を以下のように設定して頂戴。
→名前:終了判定
→初期値:1600020
→特殊指定:特殊な設定方法を使用しない

「○[変更可]戦闘終了後処理」の方はこれでOKよ。次は別のコモンを修正するから、一度「更新」をクリックしておいてね。


次は「188:X◆戦闘処理」の方を改造するわ。180行目あたりに「戦闘終了後処理」を呼び出している部分があるから、そこをWクリックして編集するわ。

※基本システムの呼び出しコモンを改造するときは、元のコモンを残しコピペしたものを編集するようにしてね。


すると、さっき作ったとおり入力値1に「終了判定」ができているわね。ここにセルフ変数20番「終了判定」の値を渡すために、変数呼び出し値で「1600020」を入力してあげるのよ。

これで「戦闘終了後処理」のセルフ変数0番に、戦闘の勝敗結果を取得させることができたわ。ちなみに代入される値と意味は以下の通りよ。

  • 戦闘に勝利:1
  • 戦闘から逃亡:0
  • 戦闘に敗北:-1

「戦闘終了後処理」が勝敗結果を取得できているか試してみる


それじゃ実際に、戦闘の勝敗結果が取得できているかテストしてみましょう。「戦闘終了後処理」のセルフ変数0番を文章表示してみるわね。


戦闘に勝利した場合は「1」、逃亡した場合は「0」、敗北した場合は「-1」が表示されていればOKよ。

あとはこのセルフ変数の値を元に行わせたい処理を入力してやればいいわね。「逃亡した場合はお金を一定数落としてしまう」とか、「勝利した場合だけ一定確率でアイテムが拾えたりする」とか……、まぁ色々できるから活用してみて。

以上、「戦闘終了後処理に勝敗結果を取得させる方法」の解説でした。