ページ 1 / 1
【解決】並び替えで特定のメンバーを先頭にしたい。
Posted: 2020年12月14日(月) 21:21
by dekkey
現在、8名パーティーで並び替えはプレイヤーが自由に変更できるようにしています。
特定のエリアに入った時だけ、強制的に、関係するメンバー(id0003)を先頭に変更したいと考えています。
その部屋にいる間は並び替えメニューは禁止しようと思っています。
また、そのエリアから出ると、並び替えメニューを許可し、並びは id0003 元いた並びに戻るようにしたいと考えています。
どのように実現すればよいか、アドバイスいただけないでしょうか?
Re: 並び替えで特定のメンバーを先頭にしたい。
Posted: 2020年12月14日(月) 22:52
by ムノクラ
dekkey さんが書きました:現在、8名パーティーで並び替えはプレイヤーが自由に変更できるようにしています。
特定のエリアに入った時だけ、強制的に、関係するメンバー(id0003)を先頭に変更したいと考えています。
その部屋にいる間は並び替えメニューは禁止しようと思っています。
また、そのエリアから出ると、並び替えメニューを許可し、並びは id0003 元いた並びに戻るようにしたいと考えています。
どのように実現すればよいか、アドバイスいただけないでしょうか?
下記記事を参考に作りました。
闘技場などで一時的に挑戦者一人にするイベント作成:パーティアクターの記憶と復元
https://fungamemake.com/archives/7492
viewtopic.php?t=3665#p12596
指定したアクターが先頭に来て、他のアクターの並び順はそのままで後ろにスライドします。
コード: 全て選択
◆スクリプト://パーティアクターの記憶
: :$gameParty._lastActors = $gameParty._actors.clone();
: :
: ://パーティメンバーの先頭と交代
: :const newFirst = actorId1;
: : //actorId1を先頭に行くアクターIDに書き換える
: :$gameParty.removeActor(newFirst);
: :$gameParty._actors.unshift(newFirst);
: :$gamePlayer.refresh();
: :$gameMap.requestRefresh();
◆並び替え禁止の変更:禁止
コード: 全て選択
◆スクリプト://パーティアクターの復元
: :$gameParty._actors = $gameParty._lastActors;
: :$gamePlayer.refresh();
: :$gameMap.requestRefresh();
◆並び替え禁止の変更:許可
コード: 全て選択
//パーティアクターの記憶
$gameParty._lastActors = $gameParty._actors.clone();
//パーティメンバーの先頭と交代
const newFirst = actorId1;
//actorId1を先頭に行くアクターIDに書き換える
$gameParty.removeActor(newFirst);
//先頭アクターを削除
$gameParty._actors.unshift(newFirst);
//newFirstを先頭に追加
$gamePlayer.refresh();
$gameMap.requestRefresh();
コード: 全て選択
//パーティアクターの復元
$gameParty._actors = $gameParty._lastActors;
$gamePlayer.refresh();
$gameMap.requestRefresh();
Re: 【解決】並び替えで特定のメンバーを先頭にしたい。
Posted: 2020年12月14日(月) 23:14
by dekkey
ムノクラ様。早速教えていただきありがとうございます!
他のキャラクターの並びはスライドするというのも、理想通りの動作で、大変助かりました!
Re: 【解決】並び替えで特定のメンバーを先頭にしたい。
Posted: 2020年12月22日(火) 12:39
by ムノクラ
解説記事のネタがてら、プラグインコマンドにしてみました。
https://fungamemake.com/archives/12475
よろしければ、ご活用ください。