WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[148:X[戦]一時ステ計算<状態補正>]の解説
(更新:2023/04/24)


コモンイベント[148:X[戦]一時ステ計算<状態補正>]について解説します。


ショートカット
■コモンイベント[148:X[戦]一時ステ計算<状態補正>]って何?
■可変DB[10:×┏ 戦闘一時ステータス[基]]の補足説明
■スロットに関して
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

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

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


  
■コモンイベント[148:X[戦]一時ステ計算<状態補正>]って何?

コモンイベント[148:X[戦]一時ステ計算<状態補正>]は、
装備品の設定値を可変DB[10:×┏ 戦闘一時ステータス[基]]に追加する時に使います。



可変DB[10:×┏ 戦闘一時ステータス[基]]の設定は…
コモンイベント[146:X[戦]一時ステ計算<初期化>]
          
コモンイベント[147:X[戦]一時ステ計算<装備補正>]
          
コモンイベント[148:X[戦]一時ステ計算<状態補正>]
と言った流れで、3つのコモンイベントを順番に処理する事で、
可変DB[10:×┏ 戦闘一時ステータス[基]]の設定が完了します。



ステータス画面の状態表示を更新する時には、コモンイベント[146〜147]を呼び出さず、
コモンイベント[148:X[戦]一時ステ計算<状態補正>]のみ単体で呼び出す場合があります。

▼矢印の文字列をこのコモンイベント[148:X[戦]一時ステ計算<状態補正>]で作成しています。
 なお、実際にゲーム画面の表示を更新する処理はコモンイベント[178:X[戦]味方欄_単体描画]で行います。




▲トップへ戻る▲


  
■可変DB[10:×┏ 戦闘一時ステータス[基]]の補足説明

可変DB[10:×┏ 戦闘一時ステータス[基]]には、戦闘中に使用するパラメータが保存されています。

主人公のデータは可変DB[0:主人公ステータス]からコピーし、
敵キャラのデータはユーザーDB[9:敵キャラ個体データ]からコピーしたものを使います。

データをコピーする事で、例えば戦闘中に一時的に主人公の最大HPを変更しても、
データ元の可変DB[0:主人公ステータス]はそのままなので、
戦闘が終了したあとに元の最大HPに戻すような手間が必要ありません。

また同じ敵キャラが複数いる場合も、
敵キャラごとに可変DB[10:×┏ 戦闘一時ステータス[基]]データIDが異なるので、
敵キャラごとにHPや攻撃力などが保存されます。



可変DB[10:×┏ 戦闘一時ステータス[基]]には、
項目[9:基本攻撃力]項目[48:[一時]計算済み攻撃力]と言ったように、同じような設定項目が2つずつあります。

項目[9:基本攻撃力]などと「[一時]」が付いていないものは、
可変DB[0:主人公ステータス]にあったデータであり、何も装備していない状態の攻撃力になります。

項目[48:[一時]計算済み攻撃力]などと「[一時]」が付いているものは、
装備品や状態異常による能力値の変動を計算したあとの値が設定されており、
戦闘中ではこの「[一時]」が付いているものを使用します。


▲トップへ戻る▲


  
■スロットに関して

このページにある「スロット」とは、可変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:×┏ 戦闘一時ステータス[基]]と同じくスロットで処理しています。


▲トップへ戻る▲


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

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

◆可変DB[10:×┏ 戦闘一時ステータス[基]]に新たな項目を増やしたい。

◆ユーザーDB[8:状態設定]の改造に合わせて、
 可変DB[10:×┏ 戦闘一時ステータス[基]]の設定を変えたい。


◆ステータス画面に表示する時の「眠/毒」の仕切りの「/」を変えたい。

◆状態異常で変わる顔グラフィックを主人公ごとに設定したい。

◆複数の状態異常が付与していて、複数の「狙われ度」の設定がある場合、
 特定の優先順位で「狙われ度」を設定したい。


▲トップへ戻る▲


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

