ページ 1 / 1
控えメンバーが除外できないスクリプトと、できるスクリプト
Posted: 2022年10月23日(日) 16:46
by 人喰いマカロン
以下の2つのスクリプトは
控えメンバー(アクターID5)を除外するという全く同じことをしているのですが、
なぜか2つ目のほうしか控えメンバーが消えません。
◆うまくいかない方
コード: 全て選択
//控えメンバーのアクターID5のキャラを除外
$gameParty.removeActor(5);
◆うまくいく方
コード: 全て選択
$gameParty.members().forEach(function(actor) {
if(!actor.isBattleMember()){
//控えメンバーのアクターID5のキャラを除外
$gameParty.removeActor(actor._actorId)
}
}, this);
なぜなのでしょうか?
Re: 控えメンバーが除外できないスクリプトと、できるスクリプト
Posted: 2022年10月23日(日) 17:00
by Plasma Dark
控えメンバーのアクターIDが5ではないのだと思います。
うまくいく方として提示されているコードは、控えメンバーを全てパーティから除外していますね。
アクターIDはデータベースのアクター一覧で、アクター名の左に表示されている数字です。
パーティから除外しようとしているアクターのIDが0005であるかどうか確認してください。
Re: 控えメンバーが除外できないスクリプトと、できるスクリプト
Posted: 2022年10月23日(日) 17:34
by 人喰いマカロン
ありがとうございます。
console.log(actor._actorId);で見ても5でした。
ためしに新しいプロジェクトを作成して試すと、どちらも上手くいったので
おま環だと思われますが、なぜ同じIDを指定している上に全く同じ$gameParty.removeActor()なのに
一方は動作しないのか意味が分かりません。
Re: 控えメンバーが除外できないスクリプトと、できるスクリプト
Posted: 2022年10月23日(日) 21:48
by Plasma Dark
console.log(actor._actorId);で見ても5でした。
ためしに新しいプロジェクトを作成して試すと、どちらも上手くいったので
おま環だと思われますが、なぜ同じIDを指定している上に全く同じ$gameParty.removeActor()なのに
一方は動作しないのか意味が分かりません。
状況から考えられる原因は、何らかの原因でアクター5のIDが文字列型としてパーティに加えられてしまっている、ということくらいですね。
アクターID5を変な手段でパーティに加入させているか、パーティ加入の処理を上書きするような邪悪なプラグインが入っているか、過去に変な手段で加入させ、そのセーブデータを流用してテストしているかだと思われます。
Re: 控えメンバーが除外できないスクリプトと、できるスクリプト
Posted: 2022年10月24日(月) 21:30
by 人喰いマカロン
ありがとうございます。
文字列型はもちろん最初に考えて数値型に置き換えましたが駄目だったことと、
例に出しているコードでは、整数かつ定数ですので型変換は省略しました。
>パーティ加入の処理を上書きするような邪悪なプラグインが入っているか、
可能性としてはコレしかないので
膨大なプラグインを一つ一つ外して調査しようと思います。