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


コモンイベント[075:X[移]状態付与/消去]について解説します。


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

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

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


  
■コモンイベント[075:X[移]状態付与/消去]って何?

コモンイベント[075:X[移]状態付与/消去]は、移動中に状態を変更する時に使います。

戦闘中の状態変更はコモンイベント[137:X[戦]状態付与/消去]で処理します。

なお、基本システムを利用する制作者がイベント設定で状態変更を行う場合は、
コモンイベント[009:○状態異常変化]を使います。



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



コモンイベント[075:X[移]状態付与/消去]では状態の変更処理の他に、
可変DB[17:×主人公一時DB]項目[10〜16]の設定も行います。

可変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」が設定されます。
項目[15:[一時]状態異常名一覧] ステータス画面に表示する「毒/マヒ/HP+」などの文字列を設定。
項目[16:[一時]封印状態?] 「封印」の状態異常の場合は「1」を設定。

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


▲トップへ戻る▲


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

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

◆状態の付与や回復の仕様を変えたい。


▲トップへ戻る▲


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

コモンイベント[075:X[移]状態付与/消去][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「主人公データID」

状態を変更する主人公ID(可変DB[0:主人公ステータス]データID)を設定。
▼数値2/コモンセルフ1「付与する状態」

状態ID(ユーザーDB[8:状態設定]データID)を設定。
0以上 処理する状態ID
[-1]全て消去(強制) 無条件に全ての状態異常を回復
[-2]全て消去(全回復時対象のみ) ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]
[1]解除する(不利な状態異常)」になっている状態異常を回復
(戦闘不能も回復)
[-3]全て消去(死亡除く全回復時対象) ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]
[1]解除する(不利な状態異常)」になっている状態異常を回復
(戦闘不能は回復しない)
▼数値3/コモンセルフ2「付与?消去?」

処理方法を設定。
[0]消去 状態異常を回復させる
[1]付与 設定された確率で状態異常にする
[2]更新 戦闘不能状態によるHP設定や、
ステータス画面に表示する文字列(毒/マヒ/HP+)などを更新


▲トップへ戻る▲


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

コモンイベント[075:X[移]状態付与/消去]を呼び出しているコモンイベント、
またはコモンイベント[075:X[移]状態付与/消去]から呼び出しているコモンイベントの一覧です。

コモンイベント[075:X[移]状態付与/消去]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
004:○回復・ダメージ処理 状態異常を全回復させる時に呼び出されます。
009:○状態異常変化 状態異常を操作する時に呼び出されます。
075:X[移]状態付与/消去 ユーザーDB[8:状態設定]項目[10:┗ 次はこの状態になる]にある「治る」を
実行する場合、コモンイベント[075:X[移]状態付与/消去]が呼び出されます。
076:X[移]状態更新 戦闘不能の付与や状態の更新処理の時に呼び出されます。
118:X[移]アイテム使用効果処理 状態を変化させる時に呼び出されます。
119:X[移]技能使用効果処理 状態を変化させる時に呼び出されます。
149:X[戦]戦闘DB→主人公DBへ戻す 状態の更新処理の時に呼び出されます。

