ページ 1 / 1
戦闘背景変更について
Posted: 2016年1月24日(日) 21:26
by haryu1104
いまTYPE74RX-Tさまの戦闘背景変更のプラグインを使用しています。
しかしわからないところがあるので質問させていただきます。
例として私が作っているのは、戦闘中に能力を一時的に上昇させるステートをパーティに付与させて同時に背景も変更します。
ここまではOKなのですが、
ターン後にステートが解除されるか、または別の方法で解除されたときに戦闘背景も元に戻したいのです。
MVのスクリプトコードではアクターが何かしらのステートにかかっているかどうかを調べることはできますが、そのステートが解除されたかどうかを調べる方法がわかりません。
つまり現状だと、ステートが解除されても”解除されたのを条件”にするスクリプトコードを組む方法がわからないため、戦闘背景は元に戻らないままです。
方法がわかる方いましたらどうかアドバイスお願いします。
Re: 戦闘背景変更について
Posted: 2016年1月24日(日) 23:00
by くがしら
もし、コモンイベント等が使える場合は
イベントコマンドの条件分岐から、能力上昇ステートを選択し
条件分岐コマンドのウィンドウ下にある
「条件を満たさないときの分岐の作成」
にチェックを入れればできると思います。
どうしてもスクリプトを使いたい場合は
if(! $gameParty.members()[0].isStateAffected(stateid)){
//処理
};
という条件分岐でできると思います。
ifの次の()の中が条件の式
!があると○○じゃない時となります。
stateidには指定したいステータスID番号
指定したいアクターに応じて、$gameParty.members()[0]の部分は変えて下さい。
もしパーティ全体を判定したいときは
繰り返しのfor文を使って
for (var i = 0 ,i < $gameParty.size , i + 1){
if(! $gameParty.members().isStateAffected(stateid)){
//処理
};
};
たぶんこれでいけるのではと思います。
このfor文は
for (初期式 、 繰り返し条件 、 繰り返し時の処理)
になっています。
もし上の式が間違っていたらこの辺を参考に直して下さい。
Re: 戦闘背景変更について
Posted: 2016年1月26日(火) 20:06
by haryu1104
ありがとうございます。
くがしらさんのコードを参考にいろいろ記号の位置を変えたりして試してみたら、指定アクターのステートを判定するコードはうまくいきました。
指定アクターのステートを判定するコードは
if(!$gameActors.actor(1).isStateAffected(28)){
this.setupChild($dataCommonEvents[12].list, 0)
}
と、記述することでようやく起動してくれました。
でもパーティ全体を判定するコードがいくら工夫してもなかなかうまく起動してくれません。
いろんなサイト見てまわってみましたが、ほぼお手上げ状態です(汗)
ちなみに「条件を満たさないときの分岐の作成」のチェックにするとアクター毎に条件を組むことが膨大な数になるためパーティ毎の判定にしたかったのです。
あとこのコードを含んだコモンイベントは敵グループのページに入れることで解決できました。
いちおうアクターごとの条件分岐だけでいけるにはいけるんですが・・・
やはりそのほうが無難ですかね?(汗)
Re: 戦闘背景変更について
Posted: 2016年1月27日(水) 02:56
by くがしら
if(!$gameActors.actor(1).isStateAffected(28)){
this.setupChild($dataCommonEvents[12].list, 0)}
の記述で動くのなら
for ( var i = 1 ; i <=4 ; i = i + 1 ){
if(!$gameActors.actor(i).isStateAffected(28)){
this.setupChild($dataCommonEvents[12].list, 0)};
};
この式で如何でしょうか?
正直なところ自信は無いのですが、先日お伝えした式は間違っていたかもしれないので
こちらでも試してみて下さい。
for の条件式の書き方を若干変えています。
Re: 戦闘背景変更について
Posted: 2016年1月27日(水) 20:04
by haryu1104
たびたびありがとうございます。
そちらのコードをコピペすると一発でうまく起動してくれました。
メンバーが一人だけでもステート解除されると戦闘背景もちゃんと元に戻り、全員のステートも解除されます。
まさに理想のスキルをことができました。
本当にありがとうございました。