【解決済み】アイテムのmeta内で変数(文字列型)を使いたい

返信する
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

【解決済み】アイテムのmeta内で変数(文字列型)を使いたい

投稿記事 by ドラムカン »

いつもお世話になっております。

tomoaky様作の「アイテムカテゴリ拡張プラグイン」で
アイテムに設定している<itemCategory:>というタグに変数を使いたいのですが
トリアコンタン様の「動的データベース構築プラグイン」を導入した状態でも割り当てが上手くいきません。

例:変数1には「テスト」という文字列が入っています
<itemCategory:\v[1]>

この状態でmetaを参照しても、"\v[1]"となっておりました。
恐らく、「アイテムカテゴリ拡張プラグイン」内で
正規表現などを使って置き換える必要があるのかと思いますが
どこへどのように設置するのか皆目、見当がつきません。

その他に、何か解決策はございますでしょうか?
ご教示のほど、よろしくお願いいたします。
最後に編集したユーザー ドラムカン [ 2022年1月11日(火) 00:17 ], 累計 1 回
アバター
WTR
記事: 625
登録日時: 2015年12月22日(火) 19:14

Re: アイテムのmeta内で変数(文字列型)を使いたい

投稿記事 by WTR »

どのみちプラグインに手を入れるのであれば
わざわざメタデータを制御文字で記述してデコードする意味はないと思いますがどうでしょう。

とくに実験してませんが
TMPlugin - アイテムカテゴリ拡張(V1.0.1)では 97行目

コード: 全て選択

    if (item && item.meta.itemCategory) return this._category === item.meta.itemCategory;
でしかメタデータを参照していないようです。
ここを変数にしてしまえばよいのではないでしょうか。

コード: 全て選択

    if (item && $gameVariables.value(1)) return this._category === $gameVariables.value(1);
とか。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: アイテムのmeta内で変数(文字列型)を使いたい

投稿記事 by ドラムカン »

WTR 様

いつも大変お世話になっております。
貴重な情報をありがとうございます。

私の説明不足でした。

アイテムごとに、違う変数を割り振っておりまして
カテゴリを、プレイヤーが動的に変更できるようにしたいと考えております。

・アイテム1のメモ欄:<itemCategory:\v[1]> ※\v[1]='カテゴリA' 
・アイテム2のメモ欄:<itemCategory:\v[2]> ※\v[2]='カテゴリB' 
・アイテム3のメモ欄:<itemCategory:カテゴリC> ※定数のアイテムも混在する

【例:アイテム2をカテゴリAに変更したいときは
   変数2に、'カテゴリA'を代入しているため、
   これを反映させたい】

Window_ItemList.prototype.includes では、
メモ欄に<itemCategory>タグを含むアイテムを抽出しているかと思いますので
このタグ部分を変数にしましても、上記の仕様を実現できないという状態です。

コードをずっと眺めておりますものの、
item.meta.itemCategoryの後に来る値となりますcategoryListの配列を含む条件式が
if (categoryList.length === 1) しか見当たらず、
色々な箇所にconsole.logを配置して値を取っておりますが
どのように割り当てられているのかサッパリ分かりません。

上記の仕様を実現させる方法がございましたら
是非ともご教示のほど、よろしくお願いいたします。
アバター
WTR
記事: 625
登録日時: 2015年12月22日(火) 19:14

Re: アイテムのmeta内で変数(文字列型)を使いたい

投稿記事 by WTR »

97行目を

コード: 全て選択

    if (item && item.meta.itemCategory) return this._category === this.convertEscapeCharacters(item.meta.itemCategory);
とするだけでよかったかもしれないです
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: アイテムのmeta内で変数(文字列型)を使いたい

投稿記事 by ドラムカン »

WTR 様

できました!
ありがとうございます!

convertEscapeCharactersを追加するだけで
変数を読み込むようになるとは、一体どういう原理なのでしょうか。

検索すると「エスケープ文字を変換して返す」とありましたが
変数に入った文字列を戻り値に変換してくれるものなのでしょうか。
まさかこんなに少ない加筆で実現できてしまうとは、本当に驚きです。

見事なまでの解決策をご教示くださり、改めてお礼申し上げます。
今後どもどうぞよろしくお願いいたします。
返信する

“MV:質問”に戻る