ページ 11

特定のステートにかかっている人数で条件分岐

Posted: 2017年7月23日(日) 07:42
by XEO
条件分岐のスクリプトを用いて、特定のステートの人数が何人いるのかによって条件分岐をさせたいです。

例えば、ステートID4の「毒」にかかっているパーティメンバーが合計3人いるかどうかで分岐
という具合です。

どのように記述したら良いのか教えて下さい。

Re: 特定のステートにかかっている人数で条件分岐

Posted: 2017年7月23日(日) 08:37
by しぐれん
イベントコマンドだけなら、こうなります

コード: 全て選択

◆変数の操作:#0020 毒カウント = 0
◆条件分岐:ハロルドが毒になっている
  ◆変数の操作:#0020 毒カウント += 1
  ◆
:分岐終了
◆条件分岐:テレーゼが毒になっている
  ◆変数の操作:#0020 毒カウント += 1
  ◆
:分岐終了
◆条件分岐:マーシャが毒になっている
  ◆変数の操作:#0020 毒カウント += 1
  ◆
:分岐終了
◆条件分岐:ルキウスが毒になっている
  ◆変数の操作:#0020 毒カウント += 1
  ◆
:分岐終了
◆条件分岐:毒カウント ≥ 3
  ◆
:分岐終了

スクリプトを使ってもよいなら、以下のような内容です。

コード: 全て選択

var members = $game_party.members();
var count =0;
for(var i =0,len= members.length,; i<len; i+=1 ){
  if(members[i].isStateAffected(※ステートの番号)){
    count +=1;
  }
}
$gameSwitch.setValue(※スイッチの番号,count >=3)
このあとで、指定したスイッチの番号から結果を取り出して分岐します。
この場合だと毒にしか対応していないので、ステートIDを切り替えられる関数を作るのも手だと思います。

Re: 特定のステートにかかっている人数で条件分岐

Posted: 2017年7月23日(日) 09:34
by フトコロ
こんにちは。

以下のスクリプトは、パーティー内の毒ステートに掛かっている人数を取得します。

コード: 全て選択

$gameParty.members().filter(function(member){return member.isStateAffected(4);}).length
別のステートにしたい場合は、member.isStateAffected(4)の()内の数値を変えてください。

上記のスクリプトを条件分岐のコマンドに使う場合は、以下の様にすると3人だった場合で分岐できます。

コード: 全て選択

$gameParty.members().filter(function(member){return member.isStateAffected(4);}).length === 3

Re: 特定のステートにかかっている人数で条件分岐

Posted: 2017年7月23日(日) 11:08
by XEO
ありがとうございます!動作確認まで出来ました!