コモンイベント[119:X[移]技能使用効果処理]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
075:X[移]状態付与/消去 ユーザーDB[8:状態設定]項目[10:┗ 次はこの状態になる]にある設定を
実行する時にコモンイベント[075:X[移]状態付与/消去]が呼び出されます。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[075:X[移]状態付与/消去]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 戦闘スロット 状態を変更するスロットを設定。
1 付与する状態 状態IDを設定。
0以上 処理する状態ID
-1 無条件に全ての状態異常を回復
-2 ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]
[1]解除する(不利な状態異常)」になっている状態異常を回復
(戦闘不能も回復)
-3 ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]
[1]解除する(不利な状態異常)」になっている状態異常を回復
(戦闘不能は回復しない)
2 付与?=1 消去?=0 更新?=2 処理方法を設定。
0 状態異常を回復させる
1 設定された確率で状態異常にする
2 戦闘不能状態などを再度設定し直す
9 状態異常表示文字列 ステータス画面に表示する「毒/マヒ/HP+」などの文字列を作成し、
可変DB[17:×主人公一時DB]項目[15:[一時]状態異常名一覧]に設定。
10 状態全個数 ユーザーDB[8:状態設定]データ数を設定。
11 処理中状態ID セルフ[1]の値を複製。
ループ処理でデータIDの設定でも使用。
12 基本ターン ユーザーDB[8:状態設定]項目[4:最低持続ターン[-1:永久]]を取得。
13 増減ターン ユーザーDB[8:状態設定]項目[5:持続ターン変動幅[±]]を取得。
14 合計ターン 状態異常が治る残りターン(歩数)を計算し、
可変DB[5:┗ 状態リスト]に設定する時に使用。
15 全回復対象フラグ? ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]を取得。
16 種別(1=移動中有効) ユーザーDB[8:状態設定]項目[7:種別(戦or移動中)]を取得。
17 残りターン 可変DB[5:┗ 状態リスト]の残りターン数の取得や設定で使用。
18 全解除フラグ
(残す状態番号を格納 -1でナシ)
ユーザーDB[8:状態設定]項目[18:これ以外の全ステ状態を・・・]が「1」の時に、
処理中の状態IDを設定し、設定された状態ID以外の状態を回復させます。
20 一時変数A ユーザーDB[8:状態設定]のいくつかの項目の値の取得で使用。
21 戦闘不能ターン数 可変DB[5:┗ 状態リスト]データ[0]の戦闘不能のターン数を取得。
22 状態異常表示有り? ユーザーDB[8:状態設定]項目[1:状態の表示方法]を取得し、
1ビット値(「1」か「3」)」の時にはステータス画面に状態を表示。
23 表示状態異常個数(4個で改行) ステータス画面にいくつ状態を表示したのかをカウントし、
4個表示するごとに改行を実行。
24 表示状態に/入れる? ユーザーDB[17:システム設定]項目[19:ステータス状態の表示方法]を取得。
0 区切り無し 毒マヒHP+
1 区切り有り 毒/マヒ/HP+
25 戦闘不能の扱いフラグ ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]を取得。
0 戦闘不能のまま
1 HP1で回復
30 重複状態チェック用 ループ処理にて、可変DB[5:┗ 状態リスト]項目IDの設定で使用。
31 重複状態 ユーザーDB[17:システム設定]項目[10:このステ状態が重なると↓]を取得。
32 重複の変化先状態 ユーザーDB[17:システム設定]項目[11:┗ 次はこの状態になる]を取得。
33 最終変化先状態 状態異常になっている状態で、同じ状態異常を二重に掛けた場合の処理方法を設定。
-10 変化なし
0以上 変化する状態IDのデータIDを設定
-1以下 状態を治します
34 変化元状態 同じ状態異常を二重に掛けをした状態IDを設定し、
別の状態異常に変える時に前の状態異常を無効化する時に使用。

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


▲トップへ戻る▲


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

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

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

処理内容
18-22 ■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 2 と同じ
「付与?消去?」が「更新」の場合は分岐し、206行目ラベル「更新処理」へジャンプ。
23-28 ■条件分岐(変数): 【1】 CSelf0[主人公データID] が 0 未満
存在しない主人公IDの場合は分岐し、エラーを表示して、【イベント処理中断】を実行。
29-143 ■条件分岐(変数): 【1】 CSelf1[付与する状態] が 0 以上
処理する状態IDが設定されている場合は分岐。
  31-33 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 特定の1状態だけ付与・消去する
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  35-40 ■条件分岐(変数): 【1】 CSelf16[種別(1=移動中有効)] が 0 と同じ
ユーザーDB[8:状態設定]項目[7:種別(戦or移動中)]が「0(戦闘中のみ)」の場合は分岐し、
【イベント処理中断】を実行。
  43-48 ■条件分岐(変数): 【1】 CSelf11[処理中状態ID] が CSelf10[状態全個数] 以上
