【解決済み】パーティの仲間がそのステートを持っているかを判定させる

返信する
kamometrain
記事: 109
登録日時: 2018年2月25日(日) 12:47

【解決済み】パーティの仲間がそのステートを持っているかを判定させる

投稿記事 by kamometrain »

パーティのなかに特定のステートを持っている人がいるか いないかを判定し、条件分岐させたと思っていますが、その方法がわかりません。
例えば、毒をもっている(戦闘)メンバーがいるか いないかといったものです。
どうすれば、その条件を満たしているかわかるかを教えてください。
最後に編集したユーザー kamometrain [ 2019年6月04日(火) 23:54 ], 累計 1 回
astral
記事: 106
登録日時: 2018年11月14日(水) 00:21
連絡する:

Re: パーティの仲間がそのステートを持っているかを判定させる

投稿記事 by astral »

こんにちは。
例えば戦闘パーティーならバトルイベントで判定することが出来ますが
こういったことでしょうか。

コード: 全て選択

◆条件分岐:ハロルドがパーティにいる
  ◆条件分岐:ハロルドが毒になっている
    ◆スイッチの操作:#0026 毒パーティー = ON
    ◆
  :分岐終了
  ◆
:分岐終了
◆条件分岐:テレーゼがパーティにいる
  ◆条件分岐:テレーゼが毒になっている
    ◆スイッチの操作:#0026 毒パーティー = ON
    ◆
  :分岐終了
  ◆
:分岐終了
◆条件分岐:マーシャがパーティにいる
  ◆条件分岐:マーシャが毒になっている
    ◆スイッチの操作:#0026 毒パーティー = ON
    ◆
  :分岐終了
  ◆
:分岐終了
◆条件分岐:ルキウスがパーティにいる
  ◆条件分岐:ルキウスが毒になっている
    ◆スイッチの操作:#0026 毒パーティー = ON
    ◆
  :分岐終了
  ◆
:分岐終了
◆条件分岐:毒パーティーがON
  ◆文章:なし, ウィンドウ, 下
  :  :毒になっているパーティーメンバーがいます!
  ◆スイッチの操作:#0026 毒パーティー = OFF
  ◆
:分岐終了
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: パーティの仲間がそのステートを持っているかを判定させる

投稿記事 by ムノクラ »

下記をヒントにメンバー分のステートIDを別々の変数に入れて、条件分岐に使用すれば、かなり簡略化出来ると思います。


ツクールMVのスクリプトで条件分岐を行う方法
http://rpgmaker-script-wiki.xyz/condition_mv.php#11
アクターのステート
$gameActors.actor(アクターID).isStateAffected(ステートID)


サンプルコード(アクターIDが1のアクターがステートID4(デフォルトで毒)かどうかで分岐)

if($gameActors.actor(1).isStateAffected(4)){

//(処理)

}
まず戦闘メンバーのアクターIDを取得して、
SS01.png
ステートID4がついているかどうかで判断する場合は、下記のように

コード: 全て選択

if($gameActors.actor($gameVariables.value(3)).isStateAffected(4)){
//(処理)
}
if($gameActors.actor($gameVariables.value(4)).isStateAffected(4)){
//(処理)
}
if($gameActors.actor($gameVariables.value(5)).isStateAffected(4)){
//(処理)
}
if($gameActors.actor($gameVariables.value(6)).isStateAffected(4)){
//(処理)
}
という処理が効率的だと思います。

ステートは複数つく可能性があるので、どのステートを受けているかという方向で調べるのは現実的では無さそうです。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
アバター
にいやん
記事: 218
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡する:

Re: パーティの仲間がそのステートを持っているかを判定させる

投稿記事 by にいやん »

アクターを個々に判定させるとアクターの数だけ条件分岐が必要ですが事前にパーティ人数を取得してそのパーティの人数分だけ判定するという方法もあります。以下の実行内容ならパーティ人数がいくら増えても分岐を増やさずに済みます。アクターの数が少なければ必要ありませんが、多い場合はこちらのほうがかなり簡略化できます。

パーティ人数が増えたら増えた分だけ自動で判定。100人いれば100人の判定をします。
1.jpg
kamometrain
記事: 109
登録日時: 2018年2月25日(日) 12:47

Re: 【解決済み】パーティの仲間がそのステートを持っているかを判定させる

投稿記事 by kamometrain »

いろいろなアドバイスありがとうございました。
アクターの数も少し多かったため、ひとつ一つ判定するのが厳しいと思ったのですが、おかげで解決できそうです。
お忙しいところ、ありがとうございました。
返信する

“MV:質問”に戻る