YADOさん、またご丁寧にお答えくださりありがとうございました!
主人公の方を弄ることばかり考えていましたが、
敵側の方を変更するという方法もあると知り、目からうろこです…!!
それ以外にも、「魔法攻撃強くしたい」という私のおおざっぱな要望に対して、
いろんなやり方をひとつづつ丁寧に教えて下さり、本当にありがとうございます。
私自身の知識不足が故に、完全に理解することは手出来ませんでしたが
教えていただいたものを試してみた結果、
ユーザーDBの値を弄る
■変数操作: CSelf10[一時変数A] = 1000000009 + 0
こちらの方法が、一番自分が意図するものに近く出来ました。
使う際の問題点についても上げてくださっていたので、
そこを上手くかわしつつ、理想の形に調整しようと思っています。
他にも教えていただいたものは、別の物にも使えそう…!と、色んなアイディアが出てきたので、ウディタを勉強しつつ試してみます!
いつも的確なアドバイスや、丁寧な解説をありがとうございます!
ゲーム完成を目指して、頑張ります!
「炎攻撃」などの属性単位でダメージ量を変化させる場合は、戦闘開始時に敵の属性耐性の値を増やせば可能です。
(100%→200%と2倍にするとダメージ量が2倍になる)
この場合、コモンイベント[203:○[変更可]戦闘開始時処理]に
■条件分岐(変数): 【1】 V1[技能アップ属性ID] が 1 以上
-◇分岐: 【1】 [ V1[技能アップ属性ID] が 1 以上 ]の場合↓
|■変数操作: CSelf10 = 9 + 0
|■回数付きループ [ 7 ]回
| |■変数操作: CSelf10 += 1 + 0
| |■可変DB書込:DB[ 11 : CSelf10 : V1[技能アップ属性ID] ] (×┣ 属性耐性計算結果 : - : -) *= 2
| |■
|◇ループここまで◇◇
|■
◇分岐終了◇
WoditorEvCOMMAND_START
[111][4,0]<0>(1,2000001,1,1)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600010,9,0,0)()
[179][1,0]<1>(7)()
[121][4,0]<2>(1600010,1,0,256)()
[250][5,4]<2>(11,1600010,2000001,48,2)("","","","")
[0][0,0]<2>()()
[498][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END
のような設定は必要ですが、コモンイベント165の改造などは不要となり、技能の設定もそのままで処理できます。
※戦闘の途中で敵キャラが追加参戦してきた場合は、追加参戦分のみの属性耐性の増加処理が必要です。
通常変数[1:技能アップ属性ID]には、
0=変化なし
1=炎攻撃
2=冷気攻撃
と言った感じに、ユーザーDB[7:属性名の設定]のデータIDを設定。
YADOさん、ご丁寧にありがとうございます!!
拝見させていただいたところ、
・増加量を技能ごとに細かく設定したい場合
・ユーザーDBの値を弄る
このふたつを試してみようかと思います。
説明不足で申し訳ありませんでしたが、例えば……
教会で炎の加護を受ける
↓
炎属性の魔法だけ威力があがる(他の魔法は威力変わらず)
↓
宿屋で寝ると加護がリセットされる
のように、すべての魔法威力が上がるわけではなく
主人公の強さそのままに、決まった魔法だけ強くできたらと思っております。
それで行くと、教えていただいた「増加量を技能ごとに細かく設定したい場合」が当てはまると思うので、こちらでいろいろと試してみようと思います!
無事に導入できましたら、またご報告に参ります。
ご回答ありがとうございました!
細かい仕様が分からないので、ざっくりとした説明しかできませんが、例えばイベント発生時やアイテム使用時に
■変数操作: 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つを用意する必要がある」
「値を変えてセーブすると、ロード時に元の値に戻る(セーブができない戦闘中のみの値の変更ならこの仕様は無視できる)」
などの問題があります。
下記のサイト「GameCenter GX」 に
ドラクエ6の会心の一撃が与えるダメージについて記載されています。
(無断転載禁止のため リンクのみ記載します)
hhttps://gcgx.games/dq6/damage.html
トップページ(hhttps://gcgx.games/)
ウディタの設定は
・クリティカル倍率→[100]ダメージ変化なし
・クリティカル防御有効度→[0]防御力無視
にするのがいいと思います。
ウディタのダメージ量は
コモンEv165 X[戦]┗単体処理 の計算式で確認できます (たぶん頑張れば…)。
クリティカル時の補正はこのコモンの 【2.5】 【2.6】 【2.8】 あたりで計算しているようです。
クリティカル率はクリティカル発生頻度に影響しますが、ダメージ倍率に影響しないようなので
武器, 防具, 状態異常のクリティカル率[%]増減 は気にしなくてよさそうです。
(最初 "ドラクエ6にしたい"と言われても 誰か市販ゲームのクリティカル倍率知ってるの?と思いました。…知ってる人いるんですね。)
このあたりです。
味方逃走
コモンEv188 X◆戦闘処理
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 逃走処理の判定
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|●ラベル地点「逃走処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
|▼ 確率判定
|■DB読込(ユーザ): CSelf22[逃走可能確率] = ユーザDB[ 敵グループ : CSelf0[敵グループ番号] : 逃走成功率[%] ] (13 : - : 11)
|■変数操作: CSelf22[逃走可能確率] -= 0 〜 99
|■条件分岐(変数): 【1】 CSelf22[逃走可能確率] が 1 以上
|-◇分岐: 【1】 [ CSelf22[逃走可能確率] が 1 以上 ]の場合↓
| |
| | (194行目あたり 味方逃走成功時処理 この分岐の中にSE再生コマンドを追加)
| |
| |
| |●ラベル「戦闘終了処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇上記以外
| |▼ 逃走失敗時
| |
| |
| |●ラベル「逃走戻り」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇
敵逃走
コモンEv197 X┃┗◆1行動ループ
■条件分岐(変数): 【1】 CSelf17[技能コード] が 0 以上
-◇分岐: 【1】 [ CSelf17[技能コード] が 0 以上 ]の場合↓
|
| (敵技能コマンド(= 0以上) 使用時処理)
|
-◇上記以外
|■条件分岐(変数): 【1】 CSelf17[技能コード] が -2 と同じ
|-◇分岐: 【1】 [ CSelf17[技能コード] が -2 と同じ ]の場合↓
| |▼ 逃走
| |
| | (57行目あたり 敵逃走コマンド(=-2) 使用時処理 この分岐の中にSE再生コマンドを追加)
| |
| |■イベント処理中断
| |■
|◇分岐終了◇
|▼ 逃走でもなければ終了
|
|■
◇分岐終了◇