Salve gente, ogni tanto riappaio, stavolta sto cercando (sulla base anche di quello che realizzai su vx ace qui) di realizzare un plugin che in base alla regione della mappa in cui si trovano gli eventi avvengano dei cambiamenti agli eventi stessi. Come principio ho pensato ad un semplice ciclo for che controlla tutti gli eventi in mappa con vari if innestati al suo interno, il problema è che la mia conoscenza del javascript è quasi nulla e soprattutto non so più richiamare gli elementi di rpg (col RGSS3 mi era tutto più facile, almeno con l'editor).
Ho provato nella mia ignoranza a scrivere ciò:
Scene_Map.prototype.update = function() { this.updateDestination(); this.updateMainMultiply(); this.updatemyregion(); if (this.isSceneChangeOk()) { this.updateScene(); } else if (SceneManager.isNextScene(Scene_Battle)) { this.updateEncounterEffect(); } this.updateWaitCount(); Scene_Base.prototype.update.call(this); }; Scene_Map.prototype.updatemyregion = function() { if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 2){ SpriteZoom.zoom(0, 0.95); } else if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 3){ SpriteZoom.zoom(0, 0.9); } else if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 4){ SpriteZoom.zoom(0, 0.85); } else if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 5){ SpriteZoom.zoom(0, 0.8); } else if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 14){ SpriteZoom.zoom(0, 0.9, 5); } else if ( $gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 21){ SpriteZoom.zoom(0, 3, 35); } else{ SpriteZoom.zoom(0,1,10); } $gameMap.events().forEach(function(event) { if ( $gameMap.regionId($gameMap.events(event).x, $gameMap.events(event).y) === 2){ SpriteZoom.zoom(event, 0.95); } else if ( $gameMap.regionId($gameMap.events(event).x, $gameMap.events(event).y) === 3){ SpriteZoom.zoom(event, 0.9); } else if ( $gameMap.regionId($gameMap.events(event).x, $gameMap.events(event).y) === 4){ SpriteZoom.zoom(event, 0.85); } else if ( $gameMap.regionId($gameMap.events(event).x, $gameMap.events(event).y) === 5){ SpriteZoom.zoom(event, 0.8); } },this); };
La dicitura SpriteZoom.zoom(........); è richiamata dal plugin di Aramis Sprite Zoom, l'ho usata come provare per vedere gli effettivi cambiamenti.
Insomma la prima parte che controlla il player va tranquilla, funziona senza problemi, per gli eventi invece non da segni, è sicuramente sbagliato qualcosa.
Illuminatemi vi prego, e anche se ci fossero errori altri al codice vi prego di segnarlarmeli, vorrei imparare xD
Grazie in anticipo