戦闘メンバーのアクターIDが取得できない

味噌原

ユーザー
RPGツクールMVでプラグインを作成しています。
特定の条件のときに、戦闘メンバー全員に戦闘アニメーションを再生する処理を書きたかったので、次のように記述しました。
コード:
for(var i=1;i<=$gameParty.maxBattleMembers();i++){
            var target=$gameParty.members()[i-1].actorId();
                $gameActors.actor(target).startAnimation(アニメーションID,false,0);
            }
ですが、「cannot read property 'actorId' of undefined」というエラーが出てしまいます。

試しに二行目の$gameParty.members()[i-1]のインデックスを$gameParty.members()[0]などの定数に変更したところ、
エラーは発生しなくなりました。
ですが、それでは思ったような動作になりません。

戦闘メンバー全員のアクターIDを取得するにはどうすればよいでしょうか?
もしくはほかに、アクター全員にアニメーションを表示するよい方法はないでしょうか?
 
こんばんは。
戦闘メンバーが4人のとき、$gameParty.maxBattleMembers()で返ってくる数字は4です。
それに対して$gameParty.members()[i-1]は
一人目を参照するときは[0]、4人目を参照するときは[3]になりますよね?
つまり、$gameParty.members()[4]とすると存在しない5人目の戦闘メンバーを参照することになります。
ですので、最初のi<=$gameParty.maxBattleMembers()の条件式を変えると良いと思います
 

味噌原

ユーザー
ありがとうございます。
下記のように書き換えたら動作するようになりました。
コード:
for(var i=1;i<=$gameParty.maxBattleMembers()-1;i++){
            var target=$gameParty.members()[i-1].actorId();
                $gameActors.actor(target).startAnimation(アニメーションID,false,0);
            }
 
トップ