処理する状態IDが存在しないIDだった場合は分岐し、
エラーをデバッグ文で表示し、【イベント処理中断】を実行。
  49-143 ■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 1 と同じ
「付与?消去?」が「付与」の場合は分岐。
    51-56 ▼ 状態IDがマイナスなら何もしない
■条件分岐(変数): 【1】 CSelf11[処理中状態ID] が -1 以下
処理する状態IDが存在しないIDの場合は分岐し、【イベント処理中断】を実行。
    58-59 ▼ まず、重複で変化する状態異常を探す。もしあればこの処理をここで終了して次の状態付与へ
▼ (ただし、重複先がまた同じ状態異常ならそのままスルー)
    62-84 ■回数付きループ [ CSelf10[状態全個数] ]回
可変DB[5:┗ 状態リスト]を検索し、
付与しようとしている状態異常が既に付与されているかどうかを調べます。
      65-82 ■条件分岐(変数): 【1】 CSelf17[残りターン] が 0 以外
状態異常になっている場合は分岐。
        69-80 ■条件分岐(変数): 【1】 CSelf31[重複状態] が CSelf11[処理中状態ID] と同じ
ユーザーDB[8:状態設定]項目[10:このステ状態が重なると↓]にある状態IDと
これから付与しようとしている状態IDが一致する場合(二重掛け)は分岐。
          73-78 ■条件分岐(変数): 【1】 CSelf31[重複状態] が CSelf32[重複の変化先状態] 以外
二重掛けの時に別の状態IDになる場合は分岐。
            75 セルフ[33]に変化する状態IDを設定。
            76 セルフ[34]に変化前の現在状態異常になっている状態IDを設定。
    85-87 ■条件分岐(変数): 【1】 CSelf33[最終変化先状態] が -10 と同じ
同じ状態異常が付与されていない場合は分岐。
      87 ▼ -10のままなら変化する状態がないので、ここまま進む(処理は空)
ここは通過して、付与する処理へ進む。
    89-96 ◇分岐: 【2】 [ CSelf33[最終変化先状態] が 0 以上 ]の場合↓
状態異常になっている状態で、その状態異常を回復させ、別の状態異常を付与させる場合は分岐。
      90-93 ▼ 変化する状態があった場合

▼ 変化元の状態を解除
現在状態異常中の可変DB[5:┗ 状態リスト]に「0」を設定し、状態異常から回復させます。
      94-96 ▼ 変化先の状態を付与
現在処理中のコモンイベント[075:X[移]状態付与/消去]を呼び出し、
新たな状態異常の付与して、【イベント処理中断】を実行。
    98-101 ◇分岐: 【3】 [ CSelf33[最終変化先状態] が -1 以下 ]の場合↓
同じ状態異常の二重掛けの時に、その状態異常が回復する場合は分岐。
      99-101 ▼ 治る場合
現在処理中のコモンイベント[075:X[移]状態付与/消去]を呼び出し、状態の回復処理を実行し、
【イベント処理中断】を実行。
    107 ▼ まず、戦闘不能になる状態かどうかチェック
    109-116 ■条件分岐(変数): 【1】 CSelf20[一時変数A] が 2 と同じ
状態を付与する場合は分岐。
      111-114 ▼ 「なったら即HP0」なら即死させる
▼ 変化させる状態異常を「戦闘不能」に
セルフ[1]セルフ[11]に「0(戦闘不能の状態ID)」を設定。
    121-129 ■条件分岐(変数): 【1】 CSelf12[基本ターン] が 0 以上
付与する状態のユーザーDB[8:状態設定]項目[4:最低持続ターン[-1:永久]]の設定が
「0以上」の場合は分岐。
      123-127 (基本ターン−増減ターン)+0〜増減ターン×2」をセルフ[14]に設定し、
