Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Controllare in che regione sono gli eventi in mappa

    The_Wolfman
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 35 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#1 Inviato 02 March 2017 - 00:24 AM

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



    The_Wolfman
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 35 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#2 Inviato 05 June 2017 - 00:10 AM

risolto, nel caso servisse a qualcuno

var alias_update = Scene_Map.prototype.update
		
Scene_Map.prototype.update = function() {
	alias_update.call(this);
	this.updatemyregion();


};

  

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);
	}
	

	for (var i = 0; i < $gameMap.events().length; ++i) {

    	var ev = $gameMap.events()[i];

		if ( $gameMap.regionId(ev.x, ev.y) === 2){
			SpriteZoom.zoom(i+1, 0.95);
		} else if (  $gameMap.regionId(ev.x, ev.y) === 3){
			SpriteZoom.zoom(i+1, 0.9);
		} else if (  $gameMap.regionId(ev.x, ev.y) === 4){
			SpriteZoom.zoom(i+1, 0.65);
		} else if (  $gameMap.regionId(ev.x, ev.y) === 5){
			SpriteZoom.zoom(i+1, 0.6);
		} else if (  $gameMap.regionId(ev.x, ev.y) === 14){
			SpriteZoom.zoom(i+1, 0.9);
		} else if (  $gameMap.regionId(ev.x, ev.y) === 21){
			SpriteZoom.zoom(i+1, 3);

		} else{
			SpriteZoom.zoom(i+1,1,10);
		}
    }
	

	
};

Modificato da The_Wolfman, 05 June 2017 - 00:32 AM.


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#3 Inviato 05 June 2017 - 10:09 AM

Grazie per aver postato la soluzione, Wolf! ^ ^

 

Purtroppo non pulluliamo di scripter! > <


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^  
 
REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

Spoiler





  • Feed RSS