//================================================================================================== // DrXama_getEventId.js //================================================================================================== /*: * @plugindesc v2.00 - Pega o ID do evento pelo nome do mesmo em qualquer mapa. * * @author Dr.Xamã * * @param Quantidade de mapas * @desc Quantos mapas terão as informações carregadas? * @type number * @default 999 * @min 1 * * @help * ================================================================================ * Introdução * ================================================================================ * Você coloca o ID do mapa e o nome do evento para pegar o ID do mesmo. * ================================================================================ * Informações * ================================================================================ * Esse plugin faz parte do projeto "RPG MAKER MV + Javascript" do Dr.Xamã. * - http://www.condadobraveheart.com/forum/index.php?topic=4717.msg37035 */ (function () { "use strict"; /** * Global Variables */ let params = PluginManager.parameters('DrXama_getEventId'), qmaps = Number(params['Quantidade de mapas']), dmaps = {}; /** * Functions */ function localPath(p) { if (p.substring(0, 1) === '/') p = p.substring(1); var path = require('path'), base = path.dirname(process.mainModule.filename); return path.join(base, p); }; /** * DataManager */ DataManager._drXama_loadMapData = function (mapId) { if (mapId > 0) { var filename = 'Map%1.json'.format(mapId.padZero(3)); if (require('fs').existsSync(localPath(`data/${filename}`))) { this._mapLoader = ResourceHandler.createLoader('data/' + filename, this.loadDataFile.bind(this, '$dataMap', filename)); this._drXama_loadDataFile(mapId, `$dataMap${mapId.padZero(3)}`, filename); } } }; DataManager._drXama_loadDataFile = function (mapId, name, src) { var xhr = new XMLHttpRequest(); var url = 'data/' + src; xhr.open('GET', url); xhr.overrideMimeType('application/json'); xhr.onload = function () { if (xhr.status < 400) { dmaps[name] = JSON.parse(xhr.responseText); dmaps[name]['id'] = mapId; DataManager.onLoad(dmaps[name]); } }; xhr.onerror = this._mapLoader || function () { DataManager._errorUrl = DataManager._errorUrl || url; }; dmaps[name] = null; xhr.send(); }; /** * Game_Temp */ Game_Temp.prototype.getEventId = function (mapId, eventName) { let eventsId = []; Object.keys(dmaps).map(key => { let map = dmaps[key]; if (map.id === Number(mapId)) { map.events.map(event => { if (event && event.name === String(eventName)) eventsId.push(event.id); }) } }); return eventsId; }; /** * GET MAP DATA */ (() => { let i = 0; while (i < qmaps) DataManager._drXama_loadMapData(i++); })(); })();