【解決済み】特定の装備スロットに装備している武器のIDを取得したい

返信する
フジナー
記事: 16
登録日時: 2022年2月10日(木) 06:06

【解決済み】特定の装備スロットに装備している武器のIDを取得したい

投稿記事 by フジナー »

「HIME_EquipSlotsCore.js」というプラグインを使った状態で
「装備スロット1に装備している武器のIDを変数ID1に取得したい」と思い
こちら↓を参考にスクリプトを作ってみました
viewtopic.php?t=4230

これが実際に私が作ったスクリプトです↓
$gameVariables.setValue(1, $gameActors.actor(1).equips()[0].id);

しかし武器ID1を装備スロット1に装備した後、メニュー画面を閉じようとすると↓のようなエラーが出ます
「Cannot read property 'id' of null」

エラー表示を見る限りでは上記の$gameActors.actor(1).equips()[0].idに何も入っていないようです。
ですが武器ID1を装備した状態でコンソール画面で「$gameActors.actor(1).equips()[0].id」を打ち込むと
ちゃんと「1」と返ってきます。
ただ何も装備していない状態で打ち込んだ所、「Cannot read property 'id' of null」と出てきます。

どうか原因の分かる方はいらっしゃらないでしょうか?

【追記】解決しました!↓の記事を参考にやったら出来ました!
https://detail.chiebukuro.yahoo.co.jp/q ... 2202909647
最後に編集したユーザー フジナー [ 2022年3月21日(月) 16:45 ], 累計 1 回
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 【解決済み】特定の装備スロットに装備している武器のIDを取得したい

投稿記事 by ムノクラ »

フジナー さんが書きました:「HIME_EquipSlotsCore.js」というプラグインを使った状態で
「装備スロット1に装備している武器のIDを変数ID1に取得したい」と思い
こちら↓を参考にスクリプトを作ってみました
viewtopic.php?t=4230

これが実際に私が作ったスクリプトです↓
$gameVariables.setValue(1, $gameActors.actor(1).equips()[0].id);

しかし武器ID1を装備スロット1に装備した後、メニュー画面を閉じようとすると↓のようなエラーが出ます
「Cannot read property 'id' of null」

エラー表示を見る限りでは上記の$gameActors.actor(1).equips()[0].idに何も入っていないようです。
ですが武器ID1を装備した状態でコンソール画面で「$gameActors.actor(1).equips()[0].id」を打ち込むと
ちゃんと「1」と返ってきます。
ただ何も装備していない状態で打ち込んだ所、「Cannot read property 'id' of null」と出てきます。

どうか原因の分かる方はいらっしゃらないでしょうか?

【追記】解決しました!↓の記事を参考にやったら出来ました!
https://detail.chiebukuro.yahoo.co.jp/q ... 2202909647
返信を書いているうちに解決されてしまったようですが、リンク先よりこちらのほうが初心者向けと思い(せっかく作ったし)投稿します。

使用しているプラグインはこちらで合っていますか?
https://fungamemake.com/archives/3462

(勘違いがあると、話がふりだしに戻るので、確認します。できれば、使っているものはリンクを張ってください)

「メニュー画面を閉じようとするとエラーが出る」とのことなので、並列処理で、変数を代入する処理をしているのでしょうか?

保険として、条件分岐を入れるのが妥当だと思います。

コード: 全て選択

◆条件分岐:スクリプト:$gameActors.actor(1).equips()[0]
  ◆変数の操作:#0001 = $gameActors.actor(1).equips()[0].id
  ◆
:それ以外のとき
  ◆文章:なし, ウィンドウ, 下
  :  :ハロルドは武器を装備していません
  ◆変数の操作:#0001 = 0
  ◆
:分岐終了
この条件分岐は、スロットに何も入っていないとidにはnullという状態が入っていて、idが存在しない状態です。
ここで「そんな値は無いです」というエラーになります。
ですので、.idを抜いた状態でスロットが埋まっているかを確認しています。


一応、動作確認したサンプルを付けます。
2022-03-21-HIME_EquipSlotsCore-sample.zip
(76.85 KiB) ダウンロード数: 5 回
解凍したデータを新規プロジェクトに上書きして、確認してください。
マップイベントと、ハロルドのタグだけ見れば分かります。

ちなみに、フジナー氏が見つけたリンク先の回答はJavaScriptの条件 (三項) 演算子というものを使っています。
https://developer.mozilla.org/ja/docs/W ... l_Operator
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
フジナー
記事: 16
登録日時: 2022年2月10日(木) 06:06

Re: 【解決済み】特定の装備スロットに装備している武器のIDを取得したい

投稿記事 by フジナー »

ありがとうございます!
確かにこちらの方が単純で分かりやすいですね。
実際に使ってみた所、しっかり動きました。
ちなみに「HIME_EquipSlotsCore.js」というプラグインをそれで間違いないです。
返信する

“MV:質問”に戻る