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

XEO

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

投稿記事by XEO » 2017年7月23日(日) 07:42

条件分岐のスクリプトを用いて、特定のステートの人数が何人いるのかによって条件分岐をさせたいです。

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

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

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

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

投稿記事by しぐれん » 2017年7月23日(日) 08:37

イベントコマンドだけなら、こうなります

コード: 全て選択

◆変数の操作:#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を切り替えられる関数を作るのも手だと思います。
現在、プラグイン依頼はお休み中です。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

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

投稿記事by フトコロ » 2017年7月23日(日) 09:34

こんにちは。

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

コード: 全て選択

$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
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
XEO

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

投稿記事by XEO » 2017年7月23日(日) 11:08

ありがとうございます!動作確認まで出来ました!

“MV:質問” へ戻る