【ウディタ】戦闘で取得する経験値や金額を増加させる装備

私よ。レビニアよ。今回は「身につけていると取得経験値やお金が割合増加する装備」を作るわ(「割合増加」というところがポイントね)。

経験値が2倍になるアクセサリとか、たまにRPGでみかけるわよね。あれをウディタの基本システムでやってみるのよ。

装備の作成と経験値&金額の割合を指定している箇所について

まずは効果を発揮する装備を用意しましょう。例として装飾品で作成するけど、お好みで武器や防具にしてもいいわよ。


ユーザーDB4番「防具」の空きデータIDに以下のとおり設定してね。
→名前:EXPアップ、GOLDアップ
→装備可能箇所:防具3と防具4

経験値やお金の増加効果はコモンの方で設定するから、このDBで何か特別な設定をする必要はないわ。防御力とか金額とかは好きに入力してね。

装備ができたらコモンの改造なのだけど、その前に1つ確認。そもそも、基本システムで取得する経験値や金額の割合を設定している部分がどこにあるかご存知かしら?


それはここ。可変DB18番「基本システム用変数」にあるこの2項目なのよ。
・70:[戦闘]取得経験値%[基本100]
・71:[戦闘]取得金額%[基本100]

名前の通り、この2データが戦闘で得られる経験値と金額の割合を設定しているわ。通常は100%(そのままの値で取得)だから、2倍にしたかったらここを200にしてあげればいいわけね。

そして、この可変DB項目を実際に設定しているコモンはどれなのかというと、


それは「140:X[戦]戦闘変数初期化」。これは毎回戦闘が始まる時に呼び出されているコモンなのだけど、画像の通り先ほどの可変DB項目にそれぞれ「100」を書込んでいるわ。

もうわかったわね。このコモンに「特定の装備を身に着けている場合のみ取得の割合を変更する」という処理を追加すればいいのよ。

基本システムのコモンを改造する

それじゃ、コモン「X[戦]戦闘変数初期化」を改造していくわ。元コモンを残したければ空きIDにコピペしてそちらを修正してね。


そうそう、先にセルフ変数を設定してね。各主人公の装備状況をチェックするために使うのよ。


まずは経験値増加の処理を作っていくわね。最初に経験値を増加させる効果のある装備のIDを取得
→■DB読込(ユーザ): CSelf12[EXP増加装備ID] = ユーザDB[タイプ防具(4) データEXPアップ(39)のデータ番号]


次はパーティ全員の装備をループ処理でチェックしていくから、必要な変数を初期化してループを作成。
→■変数操作: CSelf11[〇番目?] = 1 + 0
→■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回


ループの回数には「118000400」を入力してね。これは可変DB18-4-0「現在パーティ人数」を指定する変数呼び出し値で、こうすればパーティ人数の回数だけ繰り返すループを作ることができるわ。


ループ内では先頭から順番に主人公IDを取得&その主人公が装備している装飾品のID取得
→■DB読込(可変): CSelf10[主人公ID] = 可変DB[ パーティー情報 : メイン設定 : CSelf11[〇番目?] ] (6 : 0 : -)
→■イベントの挿入[名]: CSelf14[装備中アクセ1ID] = [“▲装備取得”] <コモンEv 21> / CSelf10[主人公ID] / 4:防具欄3 / 1:防具
→■イベントの挿入[名]: CSelf15[装備中アクセ2ID] = [“▲装備取得”] <コモンEv 21> / CSelf10[主人公ID] / 5:防具欄4 / 1:防具


装備IDの取得は基本システムのコモン「▲装備取得」を呼び出せばできるわ。装飾品の装備欄はデフォルトで防具欄3と4になるから、両方ともID取得してね。


そしたら防具欄3のIDを条件分岐でチェックして、経験値増加効果の装飾品IDと一致していたら可変DBの取得経験値割合を200に変更(200%だから2倍になるのね)。
→■条件分岐(変数): 【1】 CSelf14[装備中アクセ1ID] が CSelf12[EXP増加装備ID] と同じ
→|◇分岐: 【1】 [ CSelf14[装備中アクセ1ID] が CSelf12[EXP増加装備ID] と同じ ]の場合↓
→|■可変DB書込:DB[ 基本システム用変数 : 70 : 0 ] (18 : [戦闘]取得経験値%[基本100] : 数値) = 200
→◇分岐終了◇


防具欄4にも同様の処理を作成してね。
→■条件分岐(変数): 【1】 CSelf15[装備中アクセ2ID] が CSelf12[EXP増加装備ID] と同じ
→-◇分岐: 【1】 [ CSelf15[装備中アクセ2ID] が CSelf12[EXP増加装備ID] と同じ ]の場合↓
→|■可変DB書込:DB[ 基本システム用変数 : 70 : 0 ] (18 : [戦闘]取得経験値%[基本100] : 数値) = 200
→◇分岐終了◇


後は次のループ用に変数に+1して終了よ。
→ ■変数操作: CSelf11[〇番目?] += 1 + 0

これで「EXPアップの装飾品を身に着けていると取得経験値が2倍に増加」の処理ができたわね。あとは入手金額の増加だけど、


装備IDと書き換える可変DBが変わるだけだから、コピペして必要な個所を変更するだけでいいわ(説明は割愛してもいいわよね?)。

※今回は解りやすく「経験値増加」と「入手金額増加」で処理を分けたけど、コモンを短くしたければ同じループ内に書いちゃってもいいわよ。

これでコモンの改造はOK、といいたいところだけど1つ問題があるわ。これだけだと実際に入手する経験値と金額は増加するけど、戦闘後に表示される経験値と金額は変化しないの。


戦闘で入手した経験値と金額を取得させているコモン「200:X┣◆戦利品獲得処理」では、このように可変DBの値が反映されているのだけど、


リザルト画面を表示しているコモン「186:X[戦]戦利品獲得画面」の方では、なぜか可変DBの反映がされていないの。


だからこちらも修正する必要があるわ。表示される経験値と金額もちゃんと可変DBの値が反映されるように、DB書込と変数操作を追加してあげてね。
→ DB読込(可変): CSelf10[一時変数A] *= 可変DB[ 基本システム用変数 : 70 : 0 ] (18 : [戦闘]取得経験値%[基本100] : 数値)
→■変数操作: CSelf10[一時変数A] /= 100 + 0
→■DB読込(可変): CSelf10[一時変数A] *= 可変DB[ 基本システム用変数 : 71 : 0 ] (18 : [戦闘]取得金額%[基本100] : 数値)
→■変数操作: CSelf10[一時変数A] /= 100 + 0

これでコモンの改造は全て完了よ。お疲れさまでした。

入手する経験値&金額増加装備を試してみる

それじゃ実際に戦闘して試してみましょう。使用例を動画にしたから↓を再生してね。


装備していない場合と装備している場合で、取得する経験値と金額が2倍に変化しているわね。この動画のようにできていれば成功よ。

これで「身につけていると取得経験値やお金が割合増加する装備」の解説は以上よ。あとはお好みでアレンジして頂戴。

例えば複数装備している場合は効果を重複させたいなら、今回のように「=200」ではなく「×2」に指定すればいいわ。2つで4倍にできちゃったりするわね。

他にも、増加割合を2倍じゃなく1.5倍にしてもいいし、装飾品じゃなく武器や鎧で作ってもいいし、「装備中はパラメータが下がる」みたいなデメリットを作るのも面白いわね。まぁいろいろ試してみて。