「下限1(最低1ターンは状態異常を維持)」を実行。
仮に「基本ターン=5」「増減ターン=2」の場合は、「3〜7ターン」の設定になります。
処理の流れとしては、まず「基本ターン−増減ターン」でセルフ[14]に「3」が設定されます。
続いて「増減ターン」を2倍にして「4」にします。
そして「乱数「0〜4]」をセルフ[14]を加算する事で、
セルフ[14]には「3〜7」のいずれかの値が設定されます。
      128-129 ▼ 一時DBの次ステータス回復までの歩数を引き上げ
可変DB[17:×主人公一時DB]項目[13:[一時]次ステータス回復まで]を「下限セルフ[14]」で設定。
但し、項目[13:[一時]次ステータス回復まで]の値は、
258行目以降で設定し直す処理がありますので、ここの設定は意味がありません。
    131-133 ◇上記以外
状態異常が自然治癒しない場合は分岐。
      132-133 ▼ 無限に続く状態の場合は-1を格納
セルフ[14]に「-1(永久に状態が続く)」を設定。
    136 可変DB[5:┗ 状態リスト]セルフ[14](回復までの歩数)を設定し、状態を付与する。
    137 ▼ これ以外解除するかをチェック
    139-143 ■条件分岐(変数): 【1】 CSelf20[一時変数A] が 1 と同じ
付与する状態のユーザーDB[8:状態設定]項目[18:これ以外の全ステ状態を・・・ ]
解除する」の場合は分岐。
      141 セルフ[18]セルフ[11](処理中の状態ID)を設定。
このセルフ[18]に設定された状態ID以外の状態はあとで回復させます。
  145-147 ◇分岐: 【2】 [ CSelf2[付与?=1 消去?=0 更新?=2] が 0 と同じ ]の場合↓
「付与?消去?」が「消去」の場合は分岐。
    146-147 ▼ 残りターン数を0にする
可変DB[5:┗ 状態リスト]に「0」を設定し、状態異常から回復させます。
151-199 ◇分岐: 【2】 [ CSelf1[付与する状態] が -1 以下 ]の場合↓
「付与する状態」が「全て消去」の場合は分岐。
  152-157 ■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 1 と同じ
全て消去」なのに「付与」の場合は分岐。
    154-155 エラーを表示して、【イベント処理中断】を実行。
  158-197 ■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 0 と同じ
「付与?消去?」が「消去」の場合は分岐。
    160-163 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■状態を全消去する場合
▼ -1なら強制的に全状態を消去 -2なら全回復時に治療する状態のみ消去
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    164 ユーザーDB[8:状態設定]データ数(ループ回数)セルフ[10]に設定。
    165 セルフ[11]に「-1」を設定し、
ループ処理をユーザーDB[8:状態設定]データ[0]からスタートさせます。
    166-172 ■条件分岐(変数): 【1】 CSelf1[付与する状態] が -1 と同じ
「付与する状態」が「全て消去(強制)」の場合は分岐。
      168-170 ▼ 強制全回復
可変DB[5:┗ 状態リスト]の初期化(全回復)と、主人公のHPに「下限1」を設定。
    173-180 ■条件分岐(変数): 【1】 CSelf1[付与する状態] が -3 以下
「付与する状態」が「全て消去(死亡除く全回復時対象)」の場合は分岐。
      175-178 ▼ 死亡以外全部回復
セルフ[10]に「減算1」を設定し、ループ処理の回数を1回減らします。
セルフ[11]に「0」を設定し、
ループ処理をユーザーDB[8:状態設定]データ[1]からスタートさせます。
セルフ[1]に「-2(全て消去(全回復時対象のみ))」を設定。
    181-197 ■回数付きループ [ CSelf10[状態全個数] ]回
状態の数だけループ。
      184-194 ■条件分岐(変数): 【1】 CSelf1[付与する状態] が -2 と同じ
付与する状態が「全て消去(全回復時対象のみ)」の場合は分岐。
        187-192 ■条件分岐(変数): 【1】 CSelf15[全回復対象フラグ?] が 0 と同じ
