条件分岐のスクリプトを使い、特定のエネミーが指定したステートにかかっているかどうかで挙動を変えたいです。
https://rpgmaker-script-wiki.xyz/condition_mv.php#13
上記のURLの
「敵キャラのステート」
$gameTroop.members()[敵キャラID].isStateAffected(ステートID)
がイメージに近かったのですが、使い方が分からず困っています。
単純に条件分岐のスクリプトのコピペして、敵キャラIDとステートIDに半角数字を入れて試しましたが、エラーが出ます。
TypeError
Cannot read property `isStateAffected`of undefined
どなたか使い方が分かる方助けていただけないでしょうか?
敵のステートによる条件分岐をしたい
Re: 敵のステートによる条件分岐をしたい
普通にイベントコマンドの条件分岐でできると思うけど。
◆条件分岐:#2 ミノタウロスが暗闇になっている
◆
:分岐終了
もし項目を見つけられなかっただけなら
普通にイベントコマンドでやった方が分かりやすいと思います。
いやそうじゃのうて
どうしてもスクリプトでなくちゃいけない事情があるということなら
使用例がこちらになります。
◆敵キャラのステート変更:#2 ミノタウロス, + 暗闇
◆スクリプト:if($gameTroop.members()[1].isStateAffected(5)){
: :$gameMessage.add("表示する文章")
: :}
敵グループ内で、敵キャラIDが2番の敵(今回はミノタウロス)が
ステートID5番の暗闇にかかってる時に、「表示する文章」というメッセージを表示する
というスクリプトです。
ここでいう敵キャラIDは
いわゆるデータベースの「敵キャラ」作成画面における敵キャラのIDではなく
「敵グループ」作成画面で配置した敵の順番、いわゆるインデックス番号のことを意味します。
スクリプトで敵キャラのインデックスを指定する時は、1番が0番になります。
理屈はわかりやせんが、
イベントコマンドで、#1 #2 #3・・・と数えるのに対し
スクリプトコマンドでは、0 1 2・・・と数えます。
なので、#2番のミノタウロスの敵キャラID(インデックス)は、1 になります。
インデックス番号じゃなくて、データベースの「敵キャラ」作成画面における敵キャラのIDでやりたい
という場合は、私はちょっとわからないので、他の方に助けてもらってください。
◆条件分岐:#2 ミノタウロスが暗闇になっている
◆
:分岐終了
もし項目を見つけられなかっただけなら
普通にイベントコマンドでやった方が分かりやすいと思います。
いやそうじゃのうて
どうしてもスクリプトでなくちゃいけない事情があるということなら
使用例がこちらになります。
◆敵キャラのステート変更:#2 ミノタウロス, + 暗闇
◆スクリプト:if($gameTroop.members()[1].isStateAffected(5)){
: :$gameMessage.add("表示する文章")
: :}
敵グループ内で、敵キャラIDが2番の敵(今回はミノタウロス)が
ステートID5番の暗闇にかかってる時に、「表示する文章」というメッセージを表示する
というスクリプトです。
ここでいう敵キャラIDは
いわゆるデータベースの「敵キャラ」作成画面における敵キャラのIDではなく
「敵グループ」作成画面で配置した敵の順番、いわゆるインデックス番号のことを意味します。
スクリプトで敵キャラのインデックスを指定する時は、1番が0番になります。
理屈はわかりやせんが、
イベントコマンドで、#1 #2 #3・・・と数えるのに対し
スクリプトコマンドでは、0 1 2・・・と数えます。
なので、#2番のミノタウロスの敵キャラID(インデックス)は、1 になります。
インデックス番号じゃなくて、データベースの「敵キャラ」作成画面における敵キャラのIDでやりたい
という場合は、私はちょっとわからないので、他の方に助けてもらってください。
Re: 敵のステートによる条件分岐をしたい
返信ありがとうございます。ゆわか さんが書きました:普通にイベントコマンドの条件分岐でできると思うけど。
◆条件分岐:#2 ミノタウロスが暗闇になっている
◆
:分岐終了
もし項目を見つけられなかっただけなら
普通にイベントコマンドでやった方が分かりやすいと思います。
いやそうじゃのうて
どうしてもスクリプトでなくちゃいけない事情があるということなら
使用例がこちらになります。
◆敵キャラのステート変更:#2 ミノタウロス, + 暗闇
◆スクリプト:if($gameTroop.members()[1].isStateAffected(5)){
: :$gameMessage.add("表示する文章")
: :}
敵グループ内で、敵キャラIDが2番の敵(今回はミノタウロス)が
ステートID5番の暗闇にかかってる時に、「表示する文章」というメッセージを表示する
というスクリプトです。
ここでいう敵キャラIDは
いわゆるデータベースの「敵キャラ」作成画面における敵キャラのIDではなく
「敵グループ」作成画面で配置した敵の順番、いわゆるインデックス番号のことを意味します。
スクリプトで敵キャラのインデックスを指定する時は、1番が0番になります。
理屈はわかりやせんが、
イベントコマンドで、#1 #2 #3・・・と数えるのに対し
スクリプトコマンドでは、0 1 2・・・と数えます。
なので、#2番のミノタウロスの敵キャラID(インデックス)は、1 になります。
インデックス番号じゃなくて、データベースの「敵キャラ」作成画面における敵キャラのIDでやりたい
という場合は、私はちょっとわからないので、他の方に助けてもらってください。
スクリプトの使い方について、分かりやすいご説明ありがとうございます。
インデックス番号を参照していたのですね。データベースのIDかと思って入力していたのでエラーが出ていたみたいです。理由が分かり助かりました。
今回はできればデータベース上の敵IDでできない模索していたので、もしそちらで分かる方いましたらお願いします。
-
- 記事: 752
- 登録日時: 2018年12月23日(日) 13:55
Re: 敵のステートによる条件分岐をしたい
こんにちは。
敵グループの構成として、
同じエネミーが複数体登録されていない状況であれば、
エネミーIDから特定のメンバーの情報を引っ張ってくることが可能ですが、
同じエネミーを複数体登録している場合、
そのエネミーは、同じエネミーIDになってしまうため、
エネミーIDではメンバーの特定ができません。
敵グループの構成として同じエネミーが複数体存在しない状況でしょうか?
また、このイベントがどういう目的のイベントなのかによって、
他にいい取得の仕方があるかもしれません。
このイベントがどういうイベントであるのか、
どういうタイミングで起動して、どういう挙動をするのが正しい(理想な)のか 等、
詳細をお教えください。
他の人が返信するかと思って静観してたんですが、誰も返信しないようなので…。なっぱ さんが書きました: 今回はできればデータベース上の敵IDでできない模索していたので、もしそちらで分かる方いましたらお願いします。
敵グループの構成として、
同じエネミーが複数体登録されていない状況であれば、
エネミーIDから特定のメンバーの情報を引っ張ってくることが可能ですが、
同じエネミーを複数体登録している場合、
そのエネミーは、同じエネミーIDになってしまうため、
エネミーIDではメンバーの特定ができません。
敵グループの構成として同じエネミーが複数体存在しない状況でしょうか?
また、このイベントがどういう目的のイベントなのかによって、
他にいい取得の仕方があるかもしれません。
このイベントがどういうイベントであるのか、
どういうタイミングで起動して、どういう挙動をするのが正しい(理想な)のか 等、
詳細をお教えください。