WOLF RPGエディター(ウディタ)[3.337]/基本システム【サイトトップへ戻る】
■コモンイベント[004:○回復・ダメージ処理]の解説
(更新:2024/05/18)


コモンイベント[004:○回復・ダメージ処理]について解説します。


ショートカット
■コモンイベント[004:○回復・ダメージ処理]って何?
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説
■補足

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

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


  
■コモンイベント[004:○回復・ダメージ処理]って何?

イベントコマンド【イベントの挿入】を使ってコモンイベント[004:○回復・ダメージ処理]を呼び出す事で、
主人公のHPやSPを回復、または減少させます。

▼イベントコマンドの設定画面




実際にHPやSPを増減する処理は、コモンイベント[070:X[移]パラメータ増減]を呼び出して処理しています。



主人公のステータス画面や一時ステータス計算などは「移動用」と「戦闘用」に分かれているため、
このコモンイベント[004:○回復・ダメージ処理]のイベント処理も移動中戦闘中に分かれています。

例えば現在のHPを保存している場所は、
移動時は可変DB[0:主人公ステータス]で保存しているのに対し、
戦闘時は可変DB[10:×┏ 戦闘一時ステータス[基]]で保存しています。

また戦闘時の場合は、主人公のステータス画面の表示状態を更新する処理が加わるため、
戦闘時と移動時の処理を分けて処理する必要があります。



主人公を指定して単体での回復orダメージの場合、
移動中はパーティにいない主人公でも回復orダメージの処理が行われますが、
戦闘中の場合は戦闘に参加している主人公のみが対象となり、
パーティにいない主人公を指定しても処理されません。



主人公の現在のHP・SP量を調べる場合は、
コモンイベント[021:▲メンバー情報取得[数値]]を呼び出して調べてください。



HPとSPの増減は、コモンイベント[007:○能力値増減]を呼び出しても行えます。



コモンイベント[007:○能力値増減]の場合は、「HP・SPの回復・減少」や「完全回復」、
「パーティ全員」などの設定項目が無く、主人公一人の「HP」と「SP」を増減させるだけの設定しかできませんが、
コモンイベント[004:○回復・ダメージ処理]とは異なり、HPやSPの増減量を画面上に表示する機能があります。

▼コモンイベント[007:○能力値増減]を使ってHPの回復量を表示



▲トップへ戻る▲


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

▼数値1/コモンセルフ0「処理内容」

処理内容を設定。

右のチェックボックスをクリックにして、
5」を設定すれば「[1]HP+[4]ステータス状態消去」になり、
6」を設定すれば「[2]SP+[4]ステータス状態消去」になります。


セルフ[0]に関する条件分岐では「〜のビットを満たす」で分岐している事があります。
この「〜のビットを満たす」は、例えば「2のビットを満たす」の場合は、
「1(HP)」「2(SP)」「4(ステータス状態消去)」の組み合わせで生まれた値の中で「2」が使われている場合は分岐します。
1(HP) 2(SP) 4(ステータス状態消去) 値の加算 セルフ[0]の値 1のビットを満たす 2のビットを満たす 4のビットを満たす
× × 1 1 分岐する 分岐しない 分岐しない
× × 2 2 分岐しない 分岐する 分岐しない
× 1+2 3 分岐する 分岐する 分岐しない
× × 4 4 分岐しない 分岐しない 分岐する
× 1+4 5 分岐する 分岐しない 分岐する
× 2+4 6 分岐しない 分岐する 分岐する

ステータス状態消去」は全ての状態異常から回復します。
もしも状態異常を発生させる場合指定した状態異常のみを回復させる場合は、
コモンイベント[009:○状態異常変化]を使用してください。
▼数値2/コモンセルフ1「誰に?」

処理する主人公、または「パーティ全員」を設定。
1100000」などの「変数呼び出し値」で設定する場合は、
呼び出す変数の値には可変DB[0:主人公ステータス]データIDを設定してください。
▼数値3/コモンセルフ変数2「何ポイント?」

増減する値を設定。
プラス値は増加、マイナス値は減少。

