ページ 1 / 1
【解決済】マップ上のイベント名からID取得
Posted: 2016年6月25日(土) 13:05
by dkpp
マップ上のイベントの名前からイベントIDを取得する方法はありますか?
イベントの名前が重複する場合は最初に見つかったIDで構いません。
Re: マップ上のイベント名からID取得
Posted: 2016年6月25日(土) 13:40
by 奏ねこま
イベントコマンド「変数の操作...」で、以下のスクリプトを指定してください。
コード: 全て選択
($gameMap.events().filter(function(e){return e.event().name === 'EV001'})[0] || {_eventId:0})._eventId
EV001のところは、取得したいイベント名に変更してください。
イベントが見つからなかった場合は、0となります。
Re: マップ上のイベント名からID取得
Posted: 2016年6月25日(土) 13:56
by yamachan
おお早い!
被ってしまいましたが、せっかくなので貼っておきます。
こちらは map を使ったバージョンで、見つからない場合には -1 を返します。
コード: 全て選択
(Math.max.apply(null, $gameMap.events().map(function(o){return o && o.event().name == "EV001" ? o.event().id : -1})))
filter を使った@こまさん版のほうがシンプルでいいですね

Re: マップ上のイベント名からID取得
Posted: 2016年6月25日(土) 15:32
by dkpp
ありがとうございます!参考になりました!
自分は$dataMap.events[n].nameを見つけたのでforでぐるぐる回そうかと思いましたが、いろいろ効果的な方法がたくさんあるのですね。