WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[165:X[戦]┗単体処理]の解説
(更新:2023/04/24)


コモンイベント[165:X[戦]┗単体処理]について解説します。


ショートカット
■コモンイベント[165:X[戦]┗単体処理]って何?
■技能のダメージ処理について
■スロットに関して
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

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

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


  
■コモンイベント[165:X[戦]┗単体処理]って何?

コモンイベント[165:X[戦]┗単体処理]では、攻撃を受けた時のダメージ量の計算、HP・SPの回復量の計算、
状態異常の付与・回復の処理を実行します。

このコモンイベント[165:X[戦]┗単体処理]ではダメージ量や回復量の計算処理のみを行っているので、
実際に対象者のHPやSPを増減させる処理やダメージ量や回復量をゲーム画面上に表示する処理などは、
コモンイベント[165:X[戦]┗単体処理]から別のコモンイベントを呼び出して処理しています。



このコモンイベント[165:X[戦]┗単体処理]で処理している段階では既にアイテム使用の場合はアイテムを消費している状態、
特技の場合はHP・SPを消費している状態になっています。

アイテムや技能の消費処理は、コモンイベント[196:X┃┣◆行動可能判定]の中から呼び出した、
コモンイベント[169:X[戦]アイテム使用_消費処理]コモンイベント[170:X[戦]技能使用_消費処理]で処理しています。

1ターンの処理構造を簡単に説明すると以下のようになります。

コモンイベント[195:X┣◆1ターンの処理を実行]で順番に1キャラずつ行動を行い、
まずコモンイベント[196:X┃┣◆行動可能判定]を呼び出して行動可能かどうか、
アイテムの消費や技能のHP・SPの消費が問題なく出来たかどうかをチェック。
そしてコモンイベント[195:X┣◆1ターンの処理を実行]に行動可能かどうかを伝える。
            ▼
行動可能となったらコモンイベント[195:X┣◆1ターンの処理を実行]から
コモンイベント[197:X┃┗◆1行動ループ]を呼び出し、
そこからコモンイベント[164:X[戦]行動実行結果算出]を呼び出す。
            ▼
コモンイベント[164:X[戦]行動実行結果算出]からコモンイベント[165:X[戦]┗単体処理]を呼び出して、
回復やダメージの処理を行う。
コモンイベント[165:X[戦]┗単体処理]は、対象者1キャラずつしか処理できませんので、
味方全体に回復や敵全体に攻撃の場合は、味方の数だけ、敵の数だけ、
コモンイベント[164:X[戦]行動実行結果算出]からコモンイベント[165:X[戦]┗単体処理]を呼び出します。
コモンイベント[165:X[戦]┗単体処理]からコモンイベント[166:X[戦]  ┗カウンター判定]を呼び出して、
カウンター発動があるのかどうかを調べています。
カウンター発動がある場合はコモン[165]→[197]→[169]→[165]と呼び出して処理します。
            ▼
コモンイベント[197:X┃┗◆1行動ループ]に処理が戻り、2回攻撃など、多回数攻撃の場合は、
その回数の分だけコモンイベント[164:X[戦]行動実行結果算出]が呼び出される。
            ▼
1キャラの行動が終了するとコモンイベント[195:X┣◆1ターンの処理を実行]に処理が戻り、
次のキャラの行動を処理します。



イベントコマンド表示欄の所々に…
■回数付きループ [ 0 ]回
の設定がありますが、このループ内にある設定は、ウディタの旧バージョンにあった設定を残したものです。

現行のバーションで制作する場合には関係のない設定なので、そのまま無視してイベントコマンド表示欄をご覧ください。


▲トップへ戻る▲


  
■技能のダメージ処理について

技能のダメージ量の計算は以下のように行われます。

処理内容
370-384 ユーザーDB[0:技能]項目[10:┣ 攻撃力影響度[%]]項目[11:┣ 精神力影響度[%]]
両方足して「100%」になる割合を計算し、セルフ[55・56]に保存。
388-395 セルフ[41]ユーザーDB[0:技能]項目[9:┣ 基本効果量[固定値]]
セルフ[34]ユーザーDB[0:技能]項目[10:┣ 攻撃力影響度[%]]×攻撃力
セルフ[35]ユーザーDB[0:技能]項目[11:┣ 精神力影響度[%]]×精神攻撃力
399-413 セルフ[55・56]のパーセントを対象者の防御力と精神防御に掛けて、セルフ[34・35]から減算。
417-499 ユーザーDB[17:システム設定]項目[31〜32]にある倍率をセルフ[34・35]に設定。
クリティカルの発生の場合は、
ユーザーDB[17:システム設定]項目[33〜34]にある倍率もセルフ[34・35]に設定。
504-531 回復系の技能ではない時のみ、
対象者の状態異常によるダメージ量の増減をセルフ[34・35]に設定。
535-543 セルフ[34・35]セルフ[41]に合算し、
ユーザーDB[0:技能]項目[12:┗ ダメージ分散率± [%]]で乱数値をセルフ[41]に設定。
547-650 発動者の属性によるダメージ量の増減をセルフ[41]に設定。


