行 |
処理内容 |
10-14 |
■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 2 と同じ |
「付与?消去?」が「更新」の場合は分岐し、287行目のラベル「更新処理」へジャンプ。 |
15-20 |
■条件分岐(変数): 【1】 CSelf0[戦闘スロット] が 0 未満 |
存在しないスロットの場合は分岐し、エラーを表示して、【イベント処理中断】を実行。 |
22-32 |
▼ 座標を取得 |
主人公のスロット(0〜5)の場合はコモンイベント[174:X[戦]味方欄_座標算出]を呼び出し、
敵キャラのスロット(0〜6)の場合はコモンイベント[175:X[戦]敵キャラ_座標算出]を呼び出し、
対象のスロットの画面表示位置をセルフ[38〜39]に設定。 |
36 |
▼ もしモードが10番なら強制付与 |
38 |
■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 10 と同じ |
「付与?消去?」が「強制付与」の場合は分岐し、セルフ[2]を「1(付与)」の設定に変更し、
セルフ[30]に「1(状態異常になる確率を100%)」に設定。 |
46-225 |
■条件分岐(変数): 【1】 CSelf1[付与する状態] が 0 以上 |
処理する状態IDが設定されている場合は分岐。 |
|
48-50 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 特定の1状態だけ付与・消去する
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
53-58 |
■条件分岐(変数): 【1】 CSelf11[処理中状態ID] が CSelf10[状態全個数] 以上 |
処理する状態IDが存在しないIDだった場合は分岐し、
エラーをデバッグ文で表示し、【イベント処理中断】を実行。 |
|
59-208 |
■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 1 と同じ |
「付与?消去?」が「付与」の場合は分岐。 |
|
|
61-66 |
▼ 状態IDがマイナスなら何もしない
■条件分岐(変数): 【1】 CSelf11[処理中状態ID] が -1 以下 |
処理する状態IDが存在しないIDの場合は分岐し、【イベント処理中断】を実行。 |
|
|
68-69 |
▼ 「これ以外を全解除」の状態異常番号を初期化 |
セルフ[40]に「10000」を設定。
もしも状態異常になっている全ての状態の中で、
ユーザーDB[8:状態設定]の項目[18:これ以外の全ステ状態を・・・]の設定が「1」の場合は、
その状態IDがセルフ[40]に設定され、セルフ[40]の値が「9999以下」になります。 |
|
|
70-71 |
▼ まず、重複で変化する状態異常を探す。もしあればこの処理をここで終了して次の状態付与へ
▼ (ただし、重複先がまた同じ状態異常ならそのままスルー) |
|
|
74-104 |
■回数付きループ [ CSelf10[状態全個数] ]回 |
可変DB[13:×┣ 状態リスト]を検索し、
付与しようとしている状態異常が既に付与されているかどうかを調べます。 |
|
|
|
77-102 |
■条件分岐(変数): 【1】 CSelf17[残りターン] が 0 以外 |
状態異常になっている場合は分岐。 |
|
|
|
|
82-86 |
■条件分岐(変数): 【1】 CSelf41[全解除異常一時] が 1 と同じ |
ユーザーDB[8:状態設定]の項目[18:これ以外の全ステ状態を・・・]が「1」の場合は分岐。 |
|
|
|
|
|
83-84 |
▼ 解除するなら番号を引き下げ |
セルフ[40]にユーザーDB[8:状態設定]のデータIDを設定し、
このデータID以外の状態異常は全て回復させます。 |
|
|
|
|
89-100 |
■条件分岐(変数): 【1】 CSelf31[重複状態] が CSelf11[処理中状態ID] と同じ |
ユーザーDB[8:状態設定]の項目[10:このステ状態が重なると↓]にある状態IDと
これから付与しようとしている状態IDが一致する場合(二重掛け)は分岐。 |
|
|
|
|
|
93-98 |
■条件分岐(変数): 【1】 CSelf31[重複状態] が CSelf32[重複の変化先状態]
以外 |
二重掛けの時に別の状態IDになる場合は分岐。 |
|
|
|
|
|
|
95 |
セルフ[33]に変化する状態IDを設定。 |
|
|
|
|
|
|
96 |
セルフ[34]に変化前の現在状態異常になっている状態IDを設定。 |
|
|
105-107 |
■条件分岐(変数): 【1】 CSelf33[最終変化先状態] が -10 と同じ |
同じ状態異常が付与されていない場合は分岐。 |
|
|
|
107 |
▼ -10のままなら変化する状態がないので、ここまま進む(処理は空) |
ここは通過して、付与する処理へ進む。 |
|
|
109-120 |
◇分岐: 【2】 [ CSelf33[最終変化先状態] が 0 以上 ]の場合↓ |
状態異常になっている状態で、その状態異常を回復させ、別の状態異常を付与させる場合は分岐。 |
|
|
|
110 |
▼ 変化する状態があった場合 このまま進む(後に状態付与が成功したら変化後を採用する) |
ここは通過して、付与する処理へ進む。
そして新たな状態異常が付与されたら、前に付与されていた状態異常は回復させる。 |
|
|
|
112-120 |
■回数付きループ [ 0 ]回 |
ウディタ[2.01]まで使われていた設定で、現在は使われていません。 |
新旧の違いは、例えば「状態A」から「状態B」に変わる設定の場合、
旧設定では、状態Aを回復してから状態Bの付与処理を行っていました。
そのため、状態Bの付与が失敗すると、状態Aも状態Bも付与されていない状態になります。
現在の設定では、状態Bの付与が成功した時には状態Aが回復し、
状態Bの付与が失敗した時には状態Aがそのまま残る設定になっています。 |
|
|
122-125 |
◇分岐: 【3】 [ CSelf33[最終変化先状態] が -1 以下 ]の場合↓ |
同じ状態異常の二重掛けの時に、その状態異常が回復する場合は分岐。 |
|
|
|
123-125 |
▼ 治る場合 |
現在処理中のコモンイベント[137:X[戦]状態付与/消去]を呼び出し、状態の回復処理を実行し、
【イベント処理中断】を実行。 |
|
|
130-132 |
▼ 付与する場合は、状態耐性に応じて率を計算 |
可変DB[12:×┣ 状態耐性計算結果]から付与する状態の耐性をセルフ[29]に取得し、
「減算1〜99」を設定。 |
|
|
133-134 |
▼ 強制付与フラグが 1 なら絶対発動 |
セルフ[29]にセルフ[30]の値を「下限」で設定。
セルフ[30]が「1(強制付与)」の場合はセルフ[29]が「1以上」となり、必ず付与されます。
セルフ[30]が「0」の場合はセルフ[29]が「0以上」となり、確率計算通りになります。 |
|
|
136-140 |
■条件分岐(変数): 【1】 CSelf40[全解除異常_最終位置] が CSelf11[処理中状態ID]
未満 |
特定の状態以外は状態を付与しない場合は分岐し、
セルフ[29]に「0(付与しない)」を設定して、今回の状態の付与処理は行わないようにします。
例えば「戦闘不能」になっている場合はここの条件分岐を分岐し、
セルフ[29]を「0」にして、戦闘不能以外の状態異常は付与しないようにします。 |
|
|
141-208 |
■条件分岐(変数): 【1】 CSelf29[状態にかかる率] が 1 以上 |
状態を付与する場合は分岐。 |
|
|
|
143-152 |
■条件分岐(変数): 【1】 CSelf33[最終変化先状態] が 0 以上 |
別の状態に変化する場合は分岐。 |
|
|
|
|
145-147 |
▼ 重複する状態があったら、元のを消して新状態のみ付与する
▼ 変化元の状態を解除 |
前の状態異常の可変DB[13:×┣ 状態リスト]に「0」を設定し、状態異常から回復させます。 |
|
|
|
|
148-150 |
▼ 変化先の状態を付与 |
セルフ[1]とセルフ[11]にセルフ[33]を設定し、変化する状態の状態IDを設定。 |
|
|
|
154 |
▼ まず、戦闘不能になる状態かどうかチェック |
|
|
|
156-170 |
■条件分岐(変数): 【1】 CSelf20[一時変数A] が 2 と同じ |
付与する状態のユーザーDB[8:状態設定]の項目[15:戦闘不能として・・・]の設定が
「なったら即HP0に[状態0]」の場合は分岐。 |
|
|
|
|
158-159 |
▼ 「なったら即HP0」なら即死させる |
セルフ[30]に「1」を設定。
但しこの先にセルフ[30]を使用する設定が無いため、この設定は無意味です。 |
|
|
|
|
160-165 |
■条件分岐(変数): 【1】 CSelf3[メッセージ有無] が 1 と同じ |
メッセージを表示する場合は分岐し、
コモンイベント[138:X[戦]┗状態変化メッセージ]を使ってメッセージを表示。 |
|
|
|
|
166-168 |
▼ 変化させる状態異常を「戦闘不能」に |
セルフ[1]とセルフ[11]に「0(戦闘不能の状態ID)」を設定。 |
|
|
|
175-181 |
■条件分岐(変数): 【1】 CSelf12[基本ターン] が 0 以上 |
付与する状態のユーザーDB[8:状態設定]の項目[4:最低持続ターン[-1:永久]]の設定が
「0以上」の場合は分岐。 |
|
|
|
|
177-181 |
「(基本ターン−増減ターン)+0〜増減ターン×2」をセルフ[14]に設定し、
「下限1(最低1ターンは状態異常を維持)」を実行。 |
仮に「基本ターン=5」「増減ターン=2」の場合は、「3〜7ターン」の設定になります。
処理の流れとしては、まず「基本ターン−増減ターン」でセルフ[14]に「3」が設定されます。
続いて「増減ターン」を2倍にして「4」にします。
そして「乱数「0〜4]」をセルフ[14]を加算する事で、
セルフ[14]には「3〜7」のいずれかの値が設定されます。 |
|
|
|
183-184 |
◇上記以外 |
状態異常が自然治癒しない場合は分岐。 |
|
|
|
|
184 |
セルフ[14]に「-1(永久に状態が続く)」を設定。 |
|
|
|
187 |
可変DB[13:×┣ 状態リスト]にセルフ[14](回復までのターン数)を設定し、状態を付与する。 |
|
|
|
190-194 |
■条件分岐(変数): 【1】 CSelf20[一時変数A] が 1 と同じ |
付与する状態のユーザーDB[8:状態設定]の項目[18:これ以外の全ステ状態を・・・ ]の設定が
「1(解除する)」の場合は分岐し、セルフ[18]にセルフ[11](処理中の状態ID)を設定。
このセルフ[18]に設定された状態ID以外の状態はあとで回復させます。 |
|
|
|
196-200 |
■条件分岐(変数): 【1】 CSelf20[一時変数A] が 2 のビットを満たす |
付与する状態のユーザーDB[8:状態設定]の項目[1:状態の表示方法]の設定が
ポップアップを表示する設定の場合は分岐し、
コモンイベント[181:X[戦]ダメージ・回復ポップアップ]を呼び出して、
状態が付加された事をポップアップで表示。 |
|
|
|
201-206 |
■条件分岐(変数): 【1】 CSelf3[メッセージ有無] が 1 と同じ |
メッセージ有無が「メッセージ有り」の場合は分岐し、
コモンイベント[138:X[戦]┗状態変化メッセージ]を呼び出して状態付加のメッセージを表示。 |
|
210-223 |
◇分岐: 【2】 [ CSelf2[付与?=1 消去?=0 更新?=2] が 0 と同じ ]の場合↓ |
「付与?消去?」が「消去」の場合は分岐。 |
|
|
213-221 |
■条件分岐(変数): 【1】 CSelf17[残りターン] が 0 以外
■条件分岐(変数): 【1】 CSelf3[メッセージ有無] が 1 と同じ |
状態異常になっている場合は分岐し、 メッセージ有無が「メッセージ有り」の場合は更に分岐し、
コモンイベント[138:X[戦]┗状態変化メッセージ]を呼び出して状態消去のメッセージを表示。 |
|
|
222-223 |
▼ 残りターン数を0にする |
可変DB[13:×┣ 状態リスト]に「0」を設定し、状態異常から回復させます。 |
227-284 |
◇分岐: 【2】 [ CSelf1[付与する状態] が -1 以下 ]の場合↓ |
「付与する状態」が「全て消去」の場合は分岐。 |
|
228-233 |
■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 1 と同じ |
「全て消去」なのに「付与」の場合は分岐。 |
|
|
230-231 |
エラーを表示して、【イベント処理中断】を実行。 |
|
234-280 |
■条件分岐(変数): 【1】 CSelf2[付与?=1 消去?=0 更新?=2] が 0 と同じ |
「付与?消去?」が「消去」の場合は分岐。 |
|
|
236-239 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■状態を全消去する場合
▼ -1なら強制的に全状態を消去 -2なら全回復時に治療する状態のみ消去
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
|
240 |
ユーザーDB[8:状態設定]のデータ数(ループ回数)をセルフ[10]に設定。 |
|
|
241 |
セルフ[11]に「-1」を設定し、
ループ処理をユーザーDB[8:状態設定]のデータ[0]からスタートさせます。 |
|
|
242-249 |
■条件分岐(変数): 【1】 CSelf1[付与する状態] が -3 以下 |
「付与する状態」が「全て消去(死亡除く全回復時対象)」の場合は分岐。 |
|
|
|
244-247 |
▼ 死亡以外全部回復 |
セルフ[10]に「減算1」を設定し、ループ処理の回数を1回減らします。 |
セルフ[11]に「0」を設定し、
ループ処理をユーザーDB[8:状態設定]のデータ[1]からスタートさせます。 |
セルフ[1]に「-2(全て消去(全回復時対象のみ))」を設定。 |
|
|
250-278 |
■回数付きループ [ CSelf10[状態全個数] ]回 |
状態の数だけループ。 |
|
|
|
253-263 |
■条件分岐(変数): 【1】 CSelf1[付与する状態] が -2 と同じ |
付与する状態が「全て消去(全回復時対象のみ)」の場合は分岐。 |
|
|
|
|
256-261 |
■条件分岐(変数): 【1】 CSelf15[全回復対象フラグ?] が 0 と同じ |
ユーザーDB[8:状態設定]の項目[19:ステータス全回復で解除?]が
「解除しない(有利な状態変化)」の場合は分岐し、【ループ開始へ戻る】を実行。 |
例えば「防御」や「力ため」などの状態異常では、ここで【ループ開始へ戻る】を実行する事で、
「防御」や「力ため」などの状態異常が消えずに残るようになります。 |
|
|
|
266-274 |
■条件分岐(変数): 【1】 CSelf17[残りターン] が 0 以外
■条件分岐(変数): 【1】 CSelf3[メッセージ有無] が 1 と同じ |
状態異常になっている場合は分岐し、 メッセージ有無が「メッセージ有り」の場合は更に分岐し、
コモンイベント[138:X[戦]┗状態変化メッセージ]を呼び出して状態消去のメッセージを表示。 |
|
|
|
275-276 |
▼ 状態残りターンを0にセット(回復) |
可変DB[13:×┣ 状態リスト]に「0」を設定し、状態異常から回復させます。 |
282-284 |
◇上記以外 |
この分岐にはならないので、処理されません。 |
287 |
●ラベル地点「更新処理」 <<<<<<<<<<<<<<<<<<<<<<<<★ |
「付与?消去?」が「更新」の場合は、12行目からここへジャンプして来ます。 |
289-301 |
▼ 戦闘不能状態の有無からHPを修正する |
戦闘不能の場合はHPを「0」に設定。
戦闘不能ではない場合は「下限1」を設定し、最低でもHPが「1」になるように設定。 |
303-313 |
■条件分岐(変数): 【1】 CSelf21[戦闘不能ターン数] が 0 以外 |
戦闘不能である場合は分岐。 |
|
306-311 |
■条件分岐(変数): 【1】 CSelf20[一時変数A] が 1 と同じ |
戦闘不能のユーザーDB[8:状態設定]の項目[18:これ以外の全ステ状態を・・・]に
「1(解除する)」が設定されている場合は分岐。 |
|
|
308 |
セルフ[18]に「0(戦闘不能の状態ID)」を設定。 |
|
|
309 |
可変DB[13:×┣ 状態リスト]の項目[0](戦闘不能の項目ID)にセルフ[21]を設定。
但し290行目からセルフ[21]の値が変わっていないので、この設定は意味がありません。 |
316-324 |
■条件分岐(変数): 【1】 CSelf18[全解除フラグ(残す状態番号を格納 -1でナシ‐
が 0 以上 |
セルフ[18]に状態IDが設定されている場合は分岐。 |
|
318-320 |
▼ 残す状態のターン数だけ取得して、初期化する |
可変DB[13:×┣ 状態リスト]のセルフ[18]の項目IDの残りターン数をセルフ[20]に設定し、
可変DB[13:×┣ 状態リスト]を初期化。 |
|
321-322 |
▼ 全部0になったので、残りターン数(歩数)を再入力 |
可変DB[13:×┣ 状態リスト]のセルフ[18]の項目IDにセルフ[20]を設定。 |