ユーザーDB[8:状態設定]項目[19:ステータス全回復で解除?]
解除しない(有利な状態変化)」の場合は分岐し、【ループ開始へ戻る】を実行。
例えば「HP+」などの状態異常では、ここで【ループ開始へ戻る】を実行する事で、
「HP+」などの状態異常が消えずに残るようになります。
      195 ▼ 状態残りターンを0にセット(回復)
可変DB[5:┗ 状態リスト]に「0」を設定し、状態異常から回復させます。
201-203 ◇上記以外
この分岐にはならないので、処理されません。
206 ●ラベル地点「更新処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
「付与?消去?」が「更新」の場合は、20行目からここへジャンプして来ます。
208 ▼ 戦闘不能状態の有無からHPを修正する
211-223 ■条件分岐(変数): 【1】 CSelf25[戦闘不能の扱いフラグ] が 0 と同じ
ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]
0(戦闘不能のまま)」の場合は分岐。
  214-217 ■条件分岐(変数): 【1】 CSelf21[戦闘不能ターン数] が 0 と同じ
戦闘不能ではない場合は分岐。
    216-217 ▼ 戦闘不能でなかったら、とにかくHPを1以上にする
主人公のHPを「下限1」にして、HPが「1以上」になるようにする。
  219-221 ◇分岐: 【2】 [ CSelf21[戦闘不能ターン数] が 0 以外 ]の場合↓
戦闘不能である場合は分岐。
    220-221 ▼ 戦闘不能状態になってたら、とにかくHPを0にする
主人公のHPを「0」を設定。
225-230 ◇分岐: 【2】 [ CSelf25[戦闘不能の扱いフラグ] が 1 と同じ ]の場合↓
ユーザーDB[17:システム設定]項目[21:移動時の戦闘不能の扱い]
1(HP1で回復)」の場合は分岐。
  226-230 ▼ 「HP1で回復 」システムになっていた場合
可変DB[5:┗ 状態リスト]項目[0(戦闘不能)]に「0」を設定して戦闘不能を無くし、
主人公のHPを「下限1」にしてHPが「1以上」になるようにして、
セルフ[21]に「0」を設定して以降の処理では戦闘不能の回復歩数を「0(回復済み)」に設定。
233 ▼ もし「戦闘不能」に全ステ解除属性付いてた場合は、全解除状態として戦闘不能(0番)を記憶
234-243 ■条件分岐(変数): 【1】 CSelf21[戦闘不能ターン数] が 0 以外
戦闘不能である場合は分岐。
  237-241 ■条件分岐(変数): 【1】 CSelf20[一時変数A] が 1 と同じ
戦闘不能のユーザーDB[8:状態設定]項目[18:これ以外の全ステ状態を・・・]
「1(解除する)」が設定されている場合は分岐。
    239 セルフ[18]に「0(戦闘不能の状態ID)」を設定。
245 ▼ もし「これ以外の状態を全て解除」する状態が付与されていたら、
 「その状態」と「戦闘不能」以外を全部0にする