▲トップへ戻る▲


  
■スロットに関して

このページにある「スロット」とは、可変DB[10:×┏ 戦闘一時ステータス[基]]データIDの事を言っています。

スロットの番号は、主人公の場合はパーティの並び順で一人目から「0、1、2…」と付けられ、
敵キャラの場合はユーザーDB[13:敵グループ]項目[0〜6]項目ID+10で「10、11、12…」と付けられます。

ユーザーDB[13:敵グループ]項目[0〜6](項目[3]に設定した敵キャラの場合はスロット[13]になる)


▼スロット(可変DB[10:×┏ 戦闘一時ステータス[基]]のデータID)


なお、
可変DB[11:×┣ 属性耐性計算結果]
可変DB[12:×┣ 状態耐性計算結果]
可変DB[13:×┣ 状態リスト]

の3つも可変DB[10:×┏ 戦闘一時ステータス[基]]と同じく「スロット=データID」で処理しています。


▲トップへ戻る▲


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

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

◆ダメージ量や回復量の計算処理(計算式)を変えたい。

◆HPとSPの両方を増減させる技能を設定したい。

◆命中率と回避率の関係性を変更したい。
【当たり判定を[命中率−回避率]から[命中率×(100−回避率)]に変える方法を見る】


▲トップへ戻る▲


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

