ページ 11

スクリプトによる装備状態の条件分岐

Posted: 2017年9月01日(金) 20:48
by hogehoge
アクターID2番が防具ID2番を装備している時に、条件分岐で文章を表示させる動作をスクリプトでおこなっているのですが、思うように動いてくれません。

どこか間違っているのは間違い無いのですが、どこが間違っているのか見当がつきません。$dataWeaponsの箇所を
$dataArmorに変更してもエラーが返ってくるだけでした。
ゆくゆくはアクターIDを変数にしていろんな動作をさせたいのですが…

コード: 全て選択

◆スクリプト:if($gameActors.actor(2).hasArmor($dataWeapons[2])){
:     ://($gameMessage.add("あいうえお"))
:     :}

Re: スクリプトによる装備状態の条件分岐

Posted: 2017年9月01日(金) 21:31
by しぐれん
アクターが存在しない場合ということも考えられます。
hasArmor()を呼び出す前に、actorが取得可能な状態かをチェックしてください。
帰ってきたエラーは不明ですが、、おそらくundefined not a functionだと思います。
やや雑な説明すると、上記のエラーは「ぬるぽ」です。

コード: 全て選択

var actor = $gameActors.actor(2);
if(actor){
  if(actor.hasArmor($dataArmors[2])){
     //任意の処理
  }
}


Re: スクリプトによる装備状態の条件分岐

Posted: 2017年9月01日(金) 21:38
by フトコロ
こんにちは。

hasArmor()はアクターが指定した"防具"を装備しているかどうかを判定するスクリプトですので
$dataWeapons[n]を使って判定しても偽にしかなりません。

武器を判定する場合は、hasWeapon($dataWeapons[n])ですよ。

Re: スクリプトによる装備状態の条件分岐

Posted: 2017年9月01日(金) 23:24
by hogehoge
返信ありがとうございます!
判定するのは防具で間違っていないのでそれについては問題ありませんでした。私の文章力不足です。申し訳ありませんでした…

いただいたコードを試してみたらうまく行きました!ありがとうございます!