現在所持しているアイテムのidを変数に格納する方法

返信する
とりもち
記事: 9
登録日時: 2021年5月09日(日) 16:23

現在所持しているアイテムのidを変数に格納する方法

投稿記事 by とりもち »

こんにちは。
ひとりで悪戦苦闘していたのですが、解決に辿り着けなかったので、皆様のお知恵を拝借させてください。

現在、カスタムメニューの作成に取り組んでいます。

そこで、現在のパーティーが所持している装備可能アイテムを取得しようと、リファレンスを眺めていたところ、

$gameParty.weapons()

という表示を見つけました。
これをさっそく、ツクール上で

$gameMessage.add($gameParty.weapons())

としてみたところ、"[object Object]"と表記されました。
リファレンスを再度見返してみたところ、どうやら「$gameParty.weapons()」には、
objectという型で、情報が格納されているようなのですが、この中身の取り出し方がいまひとつわかりません。
(そもそもobjectが、配列なのかどうかすらよくわかっていません)

武器だけでなく、防具についても同様の処理がしたいのですが、
「$gameParty.equipItems ()」については、もはやチンプンカンプンです。

目標は、現在の所持している装備品をリスト上に羅列することなので、
【<現在所持中の装備品のid>を取得し、変数に格納する方法】がわかれば理想です。
(idが取得できれば、そこから芋づる式に他の情報は拾える為)

稚拙な質問で恐縮ですが、お力添えを頂けたら嬉しいです。何卒よろしくお願い致します。
HN:とりもち
ツクール歴:2年生
javascriptは詳しくわからないけど、コアスクリプトを眺めているうちに、
なんとなく意味はわかるになってきた...かな?
日々奮闘中です。
chro
記事: 107
登録日時: 2021年2月14日(日) 11:26

Re: 現在所持しているアイテムのidを変数に格納する方法

投稿記事 by chro »

object(オブジェクト)と配列は別物です。

コード: 全て選択

//武器リストの文章表示
let text = $gameParty.weapons().map(e => e.name).join('\n');
if (text) $gameMessage.add(text);

//防具リストの文章表示
let text = $gameParty.armors().map(e => e.name).join('\n');
if (text) $gameMessage.add(text);

//武器の名前の配列
$gameParty.weapons().map(e => e.name);

//防具の名前の配列
$gameParty.armors().map(e => e.name);
文章の表示で使用する場合と、カスタムメニューなどで配列として使用する場合、
変数にIDを格納させる方法だとそれぞれやり方が別になってきます。

変数にidを格納しても、例えば武器が10個あった場合の処理なども考えなければなりません。


カスタムメニュー作成プラグインであれば、$gameParty.weapons()だけで、武器の名前だけのリストが作成出来るはずです。
もしくは、武器の名前の配列を利用します。

配列のインデックスから武器のデータ(オブジェクト)を参照する方法です。

コード: 全て選択

$gameParty.weapons()[1]  //インデックス1番の武器データ
$gameParty.weapons()[1].id //インデックス1番の武器id
返信する

“MZ:質問”に戻る