246-255 ■条件分岐(変数): 【1】 CSelf18[全解除フラグ(残す状態番号を格納 -1でナシ‐ が 0 以上
セルフ[18]に状態IDが設定されている場合は分岐。
  248-250 ▼ 残す状態のターン数だけ取得して、初期化する
可変DB[5:┗ 状態リスト]セルフ[18]の項目IDの残りターン数をセルフ[20]に設定し、
可変DB[5:┗ 状態リスト]を初期化。
  251-253 ▼ 全部0になったので、残りターン数(歩数)を再入力
可変DB[5:┗ 状態リスト]項目[0(戦闘不能)]セルフ[21]を設定し、
可変DB[5:┗ 状態リスト]セルフ[18]の項目IDにセルフ[20]を設定。
258-260 ▼ 最後に、状態異常を受けているかどうか、受けていれば
▼ あと何ターンで回復するかを主人公一時DBに代入します
▼ また、移動時の一歩あたりのHP・SP変動値の計算も行います
 273-336 ■回数付きループ [ CSelf10[状態全個数] ]回
全ての状態異常(残り歩数)をチェック。
  276-324 ■条件分岐(変数): 【1】 CSelf17[残りターン] が 0 以外
状態異常になっている場合は分岐。
    278-282 ■条件分岐(変数): 【1】 CSelf17[残りターン] が 1 以上
残りターン数がある場合は分岐。
      280-281 ▼ 一時DBの、次にステータスが回復するまでの歩数を算出
可変DB[17:×主人公一時DB]項目[13:[一時]次ステータス回復まで]に「上限セルフ[17]」を設定。
この設定により、現在状態異常になっている状態の残り歩数の中で、
最も残り歩数が少ない歩数が項目[13:[一時]次ステータス回復まで]に設定されます。
      282 ▼ 一時DBの、次にステータスが回復するまでの歩数を算出
可変DB[17:×主人公一時DB]項目[10:[一時]移動時ステの有無]に「1」を設定。
    284-285 ◇分岐: 【2】 [ CSelf17[残りターン] が -1 と同じ ]の場合↓
状態異常が永遠に続く場合は分岐。
      285 可変DB[17:×主人公一時DB]項目[10:[一時]移動時ステの有無]に「1」を設定。
    288-292 ▼ HP・SPの自然変動値を加算
1歩歩くごとに増減するHP・SPの量を可変DB[17:×主人公一時DB]
項目[11:[一時]HP自然増減値]項目[12:[一時]SP自然増減値]に加算で設定。
    293-295 ▼ 封印状態チェック
ユーザーDB[8:状態設定]項目[17:特殊技能制限]が「1(使用不能になる)」の場合は、
可変DB[17:×主人公一時DB]項目[16:[一時]封印状態?]に「1」を設定。
    296 ▼ もしステータスに表示される状態異常なら、状態名一覧に追加
    298-322 ■条件分岐(変数): 【1】 CSelf22[状態異常表示有り?] が 1 のビットを満たす
ユーザーDB[8:状態設定]項目[1:状態の表示方法]
[1]↓の文字をステータスに表示」か「[3]↓表示&ポップアップ両方」の場合は分岐。
別の言い方をすれば、ステータス画面「毒/マヒ/HP+」を表示する設定の場合は分岐。
      300-309 ■条件分岐(変数): 【1】 CSelf23[表示状態異常個数(4個で改行)] が 4 以上
「毒/マヒ/HP+」の文字設定が4個目の場合は分岐。
        302-307 「余剰4」でセルフ[23]が「0」になったら、セルフ[9]に改行を設定。
      310-318 ■条件分岐(変数): 【1】 CSelf24[表示状態に/入れる?] が 1 と同じ
 ■条件分岐(変数): 【1】 CSelf23[表示状態異常個数(4個で改行)] が 0 以外
ユーザーDB[17:システム設定]項目[19:ステータス状態の表示方法]
「1(区切り有り)」の場合は分岐し、さらに305行目の改行を実行していない場合は分岐。
        314 セルフ[9]に「/」の区切りを追加。
      319-320 セルフ[9]にステータス画面で表示する文字を追加し、セルフ[23]を「加算1」にする。
327-329 ▼ 回復ターンMaxにコピーする。
 こっちの値は、回復時にまとめて全ステータスの残り歩数を減らすときに使う
可変DB[17:×主人公一時DB]項目[13:[一時]次ステータス回復まで]の値を
項目[14:[一時]次ステータス回復Max]に複製。
330-331 ▼ 表示状態文字列に格納
可変DB[17:×主人公一時DB]項目[15:[一時]状態異常名一覧]セルフ[9]を設定。
333-335 ▼ ターンで回復する状態が一つもない状態なら、この段階で
▼ 次ステータス回復までの残り歩数が999999になるが、それで問題なし。
▼(このカウントが0になったら回復判定を行うため、
  その処理をさせないために999999のままにする)


▲トップへ戻る▲



◎関連ページ

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

◆万能ウィンドウについて
┗◆万能ウィンドウの設定例

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