以下のツクマテページに、
特定のステートがついた敵を透明にするプラグインが紹介されているのですが、
viewtopic.php?t=8710
そのステートが解除されたタイミングで透明化も解除されるかと思いきや
次のターンに敵が攻撃するまで透明化が解除されませんでした。
そこで、
透明化の解除を、ステート解除のタイミングと合わせようと
以下のようにelseを追加しました。
コード: 全て選択
var _updateEffect = Sprite_Enemy.prototype.updateEffect;
Sprite_Enemy.prototype.updateEffect = function() {
if(this._enemy.isStateAffected(57)){//「透明化」ステートがついている場合は不透明度を下げる
this.opacity = 0;
}else{
this.opacity = 255;
}
_updateEffect.call(this);
};
var _Sprite_StateIcon_updateTransform = Sprite_StateIcon.prototype.updateTransform;
Sprite_StateIcon.prototype.updateTransform = function updateTransform() {
_Sprite_StateIcon_updateTransform.apply(this, arguments);
this.worldAlpha = this.alpha;
};
エネミーを倒したあと、消滅エフェクトは作動するのですが
消滅エフェクトのままエネミー画像が消えなくなってしまいました。
倒したエネミーがきちんと消えるように
戦闘不能ステートがtrueのとき、this.opacity = 0;とする以下の条件式を入れました。
コード: 全て選択
var _updateEffect = Sprite_Enemy.prototype.updateEffect;
Sprite_Enemy.prototype.updateEffect = function() {
if(this._enemy.isStateAffected(57)){//「透明化」ステートがついている場合は不透明度を下げる
this.opacity = 0;
}else{
if(this._enemy.isStateAffected(1)){
this.opacity = 0;
}else{
this.opacity = 255;
}
}
_updateEffect.call(this);
};
一瞬でエネミーが消えてしまいます。
そもそもこの方法が正しいのかの判断が付きません。
良い方法がありましたら、一案をいただけますと幸いです。
どうかよろしくお願いいたします。