【ウディタSRPG】改良②細かい修正
今後改造するに向けて、先に色々と気になってた細かーい所をいじっていきます。
それじゃ、サクサクやっていきましょう!!
可変DB[ユニットデータ]内のDB参照番号が違うので修正
これは正直、前回の時点でユーザーDB[スキル]の番号がずれたので、一応ここも修正が必要でした。
項目10の攻撃1,項目11の攻撃2どちらも修正しておきます。
コモンEv221[■検索範囲ごとの処理判定]の直値をDB名参照にする
これは前回後回しにしたヤツです。可変DB[移動範囲]のタイプ番号は現在23ですが、今後この数字がズレた場合、またここを修正する必要が出てきます。
そんなの効率悪いですよね。
こんな感じにDB操作でタイプ番号を取得すれば、例えば可変DB[移動範囲]のタイプ番号を変更したとしても正常に処理されるはずなので、今後開発を進めていく上でこの辺のことを気にする必要がなくなります。
コモンEv222[■パネル表示]の引数がユーザDB10番になってる
コモンEv222[■パネル表示]が引数(入力の値)で何故かユーザーDBを参照しています。ここはDBを参照する必要はないので、特殊な設定方法を使用しないにチェックを入れればおk。
コモンEv267[■ターゲッティング(最短)]呼び出しのタイミング
現状、コモンEv267[■ターゲッティング(最短)]はコモンEv266[■評価値計算]の中で処理されています。つまり...
この前説明に使ったこの図を見るとご覧の通り、コモンEv266[■評価値計算]はコモンEv265[■敵AI処理]に呼ばれるたびにコモンEv267[■ターゲッティング(最短)]を処理しているということになります。
これってなんというか...無駄だと思うんです。
移動先ごとにターゲットを決めると処理に時間がかかるし、コモンEv265[■敵AI処理]で先にターゲットを決めてしまった方がいいと思いません?
ということで、評価値計算をする前にターゲットを確定する方針で修正してしまおうと思います。
修正方法は少々面倒ですがやっていきます。
まずコモンEv265[■敵AI処理]にコモンEv267[■ターゲッティング(最短)]を挿入。
次にコモンEv266[■評価値計算]の引数(入力内容)にターゲットをセットできるようにしたいのですが...
残念!CSelf03は使用中!なんで!!?(泣
とりあえずこのCSelf03は下のCSelf04にずらしますかね...。
で、肝心のターゲットはCSelf10にセットしているようなので、これを引数(入力内容)でセットできるようにしてやればいいですね。
つまり
CSelf03をCSelf04に、CSelf10をCSelf03に
それぞれ変更したいというわけです。
さすがに一行ずつ全部見ていくのは大変なので、良い方法を考えました(デジャヴ)
こちらで解説しました。参考にしてみてください。
で、こうなります。
変数名の変更も忘れずに。
さてコモンセルフ変数の移動も済んだことですし、本題に戻ります。
改めてコモンEv266[■評価値計算]の引数(入力内容)にターゲットをセットできるようにします。
そしたらコモンEv266[■評価値計算]中でターゲット探索する必要がなくなるので、削除していいですね。
コモンEv265[■敵AI処理]のコモンEv266[■評価値計算]を挿入している箇所で、いま追加した引数枠にCSelf14[タゲID]をセット。
完成。
コラム
コモンEv内の変数を効率的に変更する方法について考えてみたので紹介します。前回のコラムで紹介したような方法でも良いのですが、今回はもっと楽で簡単です。
まずコモンEv内のコードを全選択→右クリックでイベントコードをコピーします。
ちなみにここでコマンド文をコピーすると文字列のままコピーできるので、いつも削除したコードをコメントで「削除:~」と表記する時はこれ使ってます。
で次に、サクラエディタでもWordでもなんでも良いので貼り付けます。
sakura-editor.github.io
そして置換で1600003を1600004、1600010を1600003に置き換え。
あとは、コモンEvの変数名を更新してから
置換後のコードをコピーして、ウディタのコモンEv上で右クリックして貼り付ければ
完了です
ね?簡単でしょ