ページ 11

敵のステート判別について

Posted: 2021年4月05日(月) 11:58
by kikicoco3909
こんにちは,古典的な質問かもしれませんが何卒宜しくお願い致します

やりたいこと↓
if 目標敵に毒ステートあり
スキル発動
else
失敗モーション

自分で調べてやった設定はスキルからコモンイベントへアクセスして
そのコモンイベントの内容は↓
if: Script: $gameTroop.members()[BattleManager._subject._lastTargetIndex]._states.indexOf(38) != -1
スキル発動
else
失敗モーション

現在の問題↓
敵A毒あり 敵B毒なし
味方行動順α>β
味方αが先に敵Bを攻撃した場合,味方βがこのスキルを敵Aに向けて使用すると失敗

恐らくlastTargetIndexは敵Bを指していただと思いますが
currentTargetIndexのような変数はありますか?

VisuMZのプラグインを使用しております
初級のパイソン知識しか知らない人なので,お手柔らかにお願いします

Re: 敵のステート判別について

Posted: 2021年4月05日(月) 12:51
by WTR
インデックスではなくターゲットのGame_Enemy または Game_Actor オブジェクトですが

コード: 全て選択

BattleManager._targets
で取れると思います。
ターゲットは複数になる可能性があるので配列になってますね。
ステートにかかっているかどうかは isStateAffected() というメソッドがあるようです。

ターゲットのうち1体でも該当すれば true でいいのかわかりませんが

コード: 全て選択

BattleManager._targets.some(target => target.isStateAffected(4))
こんな感じでどうでしょうか。(毒はID 4として

Re: 敵のステート判別について

Posted: 2021年4月05日(月) 13:04
by kikicoco3909
WTR さんが書きました:インデックスではなくターゲットのGame_Enemy または Game_Actor オブジェクトですが

コード: 全て選択

BattleManager._targets
で取れると思います。
ターゲットは複数になる可能性があるので配列になってますね。
ステートにかかっているかどうかは isStateAffected() というメソッドがあるようです。

ターゲットのうち1体でも該当すれば true でいいのかわかりませんが

コード: 全て選択

BattleManager._targets.some(target => target.isStateAffected(4))
こんな感じでどうでしょうか。(毒はID 4として
ありがとうございます,できました