64 lines
2 KiB
JavaScript
64 lines
2 KiB
JavaScript
/*:
|
|
* @plugindesc
|
|
* @author okara
|
|
*
|
|
* @help
|
|
*/
|
|
const resetTargetMapIds = [
|
|
1, 5, 12, 45, 96, 101, 146,
|
|
241, 242, 296, 297, 298, 305,
|
|
321, 324, 327, 332, 333, 334, 336, 337,
|
|
466, 467, 468, 469, 470,
|
|
500, 515
|
|
];
|
|
function resetAllResetABEvents(mapIdArray) {
|
|
let targetMaps;
|
|
if (Array.isArray(mapIdArray) && mapIdArray.length > 0) {
|
|
targetMaps = mapIdArray.map(function(id) {
|
|
return String(id);
|
|
});
|
|
} else {
|
|
targetMaps = resetTargetMapIds.map(function(id) {
|
|
return String(id);
|
|
});
|
|
}
|
|
for (let idx = 0; idx < targetMaps.length; idx++) {
|
|
const mapIdStr = targetMaps[idx];
|
|
const mapId = Number(mapIdStr);
|
|
const filename = "Map" + String(mapId).padStart(3, "0") + ".json";
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open("GET", "data/" + filename, false);
|
|
try {
|
|
xhr.send();
|
|
if (xhr.status >= 400) {
|
|
console.warn("Map load failed:", filename);
|
|
continue;
|
|
}
|
|
} catch (e) {
|
|
console.warn("Map load error:", filename, e);
|
|
continue;
|
|
}
|
|
let json;
|
|
try {
|
|
json = JSON.parse(xhr.responseText);
|
|
} catch (e) {
|
|
console.warn("Map json parse error:", filename, e);
|
|
continue;
|
|
}
|
|
const events = json.events;
|
|
if (!events) continue;
|
|
for (let evId = 1; evId < events.length; evId++) {
|
|
const ev = events[evId];
|
|
if (!ev) continue;
|
|
if (!ev.name || ev.name.indexOf("[resetA]") === -1) continue;
|
|
const keyA = [mapId, evId, "A"];
|
|
const keyB = [mapId, evId, "B"];
|
|
$gameSelfSwitches.setValue(keyA, false);
|
|
$gameSelfSwitches.setValue(keyB, false);
|
|
if ($gameMap && $gameMap.mapId && $gameMap.mapId() === mapId) {
|
|
const liveEv = $gameMap.event(evId);
|
|
if (liveEv) liveEv.refresh();
|
|
}
|
|
}
|
|
}
|
|
}
|