行 |
処理内容 |
5-8 |
ユーザーDB[17:システム設定]から戦闘に関する設定値を取得。 |
10 |
対象者が戦闘不能ではないかをチェック。 |
18-30 |
■回数付きループ [ 1 ]回 |
対象者の表示位置をセルフ[18・19]に取得。 |
33-81 |
▼ もし「アイテム・武器・防具」の使用による技能使用ならここで技能コードを計算し直し
|
アイテムを使用した場合でアイテムとして処理する場合は、セルフ[1]の値(10000〜19999)をそのまま残す。
技能を発動させる場合は、発動する技能のID(ユーザーDB[0:技能]のデータID)をセルフ[1]に設定。
イベントを発動させる場合は、そのイベントを実行。 |
武器や防具をアイテムとして使用して技能を発動した場合は、
発動する技能のID(ユーザーDB[0:技能]のデータID)をセルフ[1]に設定。 |
87-287 |
■条件分岐(変数): 【1】 CSelf1[発動技能] が 10000 以上
■条件分岐(変数): 【1】 CSelf1[発動技能] が 20000 未満 |
アイテム使用の場合は条件分岐内を処理。 |
|
93-149 |
▼ 【1.1】 ステータス状態 消去 |
状態異常を回復させる処理を実行。 |
|
156-280 |
■回数付きループ [ 2 ]回 |
1回目はHPの増減処理、2回目はSPの増減処理を行います。 |
|
|
158-177 |
HPの処理ならHPの増減量を計算し、
SPの処理ならSPの増減量を計算する。 |
|
|
178-189 |
効果量がプラス値なのか、マイナス値なのか、プラマイゼロなのかによってセルフ[15]の値を設定。 |
マイナス値の場合は、セルフ[41]に「乗算-1」を設定し、プラス値に変えます。
プラス値にしないとダメージ表示が「-30」になり、「30の回復?」と見えてしまいます。
なお、HP・SPを減少させる時には、画面上にダメージ量を表示した後に、
もう一度「乗算-1」でプラスマイナスを反転させてから、HP・SPの減少の処理します。 |
|
|
190-278 |
プラス値かマイナス値かで分岐し、HPかSPで分岐して、HPの増減かSPの増減を実行。
さらに主人公(セルフ[2]=9以下)か敵キャラ(セルフ[2]=10以上)かで分岐し、
対象者の上に回復量やダメージ量を表示。 |
ダメージ処理(HP減少)の場合は、
コモンイベント[139:X[戦]状態更新]を呼び出してダメージによる状態異常からの回復を調べ、
戦闘不能になった場合はコモンイベント[171:X[戦]敵撃破処理]を呼び出します。 |
293-872 |
▼ 技能を使用した場合の処理 |
技能発動の場合は分岐。 |
|
298-308 |
▼ 【2−】命中しててもしてなくてもカウンターチェック |
カウンターが発動するかどうかをチェックし、カウンターが発動する事になった場合は、
発動させた状態のID(ユーザーDB[8:状態設定]のデータID)をセルフ[44]に設定。 |
|
312-319 |
▼ 【2.1】 成功率が技能依存か武器依存時かで分岐 |
ユーザーDB[0:技能]の項目[7:成功率[%] [-1:命中依存]]をセルフ[40]に取得。
セルフ[40]が「-1(命中依存)」の場合は、発動者が持つ命中率に、
ユーザーDB[0:技能]の項目[31:武器依存時命中補正±%]を足したものをセルフ[40]に設定。 |
|
320-326 |
▼ 相手回避率の影響を受ける技能なら補正 |
ユーザーDB[0:技能]の項目[33:相手の回避率を]が「1」の場合は、
対象者の回避率を命中率に減算します。 |
|
331-342 |
▼ 【2.2 MISS】 攻撃を外した/失敗したときの処理 |
攻撃ミスした時に分岐し、331-342行を処理する。 |
|
|
332-333 |
▼ ミス時のエフェクト |
コモンイベント[181:X[戦]ダメージ・回復ポップアップ]を呼び出し、
対象者の画面表示上に「ミス!」を表示。 |
|
|
334-342 |
▼ ミス時のエフェクト |
ユーザーDB[0:技能]の項目[15:失敗時文章[(対象)〜]に文字列設定がある場合は、
発動者のキャラクター名を付けて、失敗した時のメッセージを表示。 |
|
|
343 |
処理が861行目まで飛びます。 |
|
352-408 |
▼ 【2.2 HIT】命中したときの処理 |
攻撃が当たった時に分岐し、352-408行を処理する。 |
|
|
346-353 |
HPかSPの増減に関係する場合はセルフ[42]を「1」にする。 |
HPかSPの増減に関係しない場合はセルフ[42]を「0」にして、
653行目にあるラベル地点「計算終了」まで処理が飛びます。 |
|
|
355-366 |
▼ 回復系かどうかチェック 回復なら物理度・精神度の減少補正をかけない |
味方に対する回復処理ならセルフ[29]に「1」を設定。
敵に対するダメージ処理ならセルフ[29]に「0」を設定します。 |
|
|
370-384 |
▼ 【初期計算】
▼ 攻撃・精神ダメージの影響度から、「物理度」「精神度」を算出
▼ 例:攻撃30、精神10なら、物理ダメージは75%分だけ補正、精神ダメージは25%だけ補正 |
ユーザーDB[0:技能]の項目[10:┣ 攻撃力影響度[%]]と項目[11:┣ 精神力影響度[%]]の合計%が
「100%以下」になるように調整し、その結果をセルフ[55・56]に設定。
例えば「項目[10]=50」「項目[11]=100」の場合は「セルフ[55]=33%」「セルフ[56]=66%」となります。
このセルフ[55・56]は対象者の防御力や精神防御からダメージの減少量を計算する時に使います。
仮に対象者が「防御力=60」「精神防御=60」の場合は「60×33%=19」「60×66%=39」となり、
「19+39」の合計で「58」のダメージ量の減少になります。 |
|
|
388-395 |
▼ 【2.3】 攻撃力の計算 |
ユーザーDB[0:技能]の項目[9:┣ 基本効果量[固定値]]をセルフ[41]に設定。 |
攻撃力にユーザーDB[0:技能]の項目[10:┣ 攻撃力影響度[%]]のパーセントを設定し、セルフ[34]に設定。 |
精神攻撃にユーザーDB[0:技能]の項目[11:┣ 精神力影響度[%]]のパーセントを設定し、セルフ[35]に設定。 |
|
|
399-413 |
▼ 【2.4】 ここから防御側の計算
▼ 「相手の防御力考慮する」場合だけ防御側計算 |
ユーザーDB[0:技能]の項目[34:相手の防御・精神防御を]が1以上の場合は、
対象者の防御力・精神防御を取得し、セルフ[55・56]を使って防御効果量(ダメージ減少量)を計算し、
その結果をセルフ[36・37]に設定。 |
回復系の技能の場合は、項目[34:相手の防御・精神防御を]を「[0]<完全に無視する>」にしないと、
もしも「1以上」などにすると、防御力(精神防御)が高いほど、回復量が減ってしまいます。 |
|
|
417-460 |
▼ 【2.5】 クリティカル判定 |
ユーザーDB[0:技能]の項目[32:クリティカル率[%] (-1:ナシ)]と、発動者が持つクリティカル率を足して、
クリティカルが発動するかどうかを判定。
クリティカルが発動した場合は、
効果量にセルフ[82](ユーザーDB[17:システム設定]の項目[33:[戦闘]クリティカル倍率])を設定し、
クリティカルを受けるキャラクターの上に「クリティカル!」を表示し、白フラッシュを実行。 |
|
|
464-499 |
▼ 【2.6】 攻撃力・精神攻撃によるダメージの攻防分を計算
▼
▼ 攻撃力・精神攻撃ダメージ・減算値の倍率は、ユーザデータベースの設定値を反映
▼ クリティカル時なら、クリティカル時の倍率と防御有効度を使用 |
クリティカルであるかどうかで分岐し、クリティカルの場合は、
セルフ[34](ユーザーDB[0:技能]の項目[10:┣ 攻撃力影響度[%]]×攻撃力)と、
セルフ[35](ユーザーDB[0:技能]の項目[11:┣ 精神力影響度[%]]×精神攻撃)のそれぞれに、
セルフ[82](ユーザーDB[17:システム設定]の項目[33:[戦闘]クリティカル倍率])を設定する。 |
そして「セルフ[34]−セルフ[36]」の計算を行って、
発動者の攻撃力からのダメージ量から対象者の防御力からのダメージ減少を引いたダメージ量を出す。
精神力の方も「セルフ[35]−セルフ[37]」の計算を行って、
発動者の精神攻撃からのダメージ量から対象者の精神防御からのダメージ減少を引いたダメージ量を出す。 |
|
|
504-531 |
▼ 【2.7】 打撃・魔法ダメージ率を反映
▼ ただし回復系技能ならこのダメージ率は無視する |
攻撃用の技能の場合は分岐し、
可変DB[10:×┏ 戦闘一時ステータス[基]]の項目[56:【受ける攻撃力ダメージ率】]をセルフ[34]に
可変DB[10:×┏ 戦闘一時ステータス[基]]の項目[57:【受ける精神力ダメージ率】]をセルフ[35]を設定。
この項目[56:【受ける攻撃力ダメージ率】]と項目[57:【受ける精神力ダメージ率】]の設定値は、
対象者が状態異常にった時に、ユーザーDB[8:状態設定]の項目[20:受ける攻撃力ダメージ率]と
項目[21:受ける精神攻撃ダメージ率]に設定されているパーセントを設定したものになります。
例えば対象者が2つの状態異常になり、
その2つの状態異常に設定されている項目[20:受ける攻撃力ダメージ率]が2つとも「50%」だった場合、
「50%×50%」で項目[56:【受ける攻撃力ダメージ率】]に設定される値は「25(%)」になり、
この場合は攻撃力からのダメージ量(セルフ[34])は「25%(4分の1)」になります。 |
|
|
535-543 |
▼ 【2.8】 算出したダメージ値と減算値をまとめて「効果量」を算出
▼ 攻撃力・精神攻撃分の効果を足す |
セルフ[41](ユーザーDB[0:技能]の項目[9:┣ 基本効果量[固定値]])と、
セルフ[34](ユーザーDB[0:技能]の項目[10:┣ 攻撃力影響度[%]])と、
セルフ[35](ユーザーDB[0:技能]の項目[11:┣ 精神力影響度[%]])をセルフ[41]に合算して、
ユーザーDB[0:技能]の項目[12:┗ ダメージ分散率± [%]]にある割合でセルフ[41]に乱数を設定します。
例えば項目[12:┗ ダメージ分散率± [%]]が「20」の場合は「80%〜120%」の乱数を発生させ、
その欄数値をセルフ[41]に設定します。
仮にセルフ[41]の値が「50」の場合は、「80%〜120%」の乱数によって、「40〜60」になります。 |
|
|
547-650 |
▼ 【2.9】 属性補正 |
属性は、技能に1つ、武器に2つ設定する事ができ、最大で3つの属性を設定する事ができます。
ここでは発動者の属性攻撃に対する、対象者の属性耐性(属性に強いか弱いか)を読み取り、
その属性耐性によってセルフ[41](ダメージ量)を変化させます。
例えば発動者が炎属性の攻撃を行った場合で、対象者の炎属性の耐性が「200%」の場合は、
ダメージ量が2倍になります。 |
同じ属性が2つある場合は、1つは無効化され、計算処理から除外されます。 |
2〜3個の属性がある場合は、その中で99%以下の最小値をセルフ[72]に設定し、
101%以上の最大値をセルフ[73]に設定し、最後にセルフ[38]にセルフ[72・73]を合算します。
例えば「属性耐性1=80%」「属性耐性2=50%」「属性耐性3=130%」の場合、
最小値になる「50」がセルフ[72]に保存され、最大値になる「130」がセルフ[73]に保存されます。
なお実際の設定値は「減算100」の値なので、
上記の場合は「セルフ[72]=-50」「セルフ[73]=30」になります。
そして「セルフ[38]=100」にセルフ[72](-50)とセルフ[73](30)を加算する事で、
今回の属性耐性は「80」になります。 |
属性耐性が確定したら、セルフ[41]に属性耐性を設定します。
仮にダメージ量が「200」だった場合で「属性耐性=80%」の場合は、
「200×80%」の計算で、最終的なダメージ量は「160」になります。 |
|
|
655-679 |
▼ 【2.10】 ステータス状態 消去(戦闘不能などの回復をHP・SP回復前にチェックするため) |
技能に状態異常を消去する設定がある場合は、ここで対象者の状態異常を消去します。 |
|
|
682 |
■回数付きループ [ CSelf42[HPかSPへの効果?] ]回 |
ユーザーDB[0:技能]の項目[8:┏ 何に影響する?]を「[0]HP」か「[1]SP」にしている場合は、
このループ内にあるHPやSPを増減する処理を実行します。
セルフ[41]は「0」か「1」しかならないので、ループ回数は1回のみになります。 |
ユーザーDB[0:技能]の項目[8:┏ 何に影響する?]の設定が「[-1]<なし>」の場合は、
809行目まで処理が飛びます。 |
なお、ループ内の最初にラベル地点「HP&SP処理」がありますが、このラベルに飛んでくる設定が無いため、
特に意味が無い設定のようです。 |
|
|
684-706 |
▼ 【2.11】 ダメージを処理する&表示
▼ 効果対象と影響をチェック |
セルフ[15]にダメージを与える場合は「-1」、回復させる場合は「1」を設定。
セルフ[41]がマイナス値(ダメージを与える)の場合はセルフ[15]に「乗算-1」を設定し、
プラスマイナスを反転させます。
そしてセルフ[41]の値をプラス値に変えます。
プラス値にしないとダメージ表示が「-30」になり、「30の回復?」と見えてしまいます。
なお、HP・SPを減少させる時には、画面上にダメージ量を表示した後に、
もう一度「乗算-1」でプラスマイナスを反転させてから、HP・SPの減少の処理します。 |
|
|
707-711 |
■回数付きループ [ 0 ]回 |
ここには元々「セルフ[70]=0」の設定がありましたが、
ウディタ[2.28]にバージョンアップした時に17行目へ移動しました。
このループ設定は「ここには以前このような設定があった」と言う事を伝えるために、
このような形で設定されています。 |
|
|
712-806 |
プラス値かマイナス値かで分岐し、HPかSPで分岐して、HPの増減かSPの増減を実行。
さらに主人公(セルフ[2]=9以下)か敵キャラ(セルフ[2]=10以上)で分岐し、
対象者の上に回復量やダメージ量を表示。 |
ダメージ処理の方では、セルフ[70]にカウンター用としてダメージ量を設定し、
セルフ[65]には反動用としてダメージ量に「乗算-1」でプラスマイナスを反転させた値を設定。 |
HP減少の場合は、
コモンイベント[139:X[戦]状態更新]を呼び出してダメージによる状態異常からの回復を調べます。 |
主人公のHPダメージの場合は、主人公の最大HPからのダメージの割合で、
主人公のステータス画面を縦に移動させる強さを9段階で設定します。
そしてコモンイベント[178:X[戦]味方欄_単体描画]を呼び出して、上下移動を実行させます。
ダメージ小(レベル1) |
ダメージ大(レベル5) |
|
|
|
|
|
810-870 |
▼ 【2.12】 ステータス状態 付与 |
ユーザーDB[0:技能]の項目[22〜27]や装備している武器(ユーザーDB[3:武器]の項目[18・19])に
状態を付与させる設定がある場合は、確率計算を行った上で、状態を付与させます。 |
882-919 |
主人公(セルフ[2]=9以下)か敵キャラ(セルフ[2]=10以上)で分岐し、
状態名の表示更新やHP・SPの表示更新、また戦闘不能になったかどうかを判断する処理を実行。 |
敵キャラの場合は、ダメージによって変身条件を満たしたかどうかを調べます。 |
924-1054 |
▼ 反動効果があった場合はダメージor回復処理 |
セルフ[1]が「0〜9999(技能を使った)」の場合は分岐し、
セルフ[1]が「10000〜19999(技能を発動しないアイテムを使った)」の場合は1055行目まで移動。 |
|
930-939 |
発動者(反動・吸収を受ける者)の表示位置をセルフ[18・19]に取得。 |
|
940-943 |
ユーザーDB[0:技能]の項目[35:与えた効果を自分に返す?]から「反動% or 吸収% or 0」を取得し、
対象者に与えたダメージ量と合わせて、セルフ[41]に保存。 |
|
945-1050 |
プラス値かマイナス値かで分岐し、HPかSPで分岐して、HPの増減かSPの増減を実行。
さらに主人公(セルフ[0]=9以下)か敵キャラ(セルフ[0]=10以上)で分岐し、
発動者対象者の上に回復量やダメージ量を表示。 |
主人公のHPダメージの場合は、主人公の最大HPからのダメージの割合で、
主人公のステータス画面を縦に移動させる強さを9段階で設定します。
そしてコモンイベント[178:X[戦]味方欄_単体描画]を呼び出して、上下移動を実行させます。 |
1059-1139 |
▼ 相手がカウンターを発動した場合は、即座に反撃アクションを実行
▼ (カウンターは、たとえ技能が全体でも単体に行う。魔法反射などを前提としているため) |
以下の条件を全て満たした時に、条件分岐内のカウンター処理を実行します。
セルフ[3]=0 |
今回の処理がカウンターによる攻撃ではない時は分岐。 |
「セルフ[3]=1」の場合は今回の処理がカウンターによる攻撃なので、
カウンター攻撃にカウンターで返すような二重カウンターにならないように、
「セルフ[3]=1」の時にはカウンター処理は実行しない。 |
セルフ[44]=0以上 |
304行目のコモンイベント[166:X[戦] ┗カウンター判定]の呼び出し設定にて、
対象者がカウンターの状態異常があるかどうかを調べ、
その結果をセルフ[44]に保存しています。
セルフ[44]にはユーザーDB[8:状態設定]のデータIDが設定されており、
カウンターのデータIDが設定されています。
ウディタの初期設定の場合は、カウンターは「データID=11」に設定されて
いるので、この場合はセルフ[44]には「11」が設定されます。
技能を発動しないアイテム使用の場合は、
セルフ[44]が「-1」になるので分岐しません。 |
セルフ[0]がセルフ[2]以外 |
発動者と対象者が異なるキャラクターである場合は分岐。 |
「発動者=対象者」だと、自分自身にカウンターを行う設定になってしまう。 |
セルフ[70]が1以上 |
HPやSPにダメージを受けている場合は分岐。 |
セルフ[59]が0 |
カウンターを行う対象者が戦闘不能ではない場合は分岐。 |
|
|
1075-1079 |
▼ 発動者と受け側をひっくり返してカウンター処理
▼ カウンター技能を読み込む |
ユーザーDB[8:状態設定]の項目[40〜44]にあるカウンター用の設定をセルフ[9・12・13]に取得。 |
|
1080-1093 |
▼ 技能が「相手の使った技能」なら変換 それ以外の「何もなし」なら終了 |
反撃する技能を設定。
反撃する技能の設定が無い場合は、ここで処理終了。 |
|
1094-1101 |
▼ カウンター時の文章があれば表示 |
ユーザーDB[8:状態設定]の項目[43:┣ カウンター発動文[対象〜]に文字列の設定がある場合は、
分岐して画面上に表示。 |
|
1102-1113 |
▼ ※一度別変数に入れ直さないと数値がおかしくなるため、一時変数経由で呼び出す |
セルフ[10・11]にはスロットを設定します。
セルフ[10]には反撃する相手を設定するので、セルフ[10]には今回攻撃してきた者を設定します。
セルフ[11]には反撃のダメージ量の計算する時に、発動者してきた者のパラメータを使うのか、
カウンター実行者のパラメータを使うのかによって、スロットの設定が変わります。
どちらのパラメータを使うのかは、
セルフ[11]はユーザーDB[8:状態設定]の項目[44:┗ 技能に使用する能力]の設定によって決まります。
通常は反撃する者のパラメータを使うと思いますが、
技能を反射する場合は、発動者のパラメータを使う事になりそう。 |
|
1114-1128 |
反撃内容が技能(ユーザーDB[0:技能]のデータID)である場合は分岐し…
発動者番号 |
セルフ[11](ダメージ計算のパラメータに使うスロット) |
発動敏捷性 |
0(即実行) |
受け側番号 |
セルフ[10](反撃する相手のスロット) |
発動技能 |
セルフ[12](反撃する技能ID(ユーザーDB[0:技能]のデータID)) |
を設定してコモンイベント[197:X┃┗◆1行動ループ]を呼び出し、そして反撃処理を実行します。 |