【ウディタ解説】いろんな戦績を記録してみる①【改造】

こんにちは、レビニアよ。今回は基本システムを改造して戦績を記録してみるわ。

とりあえず記録する戦績は↓よ(項目はまた後で増やすかもしれないわ)。

  • 総戦闘回数
  • 戦闘勝利回数
  • 戦闘敗北回数
  • 逃走成功回数
  • 逃走失敗回数

可変データベースに戦績記録用DBを作成する

戦績の記録には、専用の可変DBを新設してそこに格納するわ。

ちなみに通常(予備)変数に格納してもいいけど、どちらを使うべきなのかは正直迷う所ね。一応それぞれ特徴は以下になるから、用途に応じて選択するといいわ。

  • 通常(予備)変数、文字列変数
    初期値を設定できないが、コモンやマップイベントの起動条件に設定できる。
  • 可変データベース
    格納する値は文字でも数でも可だが、コモンやマップイベントの起動条件には使えない。


話を戻して戦績用DBの作成に入るわ。可変DBの空きタイプ(なければタイプ数を増やして)を選択→「タイプの内容設定」をクリックして頂戴。


以下のように各項目を設定して頂戴。
→タイプ名:戦績
→データIDの設定方法:「可変DBのタイプ6」を指定
→項目0~4:上から項目名に「総戦闘回数」「戦闘勝利回数」「戦闘敗北回数」
「逃走成功回数」「逃走失敗回数」を入力。設定方法は全て「変数」に、初期値は全て「0」にする。

※データIDは一応パーティ情報のIDを引用しているけど、別に手動でもOKよ。あと画像だと「逃走」じゃなく「逃亡」になっているけど処理には影響しないから気にしないで。

これで戦績を格納するデータベース(入れ物)の準備は完了よ。

コモンイベントを改造して戦績を記録する

次に可変DBに戦績を記録するための処理を、基本システムのコモンイベントに追加していきましょう。


改造するコモンは「188-X◆戦闘処理」よ。例によってオリジナルではなくコピーしたものを改造していくわね。


最初にカウントするのは「総戦闘回数」だけど、これはこの戦闘処理コモンが呼び出されている時点で戦闘が発生しているわけだから、冒頭(3行目あたりでいいかな?)に可変DB書込を追加すればいいだけよ。
→可変DB書込:戦績の総戦闘回数+1を入力


次にいじるのは186行目あたり、戦闘を終了させるための処理が記述されている処理の最後の行ね。ここで使われているセルフ変数20番「終了判定」は勝利=1、逃走=0が格納されるようになっているから、条件分岐でそれぞれに勝利回数と逃走成功回数に+1しましょう。
→条件分岐:「セルフ変数20番が1と同じ」「セルフ変数20番が0と同じ」を入力
→作成した条件分岐それぞれに可変DB書込:戦績の戦闘勝利回数+1と逃走成功回数+1を入力

ちなみにこのセルフ変数20番「終了判定」、敗北した場合は「-1」が格納されるわ。となると「なら敗北回数の+1も同じく入力すればいいのでは」と思ってしまうのだけどそれは×よ。

なぜならここでカウントしたしまうと「負けてもいいイベントバトル(ゲームオーバーイベントが呼び出されない戦闘)まで敗北回数がカウントされてしまう」からよ。

やっぱり、敗北がカウントされるのはあくまで通常通りの敗北(ゲームオーバー)時に行われるのが望ましいわよね。イベントバトルの負けまで敗北に計上されてしまったらたまったもんじゃないわ。

というわけで敗北回数をカウントするのはこちら↓。


前述のコマンド追加を含めると257行目になるかしら。敗北してゲームオーバーイベントを呼び出している部分(条件分岐「セルフ変数95番が-1と同じ」部分の先頭)があるから、そこでカウントしましょう。
→可変DB書込:戦績の戦闘敗北回数+1を入力


最後に逃走失敗回数のカウントだけど、232行目あたりの逃走が失敗した場合の処理(コメント「逃走失敗時」の次)でカウントすればOKよ。
→可変DB書込:戦績の逃走失敗回数+1を入力

戦績を記録するためのコモン改造はこれで完了よ。それじゃサンプルゲームを使って試してみましょう。

戦績がカウントされているか確認する


確認の方法は色々あるけど、今回は簡単にマップイベントから文章表示でDBの内容を表示するわ。


こんな感じで、特殊文字を使って可変DBの「タイプ20番・データ0番・項目0~4番」の内容を表示するのよ。※特殊文字についての詳細は公式の解説をご参照ください。

では試してみましょう。


一度も戦闘をしていない状態。可変DBで設定した初期値「0」が表示されているわね。


となりの市松模様(ランダムエンカウント)を使って戦闘してみましょう。まずは普通に戦って勝利してみるわね。


戦闘回数と勝利回数が+1。ちゃんとカウントされているようね。


一度リセットして、今度はわざと負けて敗北してみましょう。ちなみにサンプルゲームはゲームオーバーになってもそのままゲームが続行できるのよ。


ちゃんと戦闘回数と敗北回数に+1されているわ。まぁ「ゲームオーバー=タイトルに戻っちゃうシステム」だと、敗北回数をカウントしてもあまり意味はないけどね……。


一応負けてもゲームオーバーにならないイベントバトルのケースも試しておきましょう。グレートドラゴンさんに神聖魔法で消し飛ばしていただいて……、


成功! 戦闘回数だけカウントされて敗北回数が増えていないわ。イベントバトルでの負けまで敗北がカウントされちゃったらおかしいからね。


最後に逃走回数のカウントを確認しましょう。まずは逃走成功した場合


OK。逃走成功回数が+1されているわ。

あとは逃走走敗の確認だけど、


サンプルゲームの単品ゴブリンさんは100%逃げられちゃうから、UDBを変更(逃走成功率を50%)して確認するわ。結果は1ターン目は逃走失敗→2ターン目に逃走成功

さて戦績は、


逃走成功と失敗がそれぞれ1ずつプラスされていれば成功。逃走回数のカウントも問題なしね。

基本システム改造による戦績の記録方法は以上よ。ただ閲覧するだけじゃなく、何かイベントのフラグや条件分岐に利用してみるのも面白いかもね。

それじゃ、お疲れ様でした。