ページ 11

【解決】スクリプトで敵の不死身状態を解除しても消滅せずに残ってしまう

Posted: 2017年1月14日(土) 21:42
by 3番目
バトルイベントで戦闘開始時に敵をステート変更で不死身にしておいて
HP0になったら戦闘を終了させるために不死身を解除させようとした場合

◆敵キャラのステート変更:#1, - 不死身

これだと不死身が解除されて敵が消滅してから戦闘終了するのですが

*ステートで不死身が3番の場合
◆スクリプト:$gameVariables.setValue(1,0);
◆スクリプト:$gameTroop.members()[$gameVariables.value(1)].removeState(3);

これだと不死身は解除されるが敵が消滅しないで戦闘が終了してしまいます。

スクリプトで敵の不死身ステートの解除と消滅をさせるにはどうやって書けばいいのでしょうか?

Re: スクリプトで敵の不死身状態を解除しても消滅せずに残ってしまう

Posted: 2017年1月14日(土) 22:27
by 奏ねこま
不死身ステートを解除したから消滅するのではなく、
「敵キャラのステート変更...」の中で、敵キャラの消滅判定処理も同時に行っています。

とりあえず、「敵キャラのステート変更...」の中身をそのままパクって書き換えてみたものがこちら。

コード: 全て選択

var enemy = $gameTroop.members()[$gameVariables.value(1)];
var alreadyDead = enemy.isDead();
enemy.removeState(3);
if (enemy.isDead() && !alreadyDead) {
    enemy.performCollapse();
}
enemy.clearResult();
動作確認はざっくりしかしていません。

Re: スクリプトで敵の不死身状態を解除しても消滅せずに残ってしまう

Posted: 2017年1月14日(土) 22:55
by 3番目
ありがとうございます。

こちらの記述で消滅させることができました。