行 |
処理内容 |
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のままにする) |