【解決済】マップ上のイベント名からID取得

返信する
dkpp
記事: 7
登録日時: 2016年6月25日(土) 13:01

【解決済】マップ上のイベント名からID取得

投稿記事 by dkpp »

マップ上のイベントの名前からイベントIDを取得する方法はありますか?
イベントの名前が重複する場合は最初に見つかったIDで構いません。
最後に編集したユーザー dkpp [ 2016年6月25日(土) 15:49 ], 累計 1 回
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: マップ上のイベント名からID取得

投稿記事 by 奏ねこま »

イベントコマンド「変数の操作...」で、以下のスクリプトを指定してください。

コード: 全て選択

($gameMap.events().filter(function(e){return e.event().name === 'EV001'})[0] || {_eventId:0})._eventId
EV001のところは、取得したいイベント名に変更してください。
イベントが見つからなかった場合は、0となります。
 
添付ファイル
00.png
00.png (31.63 KiB) 閲覧された回数 4101 回
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: マップ上のイベント名からID取得

投稿記事 by yamachan »

おお早い!

被ってしまいましたが、せっかくなので貼っておきます。
こちらは map を使ったバージョンで、見つからない場合には -1 を返します。

コード: 全て選択

(Math.max.apply(null, $gameMap.events().map(function(o){return o && o.event().name == "EV001" ? o.event().id : -1})))
filter を使った@こまさん版のほうがシンプルでいいですね :D
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/b ... ADME.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
dkpp
記事: 7
登録日時: 2016年6月25日(土) 13:01

Re: マップ上のイベント名からID取得

投稿記事 by dkpp »

ありがとうございます!参考になりました!
自分は$dataMap.events[n].nameを見つけたのでforでぐるぐる回そうかと思いましたが、いろいろ効果的な方法がたくさんあるのですね。
返信する

“MV:質問”に戻る