WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[076:X[移]状態更新]の解説
(更新:2023/04/24)


コモンイベント[076:X[移]状態更新]について解説します。


ショートカット
■コモンイベント[076:X[移]状態更新]って何?
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

基本システムに関する説明は別ページに記載しています。
【基本システムに関する説明ページを見る】

コモンイベントの一覧と補足説明のページも用意しています。
【コモンイベントの一覧と補足説明のページを開く】


  
■コモンイベント[076:X[移]状態更新]って何?

コモンイベント[076:X[移]状態更新]は、1歩歩くごとにコモンイベント[126:X[移]歩行時_並列キー処理]から呼び出され、
状態異常になっている場合は、移動によるHP・SPの増減と、移動による状態異常の回復を処理します。



ユーザーDB[8:状態設定]項目[4:最低持続ターン[-1:永久]]などで設定する「ターン数」は、
移動時の処理では状態異常から回復する「歩数」になります。



移動によるHP・SPの増減量や、何歩歩いたら状態異常が回復するのかなどは、
事前に可変DB[17:×主人公一時DB]項目[10〜14]に設定しています。

この可変DB[17:×主人公一時DB]項目[10〜14]への設定は、
コモンイベント[075:X[移]状態付与/消去]で行っています。

可変DB[17:×主人公一時DB]の項目名 使用内容
項目[10:[一時]移動時ステの有無] 何らかの状態異常がある場合は「1」を設定。
項目[11:[一時]HP自然増減値] 1歩移動するごとにHPに増減する値を設定。
項目[12:[一時]SP自然増減値] 1歩移動するごとにSPに増減する値を設定。
項目[13:[一時]次ステータス回復まで] 現在状態異常になっているものの中で、回復までの歩数が最も少ない値が設定されます。
例えば「毒=残り5歩」「マヒ=残り7歩」「HP+=残り3歩」の場合は、
項目[13:[一時]次ステータス回復まで]には「3」が設定されます。
そして1歩歩くごとに項目[13:[一時]次ステータス回復まで]が「減算1」となり、
項目[13:[一時]次ステータス回復まで]が「0」になったら、残り0歩の状態異常が回復し、
次に回復する歩数が項目[13:[一時]次ステータス回復まで]に設定されます。
項目[14:[一時]次ステータス回復Max] 項目[13:[一時]次ステータス回復まで]に値が設定された時の値を
項目[14:[一時]次ステータス回復Max]に設定され、
項目[13:[一時]次ステータス回復まで]の値が「0」になった時に、
可変DB[5:┗ 状態リスト]の回復歩数を項目[14:[一時]次ステータス回復Max]で減算します。
例えば「毒=残り5歩」「マヒ=残り7歩」「HP+=残り3歩」の場合は、
項目[13:[一時]次ステータス回復まで]には「3」が設定され、
項目[14:[一時]次ステータス回復Max]にも「3」が設定されます。
そして主人公が移動し、項目[13:[一時]次ステータス回復まで]が「0」になった時に、
項目[14:[一時]次ステータス回復Max]の「3」で全ての可変DB[5:┗ 状態リスト]が減算され、
「毒=残り2歩」「マヒ=残り4歩」「HP+=残り0歩」となります。
次に回復するまでの歩数が少ないのは「2」になるので、
項目[13:[一時]次ステータス回復まで]項目[14:[一時]次ステータス回復Max]には「2」が設定されます。

このように可変DB[17:×主人公一時DB]項目[10〜14]に事前に設定しておく事で、
主人公が1歩移動する度に全て主人公の全ての状態異常をチェックするような処理が必要なくなり、処理落ちの軽減に繋がります。


▲トップへ戻る▲


  
■こうゆう時にこのコモンイベントを改造する

以下のような改造を行いたい時にこのコモンイベントを改造します。

◆状態が回復する条件を変えたい。
 装備すると1回の移動で状態異常の回復歩数が2減るなど。

◆地形によってHP・SPの増減や状態が回復する条件を変えたい。
 森などの特定の地形を歩くとHP・SPの回復量が2倍になるなど。


▲トップへ戻る▲


  
■[入力の数/結果を返す]について

