記事No | : 21573 [関連記事] |
タイトル | : Re: 魔法の威力をアイテムなどで一時的に変えたい |
投稿日 | : 2023/12/16 09:00 |
投稿者 | : YADO [LerLWW459] |
細かい仕様が分からないので、ざっくりとした説明しかできませんが、例えばイベント発生時やアイテム使用時に
■変数操作: V1[技能効力アップ] = 1 + 0
を実行して、通常変数[1]が「1」の時には、主人公の行動時の基本効果量が[+10」になるようにする場合は、
コモンイベント[165:X[戦]┗単体処理]の388-389行目にある
▼ 【2.3】 攻撃力の計算
■DB読込(ユーザ): CSelf41[効力総計] = ユーザDB[ 技能 : CSelf1[発動技能] : ┣ 基本効果量[固定値] ] (0 : - : 9)
の部分を
▼ 【2.3】 攻撃力の計算
■DB読込(ユーザ): CSelf41[効力総計] = ユーザDB[ 技能 : CSelf1[発動技能] : ┣ 基本効果量[固定値] ] (0 : - : 9)
■条件分岐(変数): 【1】 CSelf0[発動スロット] が 9 以下
-◇分岐: 【1】 [ CSelf0[発動スロット] が 9 以下 ]の場合↓
|■条件分岐(変数): 【1】 V1[技能効力アップ] が 1 と同じ
|-◇分岐: 【1】 [ V1[技能効力アップ] が 1 と同じ ]の場合↓
| |■変数操作: CSelf41[効力総計] += 10 + 0
| |■
|◇分岐終了◇
|■
◇分岐終了◇
と設定すると、通常変数[1]が「1」になった時に、基本効果量が「+10」になります。
(テスト時は「+100」くらいにした方が分かりやすいかも)
上記の場合は、通常攻撃や強斬りなどの物理攻撃にも適用されますが、
以下のように精神力影響度が「1以上」の時のみに適用させると、物理攻撃では増加しなくなります。
▼ 【2.3】 攻撃力の計算
■DB読込(ユーザ): CSelf41[効力総計] = ユーザDB[ 技能 : CSelf1[発動技能] : ┣ 基本効果量[固定値] ] (0 : - : 9)
▼ 攻撃力影響度
■DB読込(ユーザ): CSelf34[攻撃力ダメージ] = ユーザDB[ 技能 : CSelf1[発動技能] : ┣ 攻撃力影響度[%] ] (0 : - : 10)
■変数操作: [実] CSelf34[攻撃力ダメージ] *= CSelf20[自攻撃力] / 100
▼ 精神力影響度
■DB読込(ユーザ): CSelf35[精神攻撃ダメージ] = ユーザDB[ 技能 : CSelf1[発動技能] : ┣ 精神力影響度[%] ] (0 : - : 11)
■条件分岐(変数): 【1】 CSelf0[発動スロット] が 9 以下
-◇分岐: 【1】 [ CSelf0[発動スロット] が 9 以下 ]の場合↓
|■条件分岐(変数): 【1】 V1[技能効力アップ] が 1 と同じ
|-◇分岐: 【1】 [ V1[技能効力アップ] が 1 と同じ ]の場合↓
| |■条件分岐(変数): 【1】 CSelf35[精神攻撃ダメージ] が 1 以上
| |-◇分岐: 【1】 [ CSelf35[精神攻撃ダメージ] が 1 以上 ]の場合↓
| | |■変数操作: CSelf35[精神攻撃ダメージ] += 10 + 0
| | |■変数操作: CSelf41[効力総計] += 10 + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: [実] CSelf35[精神攻撃ダメージ] *= CSelf21[自精神攻撃力] / 100
※374行目にも精神力影響度を代入する設定があるので、その下の375行目に上記のような精神力影響度の値を増やす追加設定が必要です。
増加量を技能ごとに細かく設定したい場合は、
現在設定しているように同じ技能を2つ用意するか、増加値を設定する技能の項目を増やすか、いずれかになりそう。
同じ技能を2つ用意する方法も、例えばユーザーDB[0:技能]のデータ[0-99]をコピーして、
データ[100-199]に貼り付けて、データ[100-199]の方の値を増加。
そしてコモンイベント[165:X[戦]┗単体処理]の298行目の
▼ 【2−】命中しててもしてなくてもカウンターチェック
がある位置に
■条件分岐(変数): 【1】 CSelf0[発動スロット] が 9 以下
-◇分岐: 【1】 [ CSelf0[発動スロット] が 9 以下 ]の場合↓
|■条件分岐(変数): 【1】 V1[技能効力アップ] が 1 と同じ
|-◇分岐: 【1】 [ V1[技能効力アップ] が 1 と同じ ]の場合↓
| |■変数操作: CSelf1[発動技能] += 100 + 0
| |■
|◇分岐終了◇
|■
◇分岐終了◇
を追加すれば、通常変数[1]が「1」の時には自動的に技能のデータIDが「+100」になるので、主人公が習得している技能を入れ替える処理が無くても、
通常の技能(データID[0-99])を選択するだけで、自動的に強化された技能(データID[100-199])が使用されます。
ちなみにユーザーDBの値は
■変数操作: CSelf10[一時変数A] = 1000000009 + 0
■変数操作: V[CSelf10[一時変数A]] += 10 + 0
と言ったように「変数呼び出し値」と「X番の変数呼出」の組み合わせで一応値は変えられますが、
「値を増加した後に、元の値に戻す処理が必要になる」
「+10が二重に実行しないように注意する」
「全ての技能を増加させると、敵キャラの技能まで増加してしまう」
「主人公と敵キャラの両方で同じ技能が使える場合は、主人公用と敵キャラ用の2つを用意する必要がある」
「値を変えてセーブすると、ロード時に元の値に戻る(セーブができない戦闘中のみの値の変更ならこの仕様は無視できる)」
などの問題があります。