敵キャラの能力強化・弱体を解除するイベントを作りたい

あんどう
記事: 24
登録日時: 2019年6月27日(木) 16:08

敵キャラの能力強化・弱体を解除するイベントを作りたい

投稿記事by あんどう » 2019年12月20日(金) 19:58

件名の通り、「強化の解除」「弱体の解除」をイベントで処理したいと考えています。

ステートとは別に設定されている、デフォルトでは2段階まで強化・弱体できる「能力値強化」について、
アイテムやスキルならば「強化の解除」「弱体の解除」ができるのですが、
バトルイベントやコモンイベントではどうしても解除の仕方がわかりません…。

プラグインが必要なのか、特定のスクリプトを入力しなければいけないのか
どなたか教えていただけますでしょうか…!

よろしくお願いします…!
添付ファイル
capture.png

アバター
アーヴェル
記事: 14
登録日時: 2019年5月18日(土) 12:02

Re: 敵キャラの能力強化・弱体を解除するイベントを作りたい

投稿記事by アーヴェル » 2019年12月22日(日) 03:54

viewtopic.php?t=6139

で解答されている全員のバフ解除を参考にさせていただいて、
勉強がてら調べつつ色々試したところ、なんとか形に出来たので、若輩ながら回答させていただきます。
自分もjavaスクリプトは初心者なのでもし間違っていたら申し訳ありません。

敵単体へのスキル使用。使用効果で呼び出すコモンイベントでスクリプト記述します。
直前にターゲットにしていた敵に対して発動する為、
これ自体はスキルで強化の解除・弱化の解除をするのと変わらないですし、
敵全体相手だとちゃんと発動しないので基本機能の劣化です。

敵のバフの解除

this.iterateEnemyIndex(BattleManager._subject._lastTargetIndex, function(enemy){
if(enemy.isBuffAffected(7)) {
enemy.removeBuff(7)
enemy.clearResult()
}
})

デバフの解除

this.iterateEnemyIndex(BattleManager._subject._lastTargetIndex, function(enemy){
if(enemy.isDebuffAffected(7)) {
enemy.removeBuff(7)
enemy.clearResult()
}
})

このような形で最後に対象になったエネミーの能力強化と弱化を解除出来ました。

BattleManager._subject._lastTargetIndex
の部分を0~7の数字にすることで、エネミーを直接指定できます。
クリアした後に敵グループに追加していった順に0~7のIDに恐らくなると思うので、例えば
ボス→バリアA→バリアB の順に敵グループとして追加し、バリアAを倒した時点でボスのバフを解除する。
等であれば、0を入れておけば出来るのではないでしょうか。

上記の記述では7の数値が入っている部分が運のバフのステータスに対応しており、
7をすべて0に変えれば最大HP、4に変えれば魔法力のバフ解除・デバフ解除になります。

0=最大HP / 1=最大MP / 2 =攻撃 / 3=防御 / 4=魔法力 / 5=魔法防御 / 6=敏捷性 / 7=運


作っておいてアレですがいちいちスクリプトで設定するのも恐らくめんどくさいので、
どうしてもバフで使いたいという特別な理由が無いのであれば、
ステートを重ね掛けすると別のステートに変化するプラグイン等を使わせていただいて、
バフ・デバフの機能を持ったステートを作成してしまう方が、
融通が利くうえに設定も楽なのではないのかなぁ・・・と。

そちらも少し検討されてはいかがでしょうか?

“MV:質問” へ戻る