【解決済】先頭のパーティメンバーが戦闘不能だったら条件分岐

アバター
TEN
記事: 160
登録日時: 2018年9月04日(火) 14:48

【解決済】先頭のパーティメンバーが戦闘不能だったら条件分岐

投稿記事by TEN » 2020年8月27日(木) 19:27

お世話になっております。

「もし先頭のパーティメンバーが戦闘不能(ステート1)になっていたら」の条件分岐の方法をご教授いただきたいです。

自分なりに調べた結果

コード: 全て選択

$gameActors.actor(ActorID).isStateAffected(StateID)

でアクターID〇番がステート〇番にかかっていたらを条件分岐できるみたいでした。

それを元に
◆変数の操作:#0010テスト = パーティメンバー1番のアクターID
◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(10)).isStateAffected(1)
 ◆文章:テスト
 ◆
:分岐終了

と、組んでみたのですが上記一つだと上手くいきました。
しかしパーティメンバーが増えると、違う変数を用意して同じ感じでやってみたのですがエラー(Cannot read property 'isStateAffected' of null)と出てしまいました。

正確には下記のように実行しました。

注釈://先頭のパーティメンバーがステート1番にかかっていたら「テスト」と表示
◆変数の操作:#0010テスト = パーティメンバー1番のアクターID
◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(10)).isStateAffected(1)
 ◆文章:テスト
 ◆
:分岐終了
注釈://二番目のパーティメンバーがステート1番にかかっていたら「テスト」と表示
◆変数の操作:#0011テスト2 = パーティメンバー2番のアクターID
◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(11)).isStateAffected(1)
 ◆文章:テスト2
 ◆
:分岐終了
注釈://三番目のパーティメンバーがステート1番にかかっていたら「テスト」と表示
◆変数の操作:#0012テスト3 = パーティメンバー3番のアクターID
◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(12)).isStateAffected(1)
 ◆文章:テスト3
 ◆
:分岐終了
注釈://四番目のパーティメンバーがステート1番にかかっていたら「テスト」と表示
◆変数の操作:#0013テスト4 = パーティメンバー4番のアクターID
◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(13)).isStateAffected(1)
 ◆文章:テスト4
 ◆
:分岐終了

これだと先頭の分岐「テスト」と表示された後に上記に記したエラーが起こってしまいます。
スクリプトには詳しくないので、どこをどう直せばいいのかさっぱりわかりません。
どなたか、わかる方いましたら教えていただけると幸いです。
よろしくお願いいたします。



【追記】2020.08.27
ご教授いただいた冷やっこ様、無事解決することができました。
この度はご助力いただきましてありがとうございました(^▽^)/
最後に編集したユーザー TEN on 2020年8月27日(木) 21:17 [ 編集 1 回目 ]

===============================
公開ゲーム/小説ブログ
『 TEN_GAME / https://ten-game.hatenablog.com/
制作初心者が作ったゲームですので暖かい目で見てください( ̄▽ ̄;)
                        ◇◆――――
                          TEN
―――――――――――――――――――――――――――――――――――――――◆◇
アバター
冷やっこ
記事: 82
登録日時: 2020年3月04日(水) 22:47

Re: 先頭のパーティメンバーが戦闘不能だったら条件分岐

投稿記事by 冷やっこ » 2020年8月27日(木) 20:47

こんばんは!

そのイベントで戦闘不能かを調べる時にパーティメンバーは4人揃っていますでしょうか?
今同じ様にイベントを組んで試した所、パーティメンバーが4人揃っている時は正常に動作をしましたが
1人減らしてパーティメンバーが3人の時は同様のエラーが起きました。
様は調べる対象がいないのでその様なエラーが起きたのでは?と思ったのですが如何でしょうか?
アバター
TEN
記事: 160
登録日時: 2018年9月04日(火) 14:48

Re: 先頭のパーティメンバーが戦闘不能だったら条件分岐

投稿記事by TEN » 2020年8月27日(木) 21:15

冷やっこ様

返信と助言ありがとうございます。
私のミスでした……
冷やっこ様の言う通りパーティメンバーが4人以下の場合にエラーになり、4人揃ったらきちんと実行されました。

コモンイベントで1人の時、2人の時、3人の時、4人の時をそれぞれ作り

コード: 全て選択

$gameParty.size()

上記でパーティの人数を取得して、下記のように作ったらいけました(^▽^)/

◆変数の操作:#0009パーティの人数 = $gameParty.size()
◆条件分岐:パーティの人数 = 1
◆注釈://一人の場合
 ◆変数の操作:#0010テスト = パーティメンバー1番のアクターID
 ◆条件分岐:スクリプト:$gameActors.actor($gameVariables.value(10)).isStateAffected(1)
  ◆文章:テスト
  ◆
 :分岐終了
:分岐終了


これを4人分作ったらなんとかできました。
もっとスマートな方法があるかもしれませんが、自分にはこれが精いっぱいでした :cry:

ご指摘いただいた冷やっこ様、無事解決することができました。
ありがとうございました(^▽^)/
===============================
公開ゲーム/小説ブログ
『 TEN_GAME / https://ten-game.hatenablog.com/
制作初心者が作ったゲームですので暖かい目で見てください( ̄▽ ̄;)
                        ◇◆――――
                          TEN
―――――――――――――――――――――――――――――――――――――――◆◇

“MV:質問” へ戻る