コモンイベント[165:X[戦]┗単体処理][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「発動スロット」

行動を行うスロットを設定。
9以下 主人公のスロットID。(パーティの並び順)
10以上 敵キャラのスロットID。(敵グループの設定順)
▼数値2/コモンセルフ1「発動技能」

行動内容を設定。
0〜9999 特殊技能を実行。値はユーザーDB[0:技能]データID
10000〜19999 アイテムを使用。下4桁はユーザーDB[2:アイテム]データID
20000〜29999 武器をアイテムとして使用。下4桁はユーザーDB[3:武器]データID
30000〜39999 防具をアイテムとして使用。下4桁はユーザーDB[4:防具]データID
▼数値3/コモンセルフ2「対象スロット(単)」

攻撃や回復の対象とするスロットを設定。
▼数値4/コモンセルフ3「オプション」

今回の行動がカウンターによる反撃の場合は「1」を設定。
[0]通常処理 相手からカウンター攻撃があるかどうかを調べる
[1]カウンター抑制 今回の行動はカウンターによる攻撃処理なので、
相手からカウンター攻撃があるかどうかは調べない


▲トップへ戻る▲


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

コモンイベント[165:X[戦]┗単体処理]を呼び出しているコモンイベント、
またはコモンイベント[165:X[戦]┗単体処理]から呼び出しているコモンイベントの一覧です。

コモンイベント[165:X[戦]┗単体処理]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
164:X[戦]行動実行結果算出 攻撃や回復を実行した時に呼び出されます。
167:X[戦]カウンター実行結果算出 カウンター反撃を実行する時に呼び出されます。

コモンイベント[165:X[戦]┗単体処理]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
049:X[共]システムSE再生 ダメージ音や撃破音を演奏させる時に呼び出します。
060:X[共]ウェイト2(キー押しで加速) キー判定でウェイトの長さを変える処理を呼び出します。
067:X[共]全体エフェクト実行 クリティカル発動時に白フラッシュを表示する時に呼び出します。
135:X[戦]パラメータ増減 HPやSPを増減する時に呼び出します。
137:X[戦]状態付与/消去 状態を付与、または回復させる時に呼び出します。
139:X[戦]状態更新 攻撃を受けた時に呼び出され、
攻撃によって状態異常を回復させるかどうかを判断します。
148:X[戦]一時ステ計算<状態補正> 状態名の表示を更新する時に呼び出します。
166:X[戦]  ┗カウンター判定 カウンターを発動させるかどうかを確認する時に呼び出します。
168:X[戦]変身判定 敵キャラのダメージ後に変身判定を確認するために呼び出します。
171:X[戦]敵撃破処理 敵キャラを倒した時に呼び出します。
174:X[戦]味方欄_座標算出 指定した並び順にいる主人公のステータス画面の表示位置を取得。
175:X[戦]敵キャラ_座標算出 指定した並び順にいる敵キャラの表示位置を取得。
176:X[戦]基本状態取得 戦闘不能かどうかなど、指定したキャラの現在の状態を取得。
178:X[戦]味方欄_単体描画 指定した並び順にいる主人公のステータス画面の表示に関する処理を実行。
179:X[戦]敵キャラ_単体描画 指定した並び順にいる敵キャラの表示に関する処理を実行。
181:X[戦]ダメージ・回復ポップアップ ダメージ量や回復量、攻撃ミスやクリティカルの文字を表示。
182:X[戦]戦闘メッセージ表示 技能発動失敗やカウンター攻撃の発動時の文章の表示。
197:X┃┗◆1行動ループ] カウンターによる反撃処理を発動する時に呼び出します。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[165:X[戦]┗単体処理]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 発動スロット 攻撃や回復を実行する者をスロットで設定。
1 発動技能 行動内容を設定。
0〜9999 特殊技能を実行
値はユーザーDB[0:技能]データID
10000〜19999 アイテムを使用
下4桁はユーザーDB[2:アイテム]データID
20000〜29999 武器をアイテムとして使用
下4桁はユーザーDB[3:武器]データID
30000〜39999 防具をアイテムとして使用
下4桁はユーザーDB[4:防具]データID
2 対象スロット(単) 攻撃や回復の対象とするターゲットをスロットで設定。
3 オプション 今回の行動がカウンターによる反撃行動の場合は「1」を設定。
0 相手からカウンター攻撃があるかどうかを調べる
1 今回の行動はカウンターによる攻撃処理なので、
相手からカウンター攻撃があるかどうかは調べない
8 キャラ名 主人公や敵キャラの名前を取得する時に使用。
9 一時文字列 技能発動失敗やカウンター発生時の文字列の設定に使い、
コモンイベント[182:X[戦]戦闘メッセージ表示]を呼び出す時に使用。
10 一時変数A ユーザーDB[0:技能]項目の設定値の取得や、
ユーザーDB[2:アイテム][3:武器][4:防具]データIDの設定、
計算処理やX表示位置の設定など、一時的な値の保存で使用。
11 一時変数B ユーザーDB[0:技能]項目の設定値の取得や、
計算処理やY表示位置の設定など、一時的な値の保存で使用。
12 一時変数C ユーザーDB[8:状態設定]項目の設定値の取得や計算処理など、
一時的な値の保存で使用。
13 一時変数D 計算処理など、一時的な値の保存で使用。
14 一時変数E 計算処理など、一時的な値の保存で使用。
15 回復(1)?ダメージ(-1)? HPやSPが増えるのか、減るのか、変わらないのかを設定。
1 増える
-1 減る
0 増減なし
18 対象の座標X 可変DB[18:基本システム用変数]データ[37:ステータス欄表示先 座標X]を取得し、
回復量やダメージ量のX表示位置の設定で使用。
19 対象の座標Y 可変DB[18:基本システム用変数]データ[38:ステータス欄表示先 座標Y]を取得し、
回復量やダメージ量のY表示位置の設定で使用。
20 自攻撃力 発動者の攻撃力を取得。
21 自精神攻撃力 発動者の精神攻撃力を取得。
22 発動側属性1 技能の属性(ユーザーDB[7:属性名の設定]データID)を取得。
23 発動側属性2 武器の属性1(ユーザーDB[7:属性名の設定]データID)を取得。
24 発動側属性3 武器の属性2(ユーザーDB[7:属性名の設定]データID)を取得。
25 技能の防御有効率[%] ユーザーDB[0:技能]項目[34:相手の防御・精神防御を]を取得。
26 アイテムコード ユーザーDB[2:アイテム]データIDの設定。
27 回復量% ユーザーDB[2:アイテム]項目[10:HP回復 [最大の?%]]を取得。
28 回復量+ ユーザーDB[2:アイテム]項目[11:┗+HP回復 [ポイント]]を取得。
29 回復系技能? 回復系の技能の場合は「1」を設定。
30 対象防御力 対象者の防御力を取得。
31 対象精神防御 対象者の精神防御力を取得。
32 攻撃ダメージ率 可変DB[10:×┏ 戦闘一時ステータス[基]]
項目[56:【受ける攻撃力ダメージ率】]を取得。
33 精神力ダメージ率 可変DB[10:×┏ 戦闘一時ステータス[基]]
項目[57:【受ける精神攻ダメージ率】]を取得。
34 攻撃力ダメージ 攻撃力のダメージ計算で使用。
35 精神攻撃ダメージ 精神攻撃力のダメージ計算で使用。
36 攻撃力ダメ減少 対象者の防御力によるダメージ量の減少を設定。
37 精神攻撃ダメ減少 対象者の精神防御力によるダメージ量の減少を設定。
38 属性効果(加算結果) 属性による効果量の増減パーセントを設定。
40 成功率 技能実行の成功率の計算で使用。
41 効力総計 ダメージ量や回復量を設定。
42 HPかSPへの効果 技能実行でHPやSPに増減がある場合は「1」を設定。
43 相手の最大HP 対象者の最大HPを取得。
44 カウンターが発動した状態 コモンイベント[166:X[戦]  ┗カウンター判定]にて、
対象者のカウンターを行う状態異常であるかを調べて、
もしもカウンターを行う状態異常になっている場合は、
その状態のID(ユーザーDB[8:状態設定]データID)を設定。
45 相手の最大SP 対象者の最大SPを取得。
47 付与状態1 ユーザーDB[0:技能]項目[22:付加するステータス状態1]にある
対象者に付加する状態のID(ユーザーDB[8:状態設定]データID)を取得。
48 付与状態2 ユーザーDB[0:技能]項目[23:付加するステータス状態2]にある
対象者に付加する状態のID(ユーザーDB[8:状態設定]データID)を取得。
49 付与状態3 ユーザーDB[0:技能]項目[24:付加するステータス状態3]にある
対象者に付加する状態のID(ユーザーDB[8:状態設定]データID)を取得。
50 付与状態4 ユーザーDB[0:技能]項目[25:付加するステータス状態4]にある
対象者に付加する状態のID(ユーザーDB[8:状態設定]データID)を取得。
55 物理度合い[0-100%] ユーザーDB[0:技能]項目[10:┣ 攻撃力影響度[%]]を取得。
56 精神度合い[0-100%] ユーザーDB[0:技能]項目[11:┣ 精神力影響度[%]]を取得。
57 一時倍率計算 物理攻撃と精神攻撃のダメージ配分を計算する時に使用。
58 直前戦闘不能フラグ 対象者がこのコモンの処理開始時に戦闘不能だった場合は「1」を設定。
59 戦闘不能フラグ 対象者にダメージを与えて戦闘不能になったら「1」を設定。
60 消去状態1 アイテムや技能を受けて
回復する状態のID(ユーザーDB[8:状態設定]データID)を取得。
61 消去状態2 アイテムや技能を受けて
回復する状態のID(ユーザーDB[8:状態設定]データID)を取得。
62 消去状態3 アイテムや技能を受けて
回復する状態のID(ユーザーDB[8:状態設定]データID)を取得。
63 消去状態4 未使用。
65 反動用 実効果量 対象者への効果量を反動・吸収用に保存。
※反動とは、例えば反動率「50%」の場合で、
 対象者にダメージ「30」を与えた場合は、発動者はダメージ「15」を受けます。