[3]HP・SPの回復・減少」の場合は、増減値はHPとSPで同じ値になります。
もしもHPとSPの増減値を別々にしたい時には…
■イベントの挿入[名]: ["○回復・ダメージ処理"] <コモンEv 4> / 1:HPの回復・減少 / -1:パーティ全員 / 30
■イベントの挿入[名]: ["○回復・ダメージ処理"] <コモンEv 4> / 2:SPの回復・減少 / -1:パーティ全員 / 15
と言ったように、2つの設定に分けて設定してください。
なお、パーティ全員のHPを減少させ、パーティ全員のHPがゼロになりますと、
ゲームオーバー(戦闘中の場合は敗北)になりますので、HPを減少する際は注意してください。


▲トップへ戻る▲


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

コモンイベント[004:○回復・ダメージ処理]から呼び出しているコモンイベントの一覧です。

コモンイベント[004:○回復・ダメージ処理]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
070:X[移]パラメータ増減 HP、SPの増減処理を実行。
075:X[移]状態付与/消去 状態異常の有無を変更。
105:X[移]選択位置主人公ID取得 パーティの並び順(可変DB[6:パーティー情報]項目[1〜6])から
主人公ID(可変DB[0:主人公ステータス]データID)を取得。
122:X[移]一時ステ計算<初期化> 可変DB[17:×主人公一時DB]の初期化などを実行。
123:X[移]一時ステ計算<装備補正> 装備による能力値の増減を可変DB[17:×主人公一時DB]に設定。
124:X[移]一時ステ計算<状態補正> 状態異常による能力値の増減を可変DB[17:×主人公一時DB]に設定。
135:X[戦]パラメータ増減 HPや攻撃力などの増減を処理。
137:X[戦]状態付与/消去 状態異常の有無を変更。
141:X[戦]スロットから主人公ID取得 可変DB[10:×┏ 戦闘一時ステータス[基]]
項目[17:キャラクタ番号[1万以上は敵]]から主人公IDを取得。
146:X[戦]一時ステ計算<初期化> 可変DB[10:×┏ 戦闘一時ステータス[基]]の初期化を実行。
147:X[戦]一時ステ計算<装備補正> 装備による能力値の変動を可変DB[10:×┏ 戦闘一時ステータス[基]]に設定。
148:X[戦]一時ステ計算<状態補正> 状態異常による能力値の変動を可変DB[10:×┏ 戦闘一時ステータス[基]]に設定。
174:X[戦]味方欄_座標算出 主人公のステータス画面の位置を算出。
178:X[戦]味方欄_単体描画 主人公のステータス画面の描画を処理。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[004:○回復・ダメージ処理]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 処理内容 処理内容を設定。
1 HP増減
2 SP増減
3 HP・SP増減
4 ステータス状態消去
7 完全回復
1 誰に? 主人公ID(可変DB[0:主人公ステータス]データID)を設定。
パーティ全員」の場合は「-1」「-2」「-3」のいずれかを設定。
2 何ポイント? 増減値を設定。
10 一時変数A パーティ内の全員を調べる処理で使用。
11 対象キャラID 主人公ID(可変DB[0:主人公ステータス]データID)を設定。
18 戦闘中? 可変DB[18:基本システム用変数]データ[68:[戦闘]戦闘中フラグ]の値を取得し、
現在が戦闘中であるかどうかを調べる時に使用。
0 移動中
1 戦闘中
19 現在パーティ数 現在のパーティ人数(可変DB[18]データ[4])を設定。

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


▲トップへ戻る▲


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

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

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

処理内容
0-6 ▼ 入力0:モード(1:HP 2:SP 4:ステ 7:完全) 入力1:誰に? 入力2:何ポイント?
「完全回復」の場合はHP・SPの回復量を「999999」に設定。
8-69 ■条件分岐(変数): 【1】 CSelf18[戦闘中?] が 0 と同じ
移動中の場合は分岐。
  15-62 ■条件分岐(変数): 【1】 CSelf1[誰に?] が -1 以下
パーティ全員の場合は分岐。
    18-62 ■回数付きループ [ CSelf19[現在パーティ数] ]回
