Rispondi 
[Sviluppo] Condizioni meteo random (basato sulle stagioni)
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 273
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 242
PokéMoney: 592.00₱
Messaggio: #1
Condizioni meteo random (basato sulle stagioni)
Disclaimer: script funzionante ma non ampiamente testato.

Salve a tutti, oggi vorrei pubblicare uno script a cui ho lavorato qualche mese fa. Il suddetto script, se compilato e inserito come script mappa in OGNI mappa da esterno (questo punto può probabilmente essere semplificato con qualche routine ASM) fa in modo che ogni volta si entri in una mappa le condizioni meteo cambino randomicamente, tenendo conto della stagione corrente e in alcuni casi dell'orario.
Per poter funzionare questo script ha bisogno che sia stato inserito il DNS di PrimeDialga; anche il DNS Andrea's Plus Edition va benissimo (per lo meno per le stagioni, non sono sicuro per gli orari).

Pokéball Ecco lo script




Pokéball Spiegazione passo passo:

#org @checkattuale
Per adesso saltatelo, ci servirà alla fine.

#org @checkstagione
Saltate il setflag. Questa porzione di script si occupa di controllare quale valore è inserito in 0x300553F, luogo in cui il DNS salva il numero del mese corrente; il primo check è con 0x2, Febbraio, se il valore è minore o uguale (0x3 è il numero per l'operatore logico <=), allora ci manda alla porzione di codice @inverno.
Stessa cosa avviene per tutte le altre stazioni; se dopo tutti i check non siamo andati ancora da nessuna parte, allora siamo nei mesi superiori a B, cioè superiori a 11, cioè 12, cioè è Dicembre, cioè è inverno, quindi goto @inverno (lol).

#org @inverno
Una volta direzionati nella stagione in cui ci troviamo generiamo un numero random da 0 a F, (16 valori possibili) se il numero uscito è minore o uguale (0x3) di 0xA allora non succede nulla, se il numero è B si va a @nuvole, se il numero è C si va a @pioggia, se il numero è D si va a @fiocchi neve, se nessuna delle condizioni precedenti è soddisfatta si va a @neve.

Così per tutte le stagioni, tranne l'estate: all'inizio dello script @estate ho messo un check sull'ora corrente (non testato con il DNS by Andrea), se siamo nella fase del giorno 3 (0x2), che sarebbe il giorno, allora si viene reindirizzati a un'altra lista di possibili condizioni meteo in cui c'è anche il soleggiato.

#org @pioggia
In questi ultimi pezzi di codice vengono effettivamente attuate le condizioni meteo, ognuna delle quali setterà un valore a una variabile (che tra l'altro dovete modificare se siete su rosso fuoco o su rubino), ogni valore corrisponde a una condizione meteo .

Ora torniamo a #org @checkattuale
Questa parte di codice viene usata quando si passa da una mappa all'altra, e serve a dare una certa continuità alle condizioni meteo. Per prima cosa si estrae un numero a caso tra 0 e 4 (5 numeri possibili), se esce 0 (20% delle possibilità), si torna a @checkstagione che ripeterà tutto il codice spiegato sopra per decidere quale condizione meteo attivare in questa nuova mappa; se invece esce uno degli altri 4 numeri (80%) allora inizia il check per quale condizione meteo era attiva nella mappa precedente, indicata dal valore della variabile usata. Quindi una volta trovato il valore della variabile corrispondente, farà partire la stessa condizione meteo anche nella mappa successiva. In questo modo se uno fa avanti e indietro sul bordo di una mappa, il meteo non impazzirà, ma ci sarà una buona probabilità che rimanga lo stesso.

Pokéball Lista di tutte le percentuali meteo, se volete potete cambiarle, e vi chiedo anche di rispondere a questo thread con delle richieste di modifiche se pensate che non siano adeguate:

Inverno:
nulla - 70%
neve - 17%
pioggia - 12%

Primavera:
nulla - 70%
pioggia - 30%

Estate / Estate + ora di punta:
nulla - 70% / 60%
temporale - 20% / 10%
pioggia - 10% / 10%
soleggiato - 0% / 20%

Autunno:
nulla - 60%
pioggia - 40%

Fatemi sapere se funziona o se c'è qualcosa che non va, o in generale ditemi cosa ne pensate Smile

Vecchio script:

(Questo messaggio è stato modificato l'ultima volta il: 17-05-2020 04:41 PM da EddyHg80.)
08-07-2017 03:42 PM
Cerca Cita
 Mi piace ricevuti da: Explosion100 , Carl_J90 , E²VaN , Stygian , Flygon , Bonnox
E²VaN
Scemo chi Legge!
*******
Offline

Messaggi: 6,948
Registrato: 12-06-2014
Reputazione: 56
Mi Piace Ricevuti: 3527
PokéMoney: 11,962.75₱
Messaggio: #2
RE: Condizioni meteo random (basato sulle stagioni)
davvero interessante! bisognerebbe svilupparlo anche su ruby Pacman
09-07-2017 06:37 PM
Sito Web Cerca Cita
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 273
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 242
PokéMoney: 592.00₱
Messaggio: #3
RE: Condizioni meteo random (basato sulle stagioni)
(09-07-2017 06:37 PM)E²VaN Ha scritto:  davvero interessante! bisognerebbe svilupparlo anche su ruby Pacman

Ma in teoria basta cambiare le flag e dovrebbe funzionare, l'unico problema è trovare delle flag utilizzabili.

EDIT: e forse l'offset dei mesi del DNS, non sono sicuro sia lo stesso

(Questo messaggio è stato modificato l'ultima volta il: 09-07-2017 06:41 PM da EddyHg80.)
09-07-2017 06:39 PM
Cerca Cita
 Mi piace ricevuti da: E²VaN
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 273
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 242
PokéMoney: 592.00₱
Messaggio: #4
RE: Condizioni meteo random (basato sulle stagioni)
Ho modificato lo script, ora utilizza una sola variabile invece di 6 flag... in effetti era un po' uno spreco Big Grin
13-07-2017 05:57 PM
Cerca Cita
 Mi piace ricevuti da: Carl_J90
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 273
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 242
PokéMoney: 592.00₱
Messaggio: #5
RE: Condizioni meteo random (basato sulle stagioni)
Modifica allo script: ho rimosso le condizioni meteo delle nuvole, e dei fiocchi di neve; le prime davano problemi con molti tile delle mappe dande l'effetto di rispecchiamento sull'acqua anche sui fiori e sulle case, il secondo è abbastanza inutile e ho preferito lasciare solo la neve.
Inoltre ho modificato il check per vedere se si è nelle ore più calde in estate.
30-10-2017 03:45 PM
Cerca Cita
 Mi piace ricevuti da: Carl_J90
Rispondi 




Utente(i) che stanno guardando questa discussione: 1 Ospite(i)
Powered by MyBB, © 2002-2020 MyBB Group. Copyright © | 2020 Pokémon Hacking