ページ 11

【解決済み】能力値の名前を動的に変更

Posted: 2022年2月11日(金) 17:16
by ドラムカン
いつもお世話になっております。

先ほどご質問させていただいた、
装備タイプの名前をアクターごとに変更したいという案件の続きとなります。
viewtopic.php?f=23&t=12402&p=46202#p46202

同じく装備画面の、「能力値」をアクターごとに変えたいと考えております。

用語の能力値は、rpg_managers.jsにある
TextManager.paramの配列から取得していると思いますが
関数内で、「現在どのアクターの装備画面を開いているのか」その取得方法が分からないため、
分岐させることができかねております。

スクリプトイベントで
$dataSystem.terms.params[0]~[9]へ文言を代入すれば、変更はできるのですが
これだと、「次へ」「前へ」によるアクターの切り替えに対応できません。
そのため、やはりどの道、「現在どのアクターの装備画面を開いているのか」の判定が必要になります。

TextManager.param内で、アクターごとに分岐させることは可能でしょうか?
ご教示いただけますと幸いです。
よろしくお願いいたします。

Re: 能力値の名前を動的に変更

Posted: 2022年2月11日(金) 18:16
by WTR
ドラムカン さんが書きました:そのため、やはりどの道、「現在どのアクターの装備画面を開いているのか」の判定が必要になります
これは TextManager や ただのデータである $dataSystem の責務ではなく
Scene_Equip や Window_EquipStatus が知っていればいいことかと思います。

コード: 全て選択

Window_EquipStatus.prototype.drawParamName = function(x, y, paramId) {
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.param(paramId), x, y, 120);
};
これが装備画面のパラメータ名を描画するメソッドです。
Window_EquipStatus は _actor プロパティを持っていて、現在選択されているアクターを知ることができます。
Wincow_EquipStatus の中であれば this._actor で参照できるということです。

装備画面以外も対応が必要かもしれません。
ステータス画面の Window_Status も同様の方法で選択されているアクターを参照できるようになってます。

Re: 能力値の名前を動的に変更

Posted: 2022年2月11日(金) 18:55
by ドラムカン
WTR 様

いつも大変お世話になっております。

正答にお導き下さり、本当にありがとうございます。
paramは、Window_EquipStatus とWindow_Status で呼ばれるのですね。
そして、actorプロパティを有しているとのこと。

仰せつかったthis._actorで、無事に分岐させることができました。
重ねて、深くお礼申し上げます。

ステータス画面に関しましては、ツクールデフォルトのものは利用せず
独自に作成しておりますため、考慮せずとも問題なさそうです。

いつも簡素かつ的確なご返答を下さり、心から感謝いたしております。
今後とも、どうぞよろしくお願いいたします。