【解決済み】メタ名をプラグインパラメータで変更する方法

アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

【解決済み】メタ名をプラグインパラメータで変更する方法

投稿記事by にゃたま » 2019年3月11日(月) 01:46

こんばんは。

スクリプトに詳しい方にお聞きします。
メタ情報はアイテムデータならdata.meta.imageとするとアイテムのメモ欄の
<image:apple>からappleを取得できますがこのimageという名前を
プラグインパラメータより任意の文字列に変更してその文字列で取得できる
ようにすることは可能でしょうか?

たとえばメタ名の初期値はappleでこれをプラグインパラメータにメタ名が
orangeとあったらそちらの文字列でメモ欄から取得したいといった具合です。
初期メタ名→<apple:???>→プラグインパラメータによる変更→<orange:???>

ご存知の方いましたらご教授くださいませ。
最後に編集したユーザー にゃたま on 2019年3月12日(火) 13:57 [ 編集 1 回目 ]

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: メタ名をプラグインパラメータで変更する方法

投稿記事by トリアコンタン » 2019年3月11日(月) 02:29

メタ名をパラメータから取得するには「ブラケット記法」という方法でプロパティを取得します。
以下が実装例で、変数「paramTest」にプラグインパラメータを代入してから、meta[paramTest]で取得します。
このとき「paramTest」という変数は、このプラグインの中でしか使えないので注意してください。

・プラグイン実装例

コード: 全て選択

/*:ja
 *
 * @param test
 * @text テストパラメータ
 * @default orange
 *
 * @help
 */
(function() {
    'use strict';
    var paramTest = PluginManager.parameters('SampleCode')['test'];

    Game_Interpreter.prototype.getMetaName = function(n) {
        return n > 0 ? $dataActors[n].meta[paramTest] : ''
    };
})();


・イベント実装例

コード: 全て選択

◆スクリプト:console.log(this.getMetaName(1))


・メモ欄(アクター)実装例

コード: 全て選択

<orange:aaaaaaa>


上記の実装でイベントを実行するとログに「aaaaaaa」が出力されます。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: メタ名をプラグインパラメータで変更する方法

投稿記事by にゃたま » 2019年3月12日(火) 13:57

トリアコンタン様

解決しました。
なにやら着ると暖かそうな名前の記法ですねww (^^;
[ ]をつけるだけでプラグインパラメータから読める記法があったとは…

おかげさまでプラグインを完成させることができました。
ありがとうございました!!
プラグインは以下のトピックで公開しました。
viewtopic.php?f=49&t=7489

まだまだこの程度のスクリプトしか書けませんが
今後も精進して参りたいと思います。
また世話になることもあるかもしれませんがよろしくお願いいたします。

“MV:質問” へ戻る