はじめまして。ツクール製ゲームに触発されてツクール製作に手を出し始めたものです。
現在、メモ欄に設定した複数の値をコンマごとに取り出したいのですが行き詰まっています。
①
<test:100,500>
②
$gameMessage.add($dataActors[1].meta['test'][0]);
$gameMessage.add($dataActors[1].meta['test'][1]);
データベース>アクターの0001のメモ欄に①を記載。
次に適当にイベントを作成し、スクリプトに②を記述したのですが
イベントに話しかけると
1
0
と返ってきました。(てっきりコンマ区切りに値を取得できると思っていました…)
100
500
と返ってくるようにしたいのですが
どのように記述すれば良いのでしょうか。
初歩的な質問で申し訳ございませんがよろしくお願いいたします。
【解決済み】メモ欄の値を取り出す方法について。
【解決済み】メモ欄の値を取り出す方法について。
最後に編集したユーザー ぶたどん [ 2017年9月11日(月) 19:32 ], 累計 1 回
Re: メモ欄の値を取り出す方法について。
meta['test'].split(',')[0]
meta['test'].split(',')[1]
こんな感じで。
meta['test'].split(',')[1]
こんな感じで。
Re: メモ欄の値を取り出す方法について。
metaの値は文字列型で格納されます。
<test:100,500>で必要なデータを配列アクセスしたい場合、ゲーム起動時に独自の変数を対象のオブジェクトに書き込むのが良いでしょう。
Scene_Boot.startで、対象のオブジェクトにデータを書き込むと良いです。
以下は私が以前書いたコードです。
ゲーム起動時にアイテムに対してデータを追加で書き込んでいます。
配列型にして格納したい場合、JSON.parse()を使えばよかったと思います。
<test:100,500>で必要なデータを配列アクセスしたい場合、ゲーム起動時に独自の変数を対象のオブジェクトに書き込むのが良いでしょう。
Scene_Boot.startで、対象のオブジェクトにデータを書き込むと良いです。
以下は私が以前書いたコードです。
ゲーム起動時にアイテムに対してデータを追加で書き込んでいます。
配列型にして格納したい場合、JSON.parse()を使えばよかったと思います。
コード: 全て選択
const Scene_Boot_start =Scene_Boot.prototype.start;
Scene_Boot.prototype.start= function() {
Scene_Boot_start.apply(this,arguments);
const len = $dataItems.length;
for(var i =1; i < len;i+=1){
pocketFunction.bootEachItem($dataItems[i]);
}
};
/**
* @param {RPG.Item} item
*/
bootEachItem:function(item){
if(!canPutInPocket(item) ){
item.maxAmount_MA =0;
item.weight_MA =Number.MAX_SAFE_INTEGER;
return;
}
const capa = item.meta[xxx.tag.maxAmount];
if(capa){
item.maxAmount_MA =Number(capa);
}else{
item.maxAmount_MA = xxx.maxAmount;
}
const weight=item.meta[ xxx.tag.weight];
if(weight){
item.weight_MA = Number(weight);
}else{
item.weight_MA = xxx.weight;
}
},
現在、プラグイン依頼はお休み中です。
Re: メモ欄の値を取り出す方法について。
お早い返信ありがとうございます。
お二人のおかげで数日の疑問が数分足らずで解決いたしました…。
奏ねこま様
ご回答ありがとうございます!
試してみたところ無事にコンマ単位で取得することができました。
split(区切り文字)で分割できるのですね…。
ツクールどころかプログラミング自体さっぱりなため考えもしませんでした。
大変助かりましたありがとうございました。
しぐれん様
ご回答ありがとうございます!
頂いたコードについて、どこに書き込んでどう使えば良いのか
まだまだ理解不足で手出しできませんが(お恥ずかしい限りです)
じっくり読んで勉強させていただきます。
また質問とは関係ありませんが
>metaの値は文字列型で格納されます。
この一文とても参考になりました。数値も文字列で格納されるのですね。
(型変換せず足し算したら100500と表示されて不思議だったので…)
丁寧な回答ありがとうございました。
お二人のおかげで数日の疑問が数分足らずで解決いたしました…。
奏ねこま様
ご回答ありがとうございます!
試してみたところ無事にコンマ単位で取得することができました。
split(区切り文字)で分割できるのですね…。
ツクールどころかプログラミング自体さっぱりなため考えもしませんでした。
大変助かりましたありがとうございました。
しぐれん様
ご回答ありがとうございます!
頂いたコードについて、どこに書き込んでどう使えば良いのか
まだまだ理解不足で手出しできませんが(お恥ずかしい限りです)
じっくり読んで勉強させていただきます。
また質問とは関係ありませんが
>metaの値は文字列型で格納されます。
この一文とても参考になりました。数値も文字列で格納されるのですね。
(型変換せず足し算したら100500と表示されて不思議だったので…)
丁寧な回答ありがとうございました。