ページ 11

マップ内のAという名前のイベントの数を変数に格納

Posted: 2016年1月16日(土) 03:39
by XEO
マップ内にある特定の名前のイベントがいくつあるのかを取得し、それを変数に格納したいです。
イベントIDを1から順に参照し、そのIDの名前を取得してそれがあらかじめ決められた名前かどうかで条件分岐、
のような方法があればな~と考えていたのですが、できませんでしょうか。

Re: マップ内のAという名前のイベントの数を変数に格納

Posted: 2016年1月16日(土) 16:21
by 名無し蛙
結論から言っちゃえばこれで出来ますよ。イベント名と格納変数番号は適当に変えてください

コード: 全て選択

var eventName = "イベント名";
var variableId = 1;
var num = $gameMap.events().filter(function(event){
    return event.event().name === eventName;
}).length;
$gameVariables.setValue(variableId, num);
処理の流れを軽く説明すると現在マップ情報を取得したい場合は$gameMapから辿ります
現在マップに存在するイベントを全て取得する場合は$gameMap.events()
そこから特定の条件で選別、配列で再構成する方法が
filter(function(event){
return event.event().name === eventName;
})

最後にその再構成した配列の要素数を数えるのがlengthです
nameとlengthはプロパティで()は不要ですがeventsとeventは引数無し関数なので()が必要な事に注意しましょう

Re: マップ内のAという名前のイベントの数を変数に格納

Posted: 2016年1月18日(月) 04:49
by XEO
ありがとうございます!!!