ページ 11

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

Posted: 2018年3月15日(木) 19:58
by れたす
以下を実行するとエラーが起きます。
エラー内容は、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

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

Posted: 2018年3月15日(木) 20:15
by まっつUP
れたす 様

お世話になります。

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

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

Posted: 2018年3月15日(木) 20:17
by 剣崎 宗二
まっつさんの補足として修正法を…

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

例:◆変数の操作:#0001 PT1_NAME = $gameParty.members()[0]._name

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

Posted: 2018年3月15日(木) 20:52
by れたす
お二方、解答ありがとうございます。
まさにそのとおりでした…!

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

※修正箇所 
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, 通常