すでにお望みの挙動にはなったようですが、そこに至るまでの理屈を改めて説明しておきます。
アクターの情報(IDや戦闘メンバー内の並び順)から、そのアクターが表示されている座標を取得したい、というのがそもそもの要求でした。
しかし、戦闘メンバーの実際の並びと、InCoffin.jsで並べ替えられたプレイヤーとフォロワーの並びが違うため、 $gameParty.members() で取得した配列と表示上の並び順を対応付けられずに困っている、ということでしたね。
では、戦闘メンバーの並びから、InCoffin.jsで並べ替えた表示上の順番を再現するような新しい配列zを作りましょう。というのが剣崎さんが示してくださったゴリ押しの方法です。
コード: 全て選択
const z = $gameParty.aliveBattleMembers().concat($gameParty.battleMembers().filter(actor => actor.isDead()));
InCoffin.jsの並べ替え順を再現したので、z[0]は表示上の$gamePlayerに、1以上に整数Nについて、z[N]は表示上の$gamePlayer.followers().follower(N-1)に対応しているはずです。
元々の戦闘メンバー4人について、n番目のアクターの表示上の座標XYを、変数n, n+1に代入したいということであればこんなコードになります。
コード: 全て選択
z.forEach((actor, index) => {
const character = index === 0 ? $gamePlayer : $gamePlayer.followers().follower(index-1);
$gameVariables.setValue(actor.index() * 2 + 1, character.x);
$gameVariables.setValue(actor.index() * 2 + 2, character.y);
});
今ぶつかっている問題や、それに対して実行したことをしっかりと明示しなければ
せっかく善意で回答してくださっている方々に、余分な手間を強いることになるため
今後の両者(質問者さんと回答者さん両方)のことを考えて、
Plasma Dark 様もアドバイスしてくださっているのだと思います。
フォローありがとうございます。私も説教臭い言葉の選び方をしてしまいがちなのは自覚しているので、気をつけなければいけませんね。
最初の質問で既に問題点は十分に伝えているはずですから
「DeadMemberToCoffin.jsを導入してどううまくいかなかったのか」なんて、別に伝える必要はないでしょう。
これはもう理不尽な説教にしか受け取れませんでした。
せっかくドラムカンさんにフォロー頂いたところ大変心苦しいのですが、これには反論させてください。
回答者は、質問者が作るゲームの全体像も、詳細な仕様も、試行錯誤の詳細もすべて、質問者から与えられる情報から読み取る他ありません。
仕様上の理由と書かれたものが何かわからない限り、回答者が今後提示するかもしれない回答も、それまで提示された回答も
全てその仕様上の理由とやらのために徒労に終わる可能性があるのです。
回答が徒労に終わるということはすなわち、質問者がその回答を見る労力・時間も無駄になるということです。
問題の解決を試みて、ある試行が失敗したとき、その失敗の原因を分析・言語化することは解決の大きな助けになります。
一連の書き込みを見るに、この言語化を怠ってしまっていないか心配になり、キツめの言葉選びになってしまっていたかもしれません。
決して、意地悪に理不尽な説教を垂れていたわけではない、ということは主張させてください。