【解決済み】パーティもしくはアクターが特定の武器もしくは防具を装備しているかを判断するスクリプト

maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

【解決済み】パーティもしくはアクターが特定の武器もしくは防具を装備しているかを判断するスクリプト

投稿記事by maker-b » 2017年3月22日(水) 14:39

皆様
お世話になっております。

タイトルの通りご相談です。
javascriptは不慣れで、以下のようなコードを考えておりますが、ご意見を頂きたく。
以下バトル起動時に必ずコモンイベントを発生させることが前提です<実装済み

コモンイベント

コード: 全て選択

var tro = $gameParty.members().length - 1; //味方の数を特定
   for(var i = 0; i <= tro; i++){ //アクター単位でループ開始
      var amr = $gameParty.members()[i]._equips.length;//アクター単位で装備の数を特定
      for(var j = 0; j <= amr; j++){
         if($gameParty.members()[i].equips[j]._itemId() == 1){console.log("hogehoge") //そのアクターがID1を装備していたら hogehoge
      }
   }
}


なんだかうまくいきそうな気がしません(実際エラーになります)
もしお知恵をいただければ幸いです
最後に編集したユーザー maker-b on 2017年3月23日(木) 22:13 [ 編集 1 回目 ]

アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: パーティもしくはアクターが特定の武器もしくは防具を装備しているかを判断するスクリプト

投稿記事by フトコロ » 2017年3月22日(水) 15:40

こんにちは

下の記述ですが、
$gameParty.members()[i].equips[j]._itemId() == 1

この記述の場合、正しくは以下のどちらかです。
equips(j) または _equips[j]

itemId() または _itemId


あと、パーティー内のアクターが特定の装備をしているかどうかは、以下の関数でも判定できます。
$gameParty.members()[i].isEquipped(x)

x は、武器の場合は$dataWeapons[n]、防具の場合は$dataArmors[n]です。(nは武器防具のID)
ただ、武器と防具で記述を分ける必要があります。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

Re: パーティもしくはアクターが特定の武器もしくは防具を装備しているかを判断するスクリプト

投稿記事by maker-b » 2017年3月23日(木) 22:12

フトコロ様

お世話になっております。
アドバイスいただき、無事以下コードにて課題解決いたしました!
ありがとうございます!

コード: 全て選択

var amr = $gameParty.members()[i]._equips.length;
for(var j = 0; j <= amr; j++){
if($gameParty.members()[i].isEquipped($dataArmors[181])){
console.log("hogehoge")}
}
maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

Re: 【解決済み】パーティもしくはアクターが特定の武器もしくは防具を装備しているかを判断するスクリプト

投稿記事by maker-b » 2017年3月24日(金) 21:44

すみません 自己レスです。
コードを一部消し忘れていました。以下が正解でした・・・

コード: 全て選択

if($gameParty.members()[i].isEquipped($dataArmors[181])){
console.log("hogehoge")}

“MV:質問” へ戻る