コモンイベント[076:X[移]状態更新][入力の数/結果を返す]には、何も設定されていません。


▲トップへ戻る▲


  
■コモンイベント呼び出しの一覧

コモンイベント[076:X[移]状態更新]を呼び出しているコモンイベント、
またはコモンイベント[076:X[移]状態更新]から呼び出しているコモンイベントの一覧です。

コモンイベント[076:X[移]状態更新]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
126:X[移]歩行時_並列キー処理 1歩移動したら呼び出されます。

コモンイベント[076:X[移]状態更新]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
075:X[移]状態付与/消去 戦闘不能の付与や可変DB[17:×主人公一時DB]項目[10〜14]の更新で使用。
122:X[移]一時ステ計算<初期化> 可変DB[17:×主人公一時DB]の初期化などを実行。
123:X[移]一時ステ計算<装備補正> 装備による能力値の増減を可変DB[17:×主人公一時DB]に設定。
124:X[移]一時ステ計算<状態補正> 状態異常による能力値の増減を可変DB[17:×主人公一時DB]に設定。

【コモンイベント呼び出しの一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[076:X[移]状態更新]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
10 一時変数A 可変DB[6:パーティー情報]項目IDを設定し、項目[1〜6]にある
主人公ID(可変DB[0:主人公ステータス]データID)の取得に使用。
18 残りHP 主人公のHPを取得し、戦闘不能になったかどうかを調べる時に使用。
20 処理中キャラID 主人公IDの取得し、可変DBデータIDの設定に使用。
21 処理中順番 パーティの何人目を処理しているのかを「0〜5」で設定。
22 パーティーメンバー数 可変DB[18:基本システム用変数]データ[4:現在パーティー人数]を取得し、
ループ回数の設定で使用。
23 次にステ消去するまでの歩数 可変DB[17:×主人公一時DB]項目[13:[一時]次ステータス回復まで]を取得。
24 一歩のHP自然変動値 可変DB[17:×主人公一時DB]項目[11:[一時]HP自然増減値]を取得。
25 一歩のSP自然変動値 可変DB[17:×主人公一時DB]項目[12:[一時]SP自然増減値]を取得。
26 状態有り? 可変DB[17:×主人公一時DB]項目[10:[一時]移動時ステの有無]を取得。
27 状態全個数 ユーザーDB[8:状態設定]データ数を設定し、ループ回数の設定で使用。
28 状態ID 可変DB[5:┗ 状態リスト]項目IDを設定し、ループ処理で使用。
29 残りターン数 可変DB[5:┗ 状態リスト]の残り歩数の取得に使用。
30 減算ターン 可変DB[17:×主人公一時DB]項目[14:[一時]次ステータス回復Max]を取得し、
可変DB[5:┗ 状態リスト]の歩数減算で使用。
32 最大HP 主人公の最大HPを設定。
33 最大SP 主人公の最大SPを設定。
35 戦闘不能? 可変DB[5:┗ 状態リスト]項目[0(戦闘不能)]を取得し、
戦闘不能になっていないかどうかチェックする時に使用。

【変数の一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■イベントコマンドの解説

イベントコマンドの解説を行います。

なお、見た目で設定内容が分かるような簡単なイベントコマンドの解説は省略しています。

処理内容
17-102 ■回数付きループ [ CSelf22[パーティーメンバー数] ]回
パーティの人数だけループ。
  19 ▼ パーティー情報DBからキャラIDを取得する
  22-100 ■条件分岐(変数): 【1】 CSelf20[処理中キャラID] が 0 以上
主人公IDがあった場合は分岐。
    25-98 ■条件分岐(変数): 【1】 CSelf26[状態有り?] が 1 以上
何らかの状態異常になっている場合は分岐。
      27-29 ▼ まずHP・SP自然変動を処理
1歩歩くと増減するHP量・SP量をセルフ[24〜25]に取得。
      30-31 主人公の最大HP・最大SPをセルフ[32〜33]に取得。
      33-58 ■条件分岐(変数): 【1】 CSelf35[戦闘不能?] が 0 と同じ
