動くコード同士をくっつけると動きません

アバター
れたす
記事: 20
登録日時: 2015年12月03日(木) 02:01

動くコード同士をくっつけると動きません

投稿記事by れたす » 2018年3月15日(木) 19:58

以下を実行するとエラーが起きます。
エラー内容は、TypeError Cannot read propety 'hp' of undefinedです。
使用プラグインは、トリタコンアンさんの動的ピクチャプラグイン(D_TEXT)のみです。

※実行したいこと
 隊列の1番目にいるアクターの名前表示、HP表示、MHP表示

※実際のコード
◆ピクチャの表示:#1, a, 左上 (48,288), (100%,100%), 200, 通常
◆注釈:隊列1読み取り、テキストを画像にロード、画像の表示
◆変数の操作:#0001 PT1_NAME = $gameParty.members()[$gameVariables.value(1)]._name
◆プラグインコマンド:D_TEXT \V[1] 32
◆ピクチャの表示:#2, なし, 左上 (48,288), (100%,100%), 255, 通常
◆注釈:HP/MHP
◆変数の操作:#0002 PT1_HP = $gameParty.members()[$gameVariables.value(1)].hp
◆プラグインコマンド:D_TEXT \V[2] 32
◆ピクチャの表示:#3, なし, 左上 (48,336), (100%,100%), 255, 通常
◆変数の操作:#0003 PT1_MHP = $gameParty.members()[$gameVariables.value(1)].mhp
◆プラグインコマンド:D_TEXT /\V[3] 32
◆ピクチャの表示:#4, なし, 左上 (240,336), (100%,100%), 255, 通常

このままだとエラーが出ますが、分割するとそれぞれは正常に機能します。
詳しくは、Twitterに投稿した画像を見てください。

https://twitter.com/letasu_/status/974232577815937024

アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 動くコード同士をくっつけると動きません

投稿記事by まっつUP » 2018年3月15日(木) 20:15

れたす 様

お世話になります。

◆変数の操作:#0001 PT1_NAME = $gameParty.members()[$gameVariables.value(1)]._name
ここで変数1に文字列が入っているので
以降の$gameParty.members()[$gameVariables.value(1)]でエラーが発生していると思います。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 動くコード同士をくっつけると動きません

投稿記事by 剣崎 宗二 » 2018年3月15日(木) 20:17

まっつさんの補足として修正法を…

掲示されたコードにある
$gameVariables.value(1)を全て0にしてみてください。

例:◆変数の操作:#0001 PT1_NAME = $gameParty.members()[0]._name
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
アバター
れたす
記事: 20
登録日時: 2015年12月03日(木) 02:01

Re: 動くコード同士をくっつけると動きません

投稿記事by れたす » 2018年3月15日(木) 20:52

お二方、解答ありがとうございます。
まさにそのとおりでした…!

質問を投げた後、手元でいろいろ試しまして自己解決しましたので
疑問が発生した箇所と、思考の過程と、修正後の実行内容を張っておきます。

※修正箇所 
1.PTメンバーのx番目を定義する変数が抜けていた
 →◆変数の操作:#0001 PTメンバーx参照 = 0 を追加

 →疑問:定義されていないのに何読みに行っていた?
 →解決:変数の0001をPT_NAME(テキスト型)の代入先として使っていたので、
     0ではなく再定義されたテキスト "マーシャ" をHP表示枠とMHP表示枠にねじ込もうとしていた

※修正後のコード
◆ピクチャの表示:#1, a, 左上 (48,288), (100%,100%), 200, 通常
◆変数の操作:#0001 PTメンバーx参照 = 0
◆注釈:隊列1読み取り、テキストを画像にロード、画像の表示
◆変数の操作:#0002 PT1_NAME = $gameParty.members()[$gameVariables.value(1)]._name
◆プラグインコマンド:D_TEXT \V[2] 32
◆ピクチャの表示:#2, なし, 左上 (48,288), (100%,100%), 255, 通常
◆注釈:HP/MHP
◆変数の操作:#0003 PT1_HP = $gameParty.members()[$gameVariables.value(1)].hp
◆プラグインコマンド:D_TEXT \V[3] 32
◆ピクチャの表示:#3, なし, 左上 (48,336), (100%,100%), 255, 通常
◆変数の操作:#0004 PT1_MHP = $gameParty.members()[$gameVariables.value(1)].mhp
◆プラグインコマンド:D_TEXT /\V[4] 32
◆ピクチャの表示:#4, なし, 左上 (240,336), (100%,100%), 255, 通常

“MV:質問” へ戻る