コモンイベント[148:X[戦]一時ステ計算<状態補正>][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「対象戦闘スロット」

可変DB[10:×┏ 戦闘一時ステータス[基]]のスロットを設定。
▼数値2/コモンセルフ1「オプション」

処理方法を設定。
[0]パラメータ補正+状態名計算 コモンイベント[146〜147]の続きで処理している場合、
可変DB[10:×┏ 戦闘一時ステータス[基]]に状態の設定値を追加。
[1]状態名のみ計算 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態の設定値を追加しないで、
ステータスに表示する「眠/毒」などの文字列のみを設定。


▲トップへ戻る▲


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

コモンイベント[148:X[戦]一時ステ計算<状態補正>]を呼び出しているコモンイベントの一覧です。
なお、コモンイベント[148:X[戦]一時ステ計算<状態補正>]から呼び出しているコモンイベントの一覧はありません。

コモンイベント[148:X[戦]一時ステ計算<状態補正>]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
004:○回復・ダメージ処理 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
005:○メンバーの増減 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
009:○状態異常変化 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
031:◆[戦闘用]ダメージ処理 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時や、
ステータスの状態異常の表示文字列の更新など、
状態異常に関する準備処理を行う時に呼び出されます。
139:X[戦]状態更新 ステータスの状態異常の表示文字列の更新など、
状態異常に関する準備処理を行う時に呼び出されます。
142:X[戦]指定主人公更新処理 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
144:X[戦]敵DB→戦闘DBコピー 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
164:X[戦]行動実行結果算出 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
165:X[戦]┗単体処理 ステータスの状態異常の表示文字列の更新など、
状態異常に関する準備処理を行う時に呼び出されます。
167:X[戦]カウンター実行結果算出 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時や、
ステータスの状態異常の表示文字列の更新など、
状態異常に関する準備処理を行う時に呼び出されます。
168:X[戦]変身判定 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
188:X◆戦闘処理 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。
190:X┣◆戦闘キャラ配置 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態異常の値を追加する時に
呼び出されます。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[148:X[戦]一時ステ計算<状態補正>]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 対象戦闘スロット 可変DB[10:×┏ 戦闘一時ステータス[基]]データIDを設定。
1 オプション 可変DB[10:×┏ 戦闘一時ステータス[基]]に設定する武器を設定。
0 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態の設定値を追加。
1 可変DB[10:×┏ 戦闘一時ステータス[基]]に状態の設定値を追加
しないで、ステータスに表示する「眠/毒」などの文字列のみを設定。
7 上書き顔グラ ユーザーDB[8:状態設定]項目[45:状態時の顔グラフィック]を設定し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[2:一時上書き画像ファイル]へ設定。
8 一時文字列 データベースの文字列を取得する時に使用。
9 状態名一覧 ステータスに表示する「眠/毒」などの文字列を設定。
15 残りターン 可変DB[13:×┣ 状態リスト]にある状態異常が自然治癒する残りターン数を取得。
16 注目状態位置 可変DB[13:×┣ 状態リスト]項目IDの設定や、
ユーザーDB[8:状態設定]データIDの設定に使用。
17 状態最大数 ユーザーDB[8:状態設定]データ数を取得。
22 表示するか否か ユーザーDB[8:状態設定]項目[1:状態の表示方法]を取得。
0 何も表示しません
1 項目[2]の文字を表示
2 ポップアップのみを表示
3 項目[2]とポップアップを表示
このコモンイベント[148:X[戦]一時ステ計算<状態補正>]の処理では、
ポップアップの設定は使用しません。
23 状態個数 状態の表示の数をカウント。
状態の表示は横一列で4個までなので、5個目が追加されると2行表示。
9個目が追加されると3行表示になります。
24 ステ状態表示方法 ユーザーDB[17:システム設定]項目[19:ステータス状態の表示方法]を取得。
0 ▼区切り無し
1 ▼区切りあり
30 行動制限番号 プレイヤーによる行動決定ができない状態で、
さらに暴走の状態(勝手に敵や味方に攻撃してしまう状態)になっている場合は、
最初に検索した状態のユーザーDB[8:状態設定]項目[16:行動制限]の値をセルフ[30]に設定。
32 色変更 ユーザーDB[8:状態設定]項目[3:状態時の色変化:味方のみ]を取得。
複数の状態異常である場合は、
状態ID(ユーザーDB[8:状態設定]データID)の小さいIDの色になります。
▼[-1]半透明
▼[0]変化なし
▼[1]赤
▼[2]青
▼[3]緑
▼[4]オレンジ
33 狙われ度 ユーザーDB[8:状態設定]項目[38:敵からの狙われ度]を取得。
「0」以外の設定の状態異常が複数付与されている場合は、
ユーザーDB[8:状態設定]データID大きいIDの値が優先されます。
35 戦闘不能カウントする? ユーザーDB[8:状態設定]項目[15:戦闘不能として・・・]を取得。
0 この状態異常になっても、戦闘不能としてカウントしない
1 この状態異常になると、戦闘不能としてカウントする
2 この状態異常になると、即HP[0]で戦闘不能になる
戦闘不能の場合は「1」になりますが、それ以外に「石化」のようなアイテムや特殊技能を
使わないと永久に回復しない状態異常になった場合も「1」になります。
42 最大HP 最大HPに状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[44:[一時]計算済みMaxHP]に設定。
43 最大SP 最大SPに状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[46:[一時]計算済みMaxSP]に設定。
44 攻撃力 攻撃力に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[48:[一時]計算済み攻撃力]に設定。
45 防御力 防御力に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[49:[一時]計算済み防御力]に設定。
46 精神攻撃 精神攻撃に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[50:[一時]計算済み精神攻撃]に設定。
47 精神防御 精神防御に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[51:[一時]計算済み精神防御]に設定。
48 敏捷性 敏捷性に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[52:[一時]計算済み敏捷性]に設定。
49 命中率 命中率に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[53:[一時]計算済み命中率]に設定。
50 回避率 回避率に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[54:[一時]計算済み回避率]に設定。
51 クリティカル クリティカル率に状態異常による設定値の変動を処理し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[55:[一時]計算済みクリティカル率]に設定。
53 HP自動回復率% ユーザーDB[8:状態設定]項目[22:HP増減±[%]/1ターン終]を加算し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[62:HPターン増減[%]]に設定。
54 HP自動回復固定値 ユーザーDB[8:状態設定]項目[23:HP増減±[固定]/1ターン終]を加算し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[63:HPターン増減[固定値]]に設定。
55 SP自動回復率% ユーザーDB[8:状態設定]項目[24:SP増減±[%]/1ターン終]を加算し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[64:SPターン増減[%]]に設定。
56 SP自動回復固定値 ユーザーDB[8:状態設定]項目[25:SP増減±[固定値]/1ターン終]を加算し、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[65:SPターン増減[固定値]]に設定。
57 受ける攻撃力ダメージ率 初期値「100」に対して、
ユーザーDB[8:状態設定]項目[20:受ける攻撃力ダメージ率]を乗算→「除算100」を設定し、
最終的に可変DB[10:×┏ 戦闘一時ステータス[基]]項目[56:【受ける攻撃力ダメージ率】]に設定。
58 受ける精神攻撃ダメージ率 初期値「100」に対して、
ユーザーDB[8:状態設定]項目[21:受ける精神攻撃ダメージ率]を乗算→「除算100」を設定し、
最終的に可変DB[10:×┏ 戦闘一時ステータス[基]]項目[57:【受ける精神攻ダメージ率】]に設定。

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


▲トップへ戻る▲


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

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

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

処理内容
7-12 ■条件分岐(変数): 【1】 CSelf0[対象戦闘スロット] が -1 以下
セルフ[0]が「1以下」になる事は通常ありませんが、
改造の失敗などによる万が一のため、一応設定している感じです。
13-38 ▼ 元の値を読み込む
可変DB[10:×┏ 戦闘一時ステータス[基]]の設定値をセルフ変数へ代入し、
その他のセルフ変数の初期値を設定。
39-163 ■回数付きループ [ CSelf17[状態最大数] ]回
状態の数だけループします。
  40-161 セルフ[16]を「加算1」にして、
可変DB[13:×┣ 状態リスト]にある次の状態異常の回復ターン数をセルフ[17]に代入。
そして「0以外=状態異常中」の場合は分岐。
    44-62 ■条件分岐(変数): 【1】 CSelf1[オプション] が 0 と同じ
コモンイベント[146〜147]の続きで処理している場合は分岐し、
ユーザーDB[8:状態設定]にある設定値をセルフ[44〜58]に設定。
    63-66 ▼ 最大HP・SP補正
ユーザーDB[8:状態設定]項目[26:MaxHP変化率[%]]項目[27:MaxSP変化率[%]]を、
セルフ[42〜43]に設定し、状態異常による最大HPと最大SPに変動を付ける。
    67-71 ▼ 自然回復量
ターン終了のHP・SPの増減を設定。
ユーザーDB[8:状態設定]データ[2:毒]のように、
設定値がマイナス値の場合は、ターン終了時にHP・SPが減少します。
    72-86 ▼ 行動制限
ユーザーDB[8:状態設定]項目[16:行動制限]の設定により、
プレイヤーによる行動決定できない状態になっている場合は分岐。
      76-84 ▼ 「行動不能」以外なら上書き
暴走状態(勝手に敵か味方に攻撃してしまう)の場合で、
状態異常のループ処理で最初に見つけた暴走状態の状態IDをセルフ[30]に設定。
    88-93 ユーザーDB[8:状態設定]項目[45:状態時の顔グラフィック]に状態異常になった時の
顔グラフィックのファイルアドレスがある場合で、
まだセルフ[7]にファイルアドレスが保存されていない場合は分岐し、セルフ[7]に保存。
    94-103 ▼ 技能制限
ユーザーDB[8:状態設定]項目[17:特殊技能制限]に技能制限(封印)がある場合は、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[60:【特殊技能制限】]に設定して条件分岐を分岐し、
ユーザーDB[8:状態設定]項目[13:行動制限時文章(空欄:ナシ]の文字列を
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[68:技能封印時のメッセージ]に設定。
    105 全ての状態異常中のユーザーDB[8:状態設定]項目[15:戦闘不能として・・・]セルフ[35]に設定。
セルフ[35]の値を「下限」で設定する事で、
状態異常になっている中でどれか1つでも「項目[15]=1」の場合はセルフ[35]が「1」になり、
どれか1つでも「項目[15]=2」の場合はセルフ[35]が「2」になります。
    107-108 全ての状態異常中のユーザーDB[8:状態設定]項目[40:カウンター有?[技能選択]]の設定を、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[61:【カウンター系状態有り】]に設定。
複数のカウンターの状態異常になっている場合は、技能IDが最も大きいIDが設定されます。
    110-112 全ての状態異常中のユーザーDB[8:状態設定]項目[20:受ける攻撃力ダメージ率]の設定を、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[56:【受ける攻撃力ダメージ率】]に設定。
    114-116 全ての状態異常中のユーザーDB[8:状態設定]項目[21:受ける精神攻ダメージ率]の設定を、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[57:【受ける精神攻ダメージ率】]に設定。
    118-123 全ての状態異常中のユーザーDB[8:状態設定]項目[38:敵からの狙われ度]の設定がある場合は、
セルフ[33]に設定。
    124-131 ▼ 色変更を計算
最初の状態異常のウィンドウ色をセルフ[32]に設定。
    132-159 ▼ 表示されるステータス状態一覧を計算
▼ もしステータスに表示される状態異常なら、状態名一覧に追加
ユーザーDB[8:状態設定]項目[1:状態の表示方法]の設定が「1」か「3」の場合は分岐し、
ステータス画面に表示する状態の文字をセルフ[9]に設定し、セルフ[23]を「加算1」にする。
セルフ[23]が「4以上」になると「余剰4」で「0」になり、セルフ[9]に改行が設定されます。
165-177 ■条件分岐(変数): 【1】 CSelf1[オプション] が 0 と同じ
コモンイベント[146〜147]の続きで処理している場合は分岐し、
セルフ[44〜51]可変DB[10:×┏ 戦闘一時ステータス[基]]に設定。
178-190 コモンイベント[146〜147]の続きで処理している場合は分岐し、
様々なセルフ変数可変DB[10:×┏ 戦闘一時ステータス[基]]に設定。
191-203 ▼ もし戦闘不能なら、基本ステータス側も純粋に1にする
戦闘不能状態、または「セルフ[35]=1以上」で戦闘不能と同等の状態になっている場合は、
可変DB[10:×┏ 戦闘一時ステータス[基]]項目[3:【戦闘不能?】]に「1」を設定。
204-210 ▼ 上書き顔グラを格納
様々なセルフ変数可変DB[10:×┏ 戦闘一時ステータス[基]]に設定。
211-212 オプションを0に戻しておく
他のコモンイベントからこのコモンイベントを呼び出す【イベントの挿入】の設定の中には…
■イベントの挿入[名]: ["X[戦]一時ステ計算<状態補正>"] <コモンEv 148> / CSelf23[次対象]
などと言ったようにセルフ[1]の値を設定するものが無い設定があるため、ここで初期化しておく。


▲トップへ戻る▲



◎関連ページ

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

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