パーティ内の主人公を並び順(0〜5)にループ、一人ずつ回復させる。
      20-21 ▼ セルフ11にキャラ番号を入れて下の方の処理に飛ぶ
コモンイベント[105:X[移]選択位置主人公ID取得]を呼び出し、
指定したパーティの並び順にいる主人公の主人公IDをセルフ[11]に取得。
      23 ●ラベル地点「移動時回復」 <<<<<<<<<<<<<<<<<<<<<<<<★
主人公を指定している場合は、
66行目セルフ[11]に指定した主人公IDを設定した上で、
67行目からここへジャンプしてきます。
      26-34 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 4 のビットを満たす
状態異常を回復させる場合は分岐し、状態異常を回復させます。
      35-40 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 1 のビットを満たす
HPを増減させる場合は分岐し、指定した値のHPを増減します。
      41-46 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 2 のビットを満たす
SPを増減させる場合は分岐し、指定した値のSPを増減します。
      47-51 ▼ パラメータ再計算
可変DB[17:×主人公一時DB]の情報を更新。
      55-60 ■条件分岐(変数): 【1】 CSelf1[誰に?] が 0 以上
一人の主人公を指定している場合は分岐し、処理を終了させます。
  64-67 ◇上記以外
一人の主人公を指定している場合は分岐し、セルフ[1]セルフ[11]に複製し、
23行目ラベル「移動時回復」にジャンプ。
71-154 ◇分岐: 【2】 [ CSelf18[戦闘中?] が 1 と同じ ]の場合↓
戦闘中の場合は分岐。
  75-135 ■条件分岐(変数): 【1】 CSelf1[誰に?] が -1 以下
パーティ全員の場合は分岐。
    80-135 ■回数付きループ [ CSelf19[現在パーティ数] ]回
パーティ内の主人公を並び順(0〜5)にループし、一人ずつ回復させる。
      83 ▼ セルフ11にキャラ番号を入れて下の方の処理に飛ぶ
コモンイベント[141:X[戦]スロットから主人公ID取得]を呼び出し、
指定したスロット(パーティの並び順)にいる主人公の主人公IDをセルフ[11]に取得。
      85 ●ラベル地点「戦闘時回復」 <<<<<<<<<<<<<<<<<<<<<<<<★
主人公を指定している場合は、
66行目セルフ[11]に指定した主人公IDを設定した上で、
67行目からここへジャンプしてきます。
      89-97 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 4 のビットを満たす
状態異常を回復させる場合は分岐し、状態異常を回復させます。
また状態異常の回復により、最大HPや攻撃力が変化する可能性があるため、
主人公のパラメータを初期化&再計算しています。
      98-112 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 1 のビットを満たす
HPを増減させる場合は分岐し、指定した値のHPを増減し、
ステータス画面の表示(ダメージ時の動きなど)と、状態異常の表示更新を実行。
      113-118 ■条件分岐(変数): 【1】 CSelf0[処理内容] が 2 のビットを満たす
SPを増減させる場合は分岐し、指定した値のSPを増減します。
      119-124 ▼ パラメータ再計算
可変DB[10:×┏ 戦闘一時ステータス[基]]の情報を更新し、
ステータス画面の表示も更新します。
      128-133 ■条件分岐(変数): 【1】 CSelf1[誰に?] が 0 以上
一人の主人公を指定している場合は分岐し、処理を終了させます。
  137-152 ◇上記以外
一人の主人公を指定している場合は分岐し、セルフ[1]セルフ[11]に複製し、
23行目ラベル「移動時回復」にジャンプ。


▲トップへ戻る▲


  
■補足

ウディタのサンプルゲーム(初期設定)では、
ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]が「[1]HP1で回復」になっているため、
コモンイベント[004:○回復・ダメージ処理]を呼び出して、HPを999999減らしても、
「HP=1」に修正され、戦闘不能にはなりません。

また戦闘中に戦闘不能になっても、戦闘終了後に戦闘不能から回復し、「HP=1」になります。

もしも「HP0=戦闘不能」にする場合は、
ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]の設定を「[0]戦闘不能のまま」に変えてください。




▲トップへ戻る▲



◎関連ページ

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

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