控えメンバーが除外できないスクリプトと、できるスクリプト

返信する
人喰いマカロン
記事: 12
登録日時: 2022年4月12日(火) 11:08

控えメンバーが除外できないスクリプトと、できるスクリプト

投稿記事 by 人喰いマカロン »

以下の2つのスクリプトは
控えメンバー(アクターID5)を除外するという全く同じことをしているのですが、
なぜか2つ目のほうしか控えメンバーが消えません。

◆うまくいかない方

コード: 全て選択

//控えメンバーのアクターID5のキャラを除外
$gameParty.removeActor(5);
◆うまくいく方

コード: 全て選択

$gameParty.members().forEach(function(actor) {
if(!actor.isBattleMember()){
//控えメンバーのアクターID5のキャラを除外
$gameParty.removeActor(actor._actorId)
}
}, this);
なぜなのでしょうか?
アバター
Plasma Dark
記事: 731
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: 控えメンバーが除外できないスクリプトと、できるスクリプト

投稿記事 by Plasma Dark »

控えメンバーのアクターIDが5ではないのだと思います。
うまくいく方として提示されているコードは、控えメンバーを全てパーティから除外していますね。

アクターIDはデータベースのアクター一覧で、アクター名の左に表示されている数字です。
パーティから除外しようとしているアクターのIDが0005であるかどうか確認してください。
人喰いマカロン
記事: 12
登録日時: 2022年4月12日(火) 11:08

Re: 控えメンバーが除外できないスクリプトと、できるスクリプト

投稿記事 by 人喰いマカロン »

ありがとうございます。

console.log(actor._actorId);で見ても5でした。
ためしに新しいプロジェクトを作成して試すと、どちらも上手くいったので
おま環だと思われますが、なぜ同じIDを指定している上に全く同じ$gameParty.removeActor()なのに
一方は動作しないのか意味が分かりません。
アバター
Plasma Dark
記事: 731
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: 控えメンバーが除外できないスクリプトと、できるスクリプト

投稿記事 by Plasma Dark »

console.log(actor._actorId);で見ても5でした。
ためしに新しいプロジェクトを作成して試すと、どちらも上手くいったので
おま環だと思われますが、なぜ同じIDを指定している上に全く同じ$gameParty.removeActor()なのに
一方は動作しないのか意味が分かりません。
状況から考えられる原因は、何らかの原因でアクター5のIDが文字列型としてパーティに加えられてしまっている、ということくらいですね。
アクターID5を変な手段でパーティに加入させているか、パーティ加入の処理を上書きするような邪悪なプラグインが入っているか、過去に変な手段で加入させ、そのセーブデータを流用してテストしているかだと思われます。
人喰いマカロン
記事: 12
登録日時: 2022年4月12日(火) 11:08

Re: 控えメンバーが除外できないスクリプトと、できるスクリプト

投稿記事 by 人喰いマカロン »

ありがとうございます。
文字列型はもちろん最初に考えて数値型に置き換えましたが駄目だったことと、
例に出しているコードでは、整数かつ定数ですので型変換は省略しました。

>パーティ加入の処理を上書きするような邪悪なプラグインが入っているか、
可能性としてはコレしかないので
膨大なプラグインを一つ一つ外して調査しようと思います。
返信する

“MV:質問”に戻る