※吸収とは、例えば吸収率「50%」の場合で、
 対象者にダメージ「30」を与えた場合は、発動者は「15」の回復になります。
66 反動用 HP(0)/SP(1)? ユーザーDB[0:技能]項目[8:┏ 何に影響する?]を取得。
0 HPの増減
1 SPの増減
67 反動% ユーザーDB[0:技能]項目[35:与えた効果を自分に返す?]を取得。
反動の場合は「10〜100」、吸収の場合は「-10〜-100」。
68 反動直前戦闘不能 反動・吸収でHPの増減を実行する前に、
発動者が戦闘不能になっていないかどうかをチェック。(1=戦闘不能)
70 カウンター用ダメージ記憶 対象者に対して、HPかSPの増減があった場合はその効果量を設定し、
「1以上」の場合はカウンターの発動有無を判断する処理を実行。
71 一時属性計算値 攻撃に付加した属性に対して、
対象者が持つ属性耐性を可変DB[11:×┣ 属性耐性計算結果]から取得。
72 弱点効果%(+値) 攻撃属性に対する属性耐性の弱さを設定。
設定値はプラス値であり、プラスが大きいほどダメージ量が大きくなる。
73 耐性効果%(-値) 攻撃属性に対する属性耐性の強さを設定。
設定値はマイナス値であり、マイナスが大きいほどダメージ量が小さくなる。
80 通常ダメージ倍率 ユーザーDB[17:システム設定]項目[31:[戦闘]通常ダメージ値]を取得。
81 通常防御倍率 ユーザーDB[17:システム設定]項目[32:[戦闘]通常防御有効度]を取得。
82 クリ時倍率 ユーザーDB[17:システム設定]項目[33:[戦闘]クリティカル倍率]を取得。
83 クリ時防御倍率 ユーザーDB[17:システム設定]項目[34:[戦闘]クリティカル防御有効度]を取得。
84 クリティカルフラグ クリティカルが発動する場合は「1」を設定。

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


▲トップへ戻る▲


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

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

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

処理内容
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行動ループ]を呼び出し、そして反撃処理を実行します。


▲トップへ戻る▲



◎関連ページ

◆戦闘処理の当たり判定(命中率・回避率)について
◆【戦闘時】当たり判定を[命中率−回避率]から[命中率×(100−回避率)]に変える

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

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