戦闘不能ではない場合は分岐。
        35-38 ▼ 戦闘不能以外ならHPを変動させる
1歩歩いた時のHP増減値を可変DB[0:主人公ステータス]項目[6:HP]に加算し、
「0〜最大値」の範囲に収まるように補正。
        39 ▼ 新たに戦闘不能になってたら戦闘不能を付与
        41-56 ■条件分岐(変数): 【1】 CSelf18[残りHP] が 0 以下
戦闘不能になった場合は分岐。
          43-47 ▼ 戦闘不能付与(システム的に戦闘不能にならなければ、次にHP1にする)
コモンイベント[075:X[移]状態付与/消去]で戦闘不能を付与し、
コモンイベント[122〜124]可変DB[10:×┏ 戦闘一時ステータス[基]]を更新。
          49-54 ■条件分岐(変数): 【1】 CSelf35[戦闘不能?] が 0 と同じ
戦闘不能でない場合は分岐。
44行目で戦闘不能を付与しているので、ここで分岐する事は無さそうですが、
ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]の設定が
[1]移動時の戦闘不能の扱い」の場合は、戦闘不能にはならないので、
この条件分岐で分岐する事もあります。
            51-52 ▼ 死んでなければHP1に
可変DB[0:主人公ステータス]項目[6:HP]に「下限1」を設定し、
HPが「1以上」になるようにします。
      59-60 1歩歩いた時のSP増減値を可変DB[0:主人公ステータス]項目[8:SP]に加算し、
「0〜最大値」の範囲に収まるように補正。
      62 ▼ 状態自然回復処理 (この一歩で、どれかの状態が消去される場合のみ実行)
      64-87 ■条件分岐(変数): 【1】 CSelf23[次にステ消去するまでの歩数] が 1 と同じ
何らかの状態異常が回復するまでに残り1歩の場合は分岐。
        66-67 ▼ 次のターンでどれかの状態が解除されるなら全状態の歩数をMax分だけマイナス
可変DB[17:×主人公一時DB]項目[14:[一時]次ステータス回復Max]セルフ[30]に取得。
このセルフ[30]には、
状態回復までの残り歩数をチェックした時の残り歩数が設定されています。
仮に「残り3歩で何らかの状態が回復」の場合は、セルフ[30]には「3」が設定され、
現在は残り3歩が歩き終わった状態なので、可変DB[5:┗ 状態リスト]
全ての状態異常の残り歩数から、セルフ[30]に保存された「3」を減算します。
        69 ▼ 全ての状態に対して残りターン数計算 残り0になってたらその状態を消去する
        71-82 ■回数付きループ [ CSelf27[状態全個数] ]回
全ての状態の歩数をチェック。
          74-80 ■条件分岐(変数): 【1】 CSelf29[残りターン数] が 1 以上
可変DB[5:┗ 状態リスト]に残り歩数の設定がある場合は分岐。
            76-78 ▼ ターン数で消去される状態なら、ターン数を減らす
セルフ[30]の分だけ、可変DB[5:┗ 状態リスト]の残り歩数を減らします。
        83-87 ▼ ここで、ステータス状態から導き出される一時値を再更新
コモンイベント[075:X[移]状態付与/消去]を呼び出して
可変DB[17:×主人公一時DB]項目[10〜14]の値を更新し、
コモンイベント[122〜124]可変DB[10:×┏ 戦闘一時ステータス[基]]を更新。
      89-90 ◇分岐: 【2】 [ CSelf23[次にステ消去するまでの歩数] が 0 と同じ ]の場合↓
現在調べている状態の状態異常になっていない場合は分岐。
        90 ▼ 0のときは何も処理しないようにするための分岐
      92-94 ◇分岐: 【3】 [ CSelf23[次にステ消去するまでの歩数] が 2 以上 ]の場合↓
状態異常から回復するまでに残り歩数が2歩以上ある場合は分岐。
        93-94 ▼ 残り2ターン以上なら1減らす
可変DB[17:×主人公一時DB]項目[13:[一時]次ステータス回復まで]を「減算1」にする。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

YADOT-WOLFトップ  気紛れな空間へ戻る  メール