お疲れ様です。
本日、ご質問させていただいた、以下ページに関連した内容になります。
【装備画面ステータス表示の計算式について】
viewtopic.php?f=23&t=12717
上記の質問で
「装備画面における能力値パラメーターの上昇値は、
カーソルで選択中の装備品を仮想のアクターに仮装備させ、
その能力値と実物のアクターの能力値との差分を取って表示させている」
という仕様を教わりました。
それを処理している関数(Window_EquipItem.prototype.updateHelp)を確認すると
コード: 全て選択
//①選択したアクターを、オブジェクトとしてディープコピーする
var actor = JsonEx.makeDeepCopy(this._actor);
//②指定スロットの装備を(持ち物に戻さず)強制的に変更する
actor.forceChangeEquip(this._slotId, this.item());
//③装備の着脱後のアクターを設定する
this._statusWindow.setTempActor(actor);
トリアコンタン様の、「カスタムメニュー作成プラグイン」を利用して
this._actorには、カスタムメニューで選択したアクターオブジェクト([this._actor])を割り当て、
this._slotIdには、カスタムメニューで選択したアクターの装備スロットID(this._actor.equipSlots()[※カーソルインデックス変数])を割り当て
this.item()には、所持装備品一覧で選択した装備品オブジェクトを割り当てました。
しかし、③this._statusWindow.setTempActor(actor);は
ツクールの装備画面ウインドウを指定しなければならないのか、
エラーを回避できなかったため、②actor.forceChangeEquip(this._slotId, this.item());まで走らせ
console.log(actor);で、仮想アクターの装備品を確認しましたが、装備品に変化はありませんでした。
説明が長くなって申し訳ないです。
本題は、「仮想のアクター(ディープコピーしたアクターオブジェクト)に、
指定の装備オブジェクトを仮装備させ、その状態の能力値パラメーターを取得すること」です。
恐らく、上記で示したような簡単なやり方では実現できない気がしておりますが、
別の方法で、こうすれば可能、という案にお心当たりがございましたら
助言いただけますと幸いに存じます。
どうか、よろしくお願いいたします。