Questo Forum utilizza i Cookies
Questo Forum fa uso di Cookies per memorizzare le informazioni di login se sei registrato o sulla tua ultima visita se non siete registrati. I Cookies sono piccoli documenti di testo memorizzati sul vostro computer; i Cookies impostati dal Forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza. I Cookies su questo forum servono anche a monitorare gli argomenti specifici che hai letto. Si prega di confermare se accettare o rifiutare i Cookies impostati.

Un cookie verrà memorizzato nel browser indipendentemente dalla scelta, per evitare che il Forum faccia nuovamente questa domanda. Sarete in grado di modificare le impostazioni dei cookies in qualsiasi momento tramite il link a piè di pagina

Rispondi 
[Script] [FireRed] script cattura obbligatoria con prestito pokemon
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #1
[FireRed] script cattura obbligatoria con prestito pokemon
Bene, mi sono voluto invischiare in uno script un po' complicato, questo è il fatto:
levelscript; ci ritroviamo in una zona d'erba con accanto il professore che blablabla e ci presta un suo pokemon per catturarne un altro (farmelo regalare subito mi pareva troppo facile Dodgy ) e una masterball (perché sprecare pokéball? Pacman). Nella lotta non si "dovrebbe" fuggire (non uso ASM, ho usato solo shinyzer, quindi di routine ci capisco niente, mi limito a semplici script), e l'incontro col pokemon è casuale (3 pokemon scelti: venonat, chinchou, taillow. Non chiedetemi perché quei 3 perché non lo so neanche io lol) e per ogni pokemon ci sono 1/19 possibilità che sia shiny.
Finito lo scontro il prof di nuovo blablabla (potrei chiamarlo Prof. D'Agostino Ow ) e si riprende il pokemon e *puff* sparisce.

Le difficoltà sono:
1) non poter fuggire senza asm. Per ovviare a questo problema vorrei mettere una flag, magari il men√Ļ pokemon in modo che se fuggo o uccido il pokemon o lui uccide il mio (beh alla fine non √® neanche mio ma shhh) mi fa ripetere la battaglia. Ma sto diventando scemo su dove inserirla. Perch√© quella flag all'inizio della battaglia c'√® (per uno script precedente, che per pigrizia non ho voluto togliere) ma la tolgo subito con un clearflag.
2) eliminare il pokemon prestato. Ho provato a usare uno script trovato qui nelle guide ma non so se è giusto.

per ora lo script è questo, mancano la var dello script, i pointer dei movimenti e dei messaggi, a quello poi ci penso dopo tranquillamente:

Sicuramente ci sarà qualcosa di sbagliato svitato
Grazie per chi ci perderà un po' di tempo Smile
(Questo messaggio è stato modificato l'ultima volta il: 03-11-2021 04:24 PM da ThePharaoh.)
03-11-2021 04:23 PM
Cerca Cita
PacoScarso
Massive Ego
******
Offline

Messaggi: 1,008
Registrato: 03-07-2014
Reputazione: 28
Mi Piace Ricevuti: 1431
PH Points: 5,185.25
Messaggio: #2
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Citazione:1) non poter fuggire senza asm. Per ovviare a questo problema vorrei mettere una flag, magari il men√Ļ pokemon in modo che se fuggo o uccido il pokemon o lui uccide il mio (beh alla fine non √® neanche mio ma shhh) mi fa ripetere la battaglia. Ma sto diventando scemo su dove inserirla. Perch√© quella flag all'inizio della battaglia c'√® (per uno script precedente, che per pigrizia non ho voluto togliere) ma la tolgo subito con un clearflag.

Non c'è un modo per non fuggire senza usare ASM, ma ti posso proporre questa soluzione.
1) Se il tuo Pokémon viene sconfitto, allora perdi i sensi come da prassi e rifai lo script, quindi l'unico "problema" sarebbe togliere la masterball non usata o non darne una seconda; per fare ciò basta mettere un checkitem a inizio script.
2) Se tu lo sconfiggi o fuggi, dopo la battaglia basta mettere un countpokemon; nel caso in cui tu abbia un solo Pokémon, allora ti fa ripetere la wildbattle, altrimenti lo script prosegue come volevi tu.

Citazione:2) eliminare il pokemon prestato. Ho provato a usare uno script trovato qui nelle guide ma non so se è giusto.

Ti serve necessariamente l'ASM, mi dispiace.

Our Projects (ongoing)

[Immagine: 6f02vq8.png]

Old Projects

[Immagine: scarso1.png] [Immagine: penumbra1.png]
[Immagine: ciano.png]

Awards
[Immagine: tumblr_npqfq38PKG1tp2yqno6_400.png]
03-11-2021 05:03 PM
Cerca Cita
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #3
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(03-11-2021 05:03 PM)PacoScarso Ha scritto:  
Citazione:1) non poter fuggire senza asm. Per ovviare a questo problema vorrei mettere una flag, magari il men√Ļ pokemon in modo che se fuggo o uccido il pokemon o lui uccide il mio (beh alla fine non √® neanche mio ma shhh) mi fa ripetere la battaglia. Ma sto diventando scemo su dove inserirla. Perch√© quella flag all'inizio della battaglia c'√® (per uno script precedente, che per pigrizia non ho voluto togliere) ma la tolgo subito con un clearflag.

Non c'è un modo per non fuggire senza usare ASM, ma ti posso proporre questa soluzione.
1) Se il tuo Pokémon viene sconfitto, allora perdi i sensi come da prassi e rifai lo script, quindi l'unico "problema" sarebbe togliere la masterball non usata o non darne una seconda; per fare ciò basta mettere un checkitem a inizio script.
2) Se tu lo sconfiggi o fuggi, dopo la battaglia basta mettere un countpokemon; nel caso in cui tu abbia un solo Pokémon, allora ti fa ripetere la wildbattle, altrimenti lo script prosegue come volevi tu.

Citazione:2) eliminare il pokemon prestato. Ho provato a usare uno script trovato qui nelle guide ma non so se è giusto.

Ti serve necessariamente l'ASM, mi dispiace.
1) se perdo però dove mi manda? o semplicemente mi fa ricominciare lo script come se non fosse successo nulla?
2) giusto, stavo diventando scemo cercando una soluzione che era semplice XD
3) quindi se non uso l'asm mi devo tenere il pokemon, il che renderebbe inutile tutto lo script Sad allora vediamo di capire qualcosa: questa guida fa al caso mio?
03-11-2021 05:44 PM
Cerca Cita
PacoScarso
Massive Ego
******
Offline

Messaggi: 1,008
Registrato: 03-07-2014
Reputazione: 28
Mi Piace Ricevuti: 1431
PH Points: 5,185.25
Messaggio: #4
RE: [FireRed] script cattura obbligatoria con prestito pokemon
1) Ti manda all'ultimo punto di respawn, quindi teoricamente a casa tua;
3) In teoria dovrebbe funzionare, ma non avendola usata fai qualche backup per sicurezza.
03-11-2021 05:48 PM
Cerca Cita
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #5
RE: [FireRed] script cattura obbligatoria con prestito pokemon
dovrei rimanere lì dove sono, altrimenti sarebbe "bruttino" uscire da casa e ritrovarsi nell'erba. Perderebbe il senso logico. Quindi mi sa che dovrò imparare l'asm, c'è poco da fare Rolleyes

Ok appena posso provo e ti faccio sapere

Grazie per le risposte Smile

@PacoScarso ho provato lo script senza ASM e... funziona dance
ovviamente mi riferisco all'eliminazione del pokemon specifico.

però avrei un altro problema.. il level script è praticamente nella prima città e mi si attiva subito appena inizio il gioco quando invece dovrebbe attivarsi in un secondo momento. come risolvo? ho provato a mettere un checkflag con la flag che si attiva quando uno sprite dello script sparisce, ma si attiva lo stesso lo script...
(Questo messaggio è stato modificato l'ultima volta il: 03-11-2021 06:38 PM da ThePharaoh.)
03-11-2021 05:55 PM
Cerca Cita
eMMe97
Professione: Genio
Offline

Messaggi: 1,721
Registrato: 09-10-2014
Mi Piace Ricevuti: 2155
PH Points: 2,529.00
Messaggio: #6
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Secondo me invece è fattibile, anche se veramente complicato…vediamo come fare.
Ovviamente lo script deve essere unico da assegnare al professore.

Io lo strutturerei così:
1) parli col prof e ti da una masterball ed un pokemon;
2a) fai dirigere il protagonista nell’erba alta tramite movesprite e parte una wildbattle random tra i 3 pokémon;
2b) qui arriva la parte interessante. Imposti l’id del pokémon in una var, per esempio la 4001, servirà per dopo. Quindi per ogni voce del random scrivi
setvat 0x4001 0x1 (in questo caso è bulbasaur)
wildbattle 0x4001 0x5 0x…etc
3) fine della battaglia parte lo special assegnato anche a snorlax che ti permette di determinare se il pokémon sia stato catturato, ucciso o sei fuggito (se perdi ovviamente ritorni a casa o centro pokémon e sei un pirla perché con una masterball non puoi perdere ?);
4) torni dal professore, se non hai catturato il pokémon ti dice che sei un pirla e ti dice di tornare nell’erba alta e lo script si ripete dal punto 2a con possibilità di trovare un diverso pokémon. Se invece lo hai catturato usi lo special per cancellare completamente la squadra, quindi viene tolto il pokémon del professore ed il tuo. Per ripristinare il tuo usi il comando givepokemon 0x4001 0x5 0x…etc
5) finisci lo script come meglio credi.

Un po‚Äô macchinosa e pi√Ļ brutta come soluzione, ma penso funzioni.

Edit: se è un level script che non parte subito devi mettere un valore tipo 0x1 alla var che usi per il level script. Finché non imposti quella var sul valore 0x1, lo script non verrà eseguito.
(Questo messaggio è stato modificato l'ultima volta il: 03-11-2021 09:46 PM da eMMe97.)
03-11-2021 09:44 PM
Cerca Cita
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #7
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(03-11-2021 09:44 PM)eMMe97 Ha scritto:  Secondo me invece √® fattibile, anche se veramente complicato‚Ķvediamo come fare.
Ovviamente lo script deve essere unico da assegnare al professore.

Io lo strutturerei così:
1) parli col prof e ti da una masterball ed un pokemon;
2a) fai dirigere il protagonista nell’erba alta tramite movesprite e parte una wildbattle random tra i 3 pokémon;
2b) qui arriva la parte interessante. Imposti l’id del pokémon in una var, per esempio la 4001, servirà per dopo. Quindi per ogni voce del random scrivi
setvat 0x4001 0x1 (in questo caso è bulbasaur)
wildbattle 0x4001 0x5 0x…etc
3) fine della battaglia parte lo special assegnato anche a snorlax che ti permette di determinare se il pokémon sia stato catturato, ucciso o sei fuggito (se perdi ovviamente ritorni a casa o centro pokémon e sei un pirla perché con una masterball non puoi perdere ?);
4) torni dal professore, se non hai catturato il pokémon ti dice che sei un pirla e ti dice di tornare nell’erba alta e lo script si ripete dal punto 2a con possibilità di trovare un diverso pokémon. Se invece lo hai catturato usi lo special per cancellare completamente la squadra, quindi viene tolto il pokémon del professore ed il tuo. Per ripristinare il tuo usi il comando givepokemon 0x4001 0x5 0x…etc
5) finisci lo script come meglio credi.

Un po‚Äô macchinosa e pi√Ļ brutta come soluzione, ma penso funzioni.

Edit: se è un level script che non parte subito devi mettere un valore tipo 0x1 alla var che usi per il level script. Finché non imposti quella var sul valore 0x1, lo script non verrà eseguito.
anche questa soluzione è interessante, io comunque l'ho strutturato così, con la cattura e la restituzione del pokemon funziona, gli altri casi ci stavo lavorando ma mi è successo casino con la rom (in pratica mi assegna lo stesso level script a due mappe diverse, devo aver fatto un po' di casino con il #removeall per resettare gli offset e riscrivere gli script, fortuna che ho un backup della rom).
se vuoi dargli un'occhiata la bozza dello script è così (la var ho letto che va settata anche nello script che rimanda a questo):
Non far caso ai messaggi, sono così solo per provare che funzioni tutto.
Certo che comunque io le cose facili mai Big Grin
P.S.: si è vero che con la masterball non puoi perdere, ma potresti sbagliare tasto, volontario o involontario, devo coprire tutti i casi Big Grin
(Questo messaggio è stato modificato l'ultima volta il: 04-11-2021 12:38 AM da ThePharaoh.)
04-11-2021 12:35 AM
Cerca Cita
eMMe97
Professione: Genio
Offline

Messaggi: 1,721
Registrato: 09-10-2014
Mi Piace Ricevuti: 2155
PH Points: 2,529.00
Messaggio: #8
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Oh mamma…un tuffo nel passato a quando iniziai a scriptare e facevo cose lunghissime e complicate come questa xD
Random va bene anche nel caso dello shiny ma basta tu metta solo il caso 0x0, poi puoi già trattare il pokémon non shiny. E poi…si può snellire parecchio lo script. Oggi pomeriggio ti faccio un po’ vedere come strutturarlo meglio, così inizi ad imparare per bene.

Posso dirti che l‚Äôerrore ‚Äúgrave‚ÄĚ √® nel mettere il setvar del level script all‚Äôinizio. Ti chiedi perch√©? Semplice: prova a rimanere senza pok√©mon. Vieni rimandato dalla mamma o ad un centro pok√©mon e quel level script non si attiver√† pi√Ļ. Se invece lo metti alla fine, finch√© lo script non si conclude se muori si ripeter√†, perch√© non verr√† letto il valore in questione. √ą un po‚Äô il bug della pepita alla fine del ponte di celestopoli. Se vieni sconfitto dal rocket, quando ci parli di nuovo ti regala un‚Äôaltra pepita, perch√© la flag la hanno impostata dopo la battaglia e non quando ti da lo strumento.
04-11-2021 08:46 AM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #9
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Aggiornamento: per gli script ripetuti in due mappe è un bug di AMap proprio con i level script, basta chiudere e riaprire Amap. Menomale.

Poi: sì, le varie var negli script li ho impostati alla fine infatti, e ho risolto anche il problema dello script subito dopo un altro. Poi ho fatto in modo che se si preme fuga (sarebbe meglio che mi dicesse "Non puoi scappare!" ma immagino che per questo serva l'ASM al 100%) riparte la lotta dopo un messaggio che dice devi per forza catturarlo. E anche se io metto ko il pokemon con uno special 0x0 che ricura prima di riaffrontare la battaglia (sarebbe bellino se la battaglia che viene ripetuta si lockasse sul pokemon precedentemente affrontato ma non so se si può fare, per ora comunque non mi lamento, anche se così uno se lo sa potrebbe fare fuga per ripetere la battaglia e trovare alla fine lo shiny). Avrei da sistemare due cose se non ricordo male: la prima è che non funziona il movesprite. Praticamente dopo che esco dal laboratorio del prof con un warp (messo nello script) mi devo ritrovare nell'erba con lui accanto, invece ci sono solo io. Magari devo usare movesprite2 oppure cambio questa parte e metto un hidden (che però sembrerebbe un po' buggato su FireRed e volevo evitare) e quindi uno showsprite col prof che mi porta nell'erba o lo faccio comparire direttamente lì. La seconda è nel caso in cui mi faccio battere dal pokemon selvatico. mi ritrovo a casa ma appena esco parte lo script davanti la porta. è bruttissima questa cosa. Ho visto che il gioco si basa sulla flag 0x258 per quando il player perde (almeno lo script originale della mamma fa un chekcflag su quella). Se risolvo anche questa è perfetto.

Sì lo script mi pare un po' troppo ripetitivo in effetti, la cosa dello 0x0 sul random ha senso in effetti, ma non ci penso magari lì sul momento Tongue
04-11-2021 03:07 PM
Cerca Cita
~Ketan
Ex-Staffer
*****
Offline

Messaggi: 382
Registrato: 12-06-2014
Reputazione: 6
Mi Piace Ricevuti: 402
PH Points: 882.00
Messaggio: #10
RE: [FireRed] script cattura obbligatoria con prestito pokemon
La butto lì: se nom hai intenzione di riciclare script dal gioco originale, invece di utilizzare il comando hidden di A-Map potresti utilizzare una delle flag già attivate di default ad inizio gioco ed assegnarla al npc in questione in modo da tenerlo invisibile, facendolo ricomparire quando ti serve con un clearflag (+showsprite se lo utilizzi nella stessa mappa in cui si trova l'Npc).

Qui puoi trovare delle flag che fanno al caso tuo!
https://www.pokemonhacking.it/showthread.php?tid=4948
04-11-2021 04:13 PM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #11
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 04:13 PM)~Ketan Ha scritto:  La butto l√¨: se nom hai intenzione di riciclare script dal gioco originale, invece di utilizzare il comando hidden di A-Map potresti utilizzare una delle flag gi√† attivate di default ad inizio gioco ed assegnarla al npc in questione in modo da tenerlo invisibile, facendolo ricomparire quando ti serve con un clearflag (+showsprite se lo utilizzi nella stessa mappa in cui si trova l'Npc).

Qui puoi trovare delle flag che fanno al caso tuo!
https://www.pokemonhacking.it/showthread.php?tid=4948

hai ragionissima è una buona idea questa, potrei utilizzare la stessa flag che ha il prof oak a pallet dance

@~Ketan fatto, adesso lo sprite si vede, anche se all'inizio rimangono delle macchie nere sotto gli sprite sia del prof sia del player, ma quando esco dalla battaglia si vedono bene. è che non riesco a fare in modo che lui sia già là quando mi teletrasporto col warp dello script che rimanda a questo. l'idea mia è questa:
sono in laboratorio, il prof mi dice di seguirlo ed esce, io lo seguo. quando usciamo fuori non siamo davanti alla porta del laboratorio ma siamo nel punto in cui dico io. però succede che quando mi teletrasporto mi ritrovo all'inizio io soltanto, poi con lo script appare anche lui, ma dovrebbe essere già lì. mi sta venendo in mente una cosa: dovrei usare uno script "on entering map" per fare in modo che sia già lì nel punto che vorrei forse?
(Questo messaggio è stato modificato l'ultima volta il: 04-11-2021 06:10 PM da ThePharaoh.)
04-11-2021 05:46 PM
Cerca Cita
eMMe97
Professione: Genio
Offline

Messaggi: 1,721
Registrato: 09-10-2014
Mi Piace Ricevuti: 2155
PH Points: 2,529.00
Messaggio: #12
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Allora, ho un po' tagliuzzato lo script, almeno vedi come farne uno molto pi√Ļ pulito. Non ci sarebbero problemi con questo, sprecheresti solo spazio, ma quando inizia a fare script alla flygon (cio√® mooooolto lunghi)...credimi, c'√® bisogno che siano puliti altrimenti ti ci ammazzi a met√†.

Unica perplessità sono le var 4001 e 8003 che non so se si resettano a fine wildbattle, nel caso dovresti usare una var diversa da 4001 (es. 4050) e nel caso della 8003 che a quanto ho capito serve per lo shiny dovresti fare un copyvar e "stivare" il risultato su un'altra var prima dello scontro e poi ricopiarlo dopo:
es.
copyvar 0x8003 0x4051
wildbattle ....
copyvar 0x4051 0x8003

in questo modo non hai pi√Ļ problemi.

Ho messo dei commenti nello script, li riconosci perché sono dopo i //

#dynamic 0x800000
#org @start
lockall
fadescreen 0x1
movesprite 0x2 0xC 0x2
applymovement 0xFF @sguardodx
waitmovement 0x0
fadescreen 0x0
msgbox @pokedex 0x6
setflag 0x829
msgbox @prestato 0x6
givepokemon 0xA 0x5 0x0 0x0 0x0 0x0
msgbox @masterball 0x6
additem 0x1 0x1
bufferitem 0x0 0x1
fanfare 0x101
msgbox @ottenuto 0x4
waitfanfare
closeonkeypress
msgbox @arriva 0x6
random 0x3
compare LASTRESULT 0x0
if 0x1 goto @venonat
compare LASTRESULT 0x1
if 0x1 goto @chinchou
goto @taillow //questo perché è ovvio che se non sono le prime due sarà per forza la terza, quindi non si ripete il controllo
end

#org @venonat
setvar 0x4001 0x30 //venonath
goto @dopo
end

#org @chinchou
setvar 0x4001 0xAA //chinchou
goto @dopo
end

#org @taillow
setvar 0x4001 0x114 //taillow
goto @dopo
end

#org @dopo
random 0x13
compare LASTRESULT 0x0
if 0x1 goto @Shiny
goto @normale
end

#org @normale
setvar 0x8003 0x0
goto @battaglia
end

#org @Shiny
setvar 0x8003 0x1
goto @battaglia
end

#org @battaglia
wildbattle 0x4001 0x5 0x0
countpokemon
compare LASTRESULT 0x1
if 0x1 goto @battaglia
msgbox @dopocattura 0x6
special 0xEF //elimina tutta la squadra
msgbox @ripreso 0x4
closeonkeypress
givepokemon 0x4001 0x5 0x0 0x0 0x0 0x0 //restituisce di nascosto il pokémon catturato
fadescreen 0x1
hidesprite 0x2
fadescreen 0x0
setflag 0x828 //allo sprite da nascondere dai questa flag, almeno risparmi la flag 200
setvar 0x4053 0x1
releaseall
end

#org @nulla
releaseall
end

#org @prestato
= Ti presto Caterpie

#org @pokedex
= Tieni Pokedex

#org @masterball
= Tieni ball

#org @ottenuto
= Ottieni [buffer1]

#org @arriva
= Eccolo

#org @dopocattura
= Ben fatto

#org @ripreso
= Riprendo Caterpie

#org @sguardodx
#raw 0x3 0xFE
(Questo messaggio è stato modificato l'ultima volta il: 04-11-2021 06:12 PM da eMMe97.)
04-11-2021 06:11 PM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #13
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 06:11 PM)eMMe97 Ha scritto:  Allora, ho un po' tagliuzzato lo script, almeno vedi come farne uno molto pi√Ļ pulito. Non ci sarebbero problemi con questo, sprecheresti solo spazio, ma quando inizia a fare script alla flygon (cio√® mooooolto lunghi)...credimi, c'√® bisogno che siano puliti altrimenti ti ci ammazzi a met√†.

Unica perplessità sono le var 4001 e 8003 che non so se si resettano a fine wildbattle, nel caso dovresti usare una var diversa da 4001 (es. 4050) e nel caso della 8003 che a quanto ho capito serve per lo shiny dovresti fare un copyvar e "stivare" il risultato su un'altra var prima dello scontro e poi ricopiarlo dopo:
es.
copyvar 0x8003 0x4051
wildbattle ....
copyvar 0x4051 0x8003

in questo modo non hai pi√Ļ problemi.

Ho messo dei commenti nello script, li riconosci perché sono dopo i //

#dynamic 0x800000
#org @start
lockall
fadescreen 0x1
movesprite 0x2 0xC 0x2
applymovement 0xFF @sguardodx
waitmovement 0x0
fadescreen 0x0
msgbox @pokedex 0x6
setflag 0x829
msgbox @prestato 0x6
givepokemon 0xA 0x5 0x0 0x0 0x0 0x0
msgbox @masterball 0x6
additem 0x1 0x1
bufferitem 0x0 0x1
fanfare 0x101
msgbox @ottenuto 0x4
waitfanfare
closeonkeypress
msgbox @arriva 0x6
random 0x3
compare LASTRESULT 0x0
if 0x1 goto @venonat
compare LASTRESULT 0x1
if 0x1 goto @chinchou
goto @taillow //questo perché è ovvio che se non sono le prime due sarà per forza la terza, quindi non si ripete il controllo
end

#org @venonat
setvar 0x4001 0x30 //venonath
goto @dopo
end

#org @chinchou
setvar 0x4001 0xAA //chinchou
goto @dopo
end

#org @taillow
setvar 0x4001 0x114 //taillow
goto @dopo
end

#org @dopo
random 0x13
compare LASTRESULT 0x0
if 0x1 goto @Shiny
goto @normale
end

#org @normale
setvar 0x8003 0x0
goto @battaglia
end

#org @Shiny
setvar 0x8003 0x1
goto @battaglia
end

#org @battaglia
wildbattle 0x4001 0x5 0x0
countpokemon
compare LASTRESULT 0x1
if 0x1 goto @battaglia
msgbox @dopocattura 0x6
special 0xEF //elimina tutta la squadra
msgbox @ripreso 0x4
closeonkeypress
givepokemon 0x4001 0x5 0x0 0x0 0x0 0x0 //restituisce di nascosto il pokémon catturato
fadescreen 0x1
hidesprite 0x2
fadescreen 0x0
setflag 0x828 //allo sprite da nascondere dai questa flag, almeno risparmi la flag 200
setvar 0x4053 0x1
releaseall
end

#org @nulla
releaseall
end

#org @prestato
= Ti presto Caterpie

#org @pokedex
= Tieni Pokedex

#org @masterball
= Tieni ball

#org @ottenuto
= Ottieni [buffer1]

#org @arriva
= Eccolo

#org @dopocattura
= Ben fatto

#org @ripreso
= Riprendo Caterpie

#org @sguardodx
#raw 0x3 0xFE

wow grazie sei stato gentile a farmi vedere come risparmiare tempo e spazio Smile non so ho letto ovunque che la var 4001 √® temporanea e si resetta col cambio mappa, magari non la user√≤ pi√Ļ in quella mappa. ma se uso la flag 0x828 sullo sprite che √® uguale anche alla flag del men√Ļ pokemon, non succede niente? l'idea di farmi ripassare il pokemon catturato sottobanco √® geniale comunque, settandolo con la var dovrebbe anche rimanere shiny nel caso lo si trova.
la var da settare alla fine (uso la var 4013 che a quanto ho capito non dovrebbe dare problemi) è settata 0x3 nello script perché è 2 su amap e appunto 0x2 nello script di quando sono in laboratorio per far partire lo script al momento giusto. era per fare chiarezza Big Grin
dopo lo provo subito, però rimarrebbe il problema dello sprite che dovrebbe essere già lì, ho appena letto che un level script 04 farebbe al caso mio. nel level script 04 imposto che il prof appare in quel punto e il palyer è già girato nella giusta direzione, mettendo anche lì la var settata a 0x2 per farlo partire al momento giusto. e quindi togliendo i movimenti iniziali dal level script 02 che stiamo trattando ora. dico bene?
04-11-2021 06:41 PM
Cerca Cita
eMMe97
Professione: Genio
Offline

Messaggi: 1,721
Registrato: 09-10-2014
Mi Piace Ricevuti: 2155
PH Points: 2,529.00
Messaggio: #14
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 06:41 PM)ThePharaoh Ha scritto:  ho letto ovunque che la var 4001 √® temporanea e si resetta col cambio mappa, magari non la user√≤ pi√Ļ in quella mappa.
Si le var 4000, 4001 ed altre successive, e le var 8000 ed altre successive si resettano al cambio mappa. Questo vuol dire che possono essere riutilizzate in pi√Ļ ambiti.
La mia perplessit√† √® che la wildbattle venga intesa come cambio mappa (non dovrebbe) e quindi riporterebbe quelle var al valore zero (in pratica ad ogni cambio mappa √® come se scrivessi, per esempio setvar 0x8000 0x0), ma pi√Ļ probabilmente che la var 8003 sia automaticamente riportata a 0 ddalla routine per il pok√©mon shiny dopo che ha reso brillante il pok√©mon. In questo caso ci sarebbero problemi nello script sia per l'assegnazione del pok√©mon, perch√© resettando la var 4001 ti verrebbe dato il pok√©mon 0, che non esiste, sia per lo shiny, perch√© la var 8003 tornerebbe 0 e quindi sempre non shiny. Per ovviare a questo puoi usare al posto della var 4001 una var non temporanea, cio√® che anche al cambio mappa conserva il valore (es. 4050 √® una var non temporanea), mentre nel secondo caso, dato che bisogna per forza utilizzare la var 8003, si salva quel valore assegnato anche in una var non temporanea, per poi rimettere il valore con l'esempio del copyvar che ti ho scritto prima.


(04-11-2021 06:41 PM)ThePharaoh Ha scritto:  ma se uso la flag 0x828 sullo sprite che √® uguale anche alla flag del men√Ļ pokemon, non succede niente?
Allora te immagina la flag come un interruttore acceso/spento. Se √® accesa succedono varie cose, se spenta altre. A questo interruttore si possono collegare pi√Ļ fili che ovviamente risentiranno tutti del acceso/spento. Se collego 8 luci ad un interruttore ovviamente tutte ed 8 dipenderanno da quello stesso interruttore.
Nel nostro caso "collego" la flag 828 sia al menu pokémon (cioè questo in realtà lo fa chi ha creato il gioco), che allo sprite del professore. Quindi quando la flag è a zero (spenta) non vedo la scritta Pokémon nel menu, ma vedo il personaggio del professore. Quando la setto (setflag 0x1), attivo la voce del menu ma nascondo il professore.
Per assurdo potrei fare uno script per utilizzate quella flag per il menu pokémon, nascondere il professore, togliere l'ow di un altro omino che bloccava la via finché non avevo un pokémon, e fare molte altre azioni. Ovviamente TUTTE queste azioni cambiano a seconda che la flag sia settata oppure no.

(04-11-2021 06:41 PM)ThePharaoh Ha scritto:  per√≤ rimarrebbe il problema dello sprite che dovrebbe essere gi√† l√¨
Non puoi spostare un ow da una mappa all'altra, quindi nel gioco di rosso fuoco, quando oak ti ferma che entri nell'erba alta e ti porta al laboratorio per poi assegnarti il pokémon, abbiamo in realtà 2 oak, uno a biancavilla ed uno nel laboratorio, non è che quello di biancavilla che entra dentro la porta poi lo ritrovi nel laboratorio, è solo un'illusione, sono due ow diversi e distinti.
Te devi mettere un ow del professore già lì. Se vuoi che non si veda puoi usare l'hidden, (che non capisco perché diciate sia buggato...se utilizzate l'hidden 0xC ovvio che non funziona, serve ad altro, dovete usare l'hidden 0x3F e funziona benissimo), oppure allo sprite dai la flag 2B oppure 2C o altre che sono già settate ad inizio partita, quindi dovrai usare un clearflag 0x2B ed uno showsprite per farlo apparire. Se non sbaglio nel warp puoi impostare il warp da cui esce il player, quindi si gira verso la direzione giusta.
04-11-2021 09:09 PM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #15
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 09:09 PM)eMMe97 Ha scritto:  .

bene pensavo che si sarebbe fatto casino impostando flag che erano già impostate per altre cose, ottimo a sapersi Big Grin

si l'ow è già fuori dal laboratorio, ovviamente, e con la soluzione di ketan riesco poi a vederlo anche se come ho già detto nel momento in cui appare c'è un'ombra nera sotto che dopo la battle scompare e si vede bene, magari faccio uno screen per far vedere. a proposito piccolo ot: che programma devo usare per fare un video dell'emulatore come hanno alcuni utenti in firma? così magari faccio vedere come va e si potrebbe capire meglio.

come faccio a capire l'hidden qual è? ce ne sono 3, uno a quanto ho capito viene usato dai ninja nella cenere, ne rimangono 2 dove paco mi ha detto di utilizzare il primo dopo aver cambiato anche un pezzo di codice. lo avevo già utilizzato l'hidden in uno sprite precedente e l'ow rimaneva tagliato come avevo fatto notare.

Così è come viene, l'immagine a sx è prima della wildbattle, quella a dx subito dopo la wildbattle:
(Questo messaggio è stato modificato l'ultima volta il: 04-11-2021 10:48 PM da ThePharaoh.)
04-11-2021 10:16 PM
Cerca Cita
~Ketan
Ex-Staffer
*****
Offline

Messaggi: 382
Registrato: 12-06-2014
Reputazione: 6
Mi Piace Ricevuti: 402
PH Points: 882.00
Messaggio: #16
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 10:16 PM)ThePharaoh Ha scritto:  
(04-11-2021 09:09 PM)eMMe97 Ha scritto:  .

bene pensavo che si sarebbe fatto casino impostando flag che erano già impostate per altre cose, ottimo a sapersi Big Grin

si l'ow è già fuori dal laboratorio, ovviamente, e con la soluzione di ketan riesco poi a vederlo anche se come ho già detto nel momento in cui appare c'è un'ombra nera sotto che dopo la battle scompare e si vede bene, magari faccio uno screen per far vedere. a proposito piccolo ot: che programma devo usare per fare un video dell'emulatore come hanno alcuni utenti in firma? così magari faccio vedere come va e si potrebbe capire meglio.

come faccio a capire l'hidden qual è? ce ne sono 3, uno a quanto ho capito viene usato dai ninja nella cenere, ne rimangono 2 dove paco mi ha detto di utilizzare il primo dopo aver cambiato anche un pezzo di codice. lo avevo già utilizzato l'hidden in uno sprite precedente e l'ow rimaneva tagliato come avevo fatto notare.

Così è come viene, l'immagine a sx è prima della wildbattle, quella a dx subito dopo la wildbattle:

Secondo me è il comando hidden che fa casino: prova ad utilizzare solo una delle flag già attivate di cui ti avevo parlato, assegnala all'Npc e cambia tipo di movimento a quest'ultimo in qualcos'altro rispetto ad Hidden.
Dopodiché ti basterà utilizzare un clearflag nello script prima del teletrasporto nella nuova mappa, in questa maniera l'Npc dovrebbe essere già visibile senza cose strane!

[Immagine: tumblr_nixaukeLgb1rhtvijo1_500.gif]
[Immagine: __That_Is_Tengen_Toppa____by_VirgoT.gif]
[Immagine: banner1.png]
04-11-2021 11:03 PM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
ThePharaoh
Nuovo Arrivato
*

Messaggi: 42
Registrato: 13-09-2021
Reputazione: 0
Mi Piace Ricevuti: 9
PH Points: 146.00
Messaggio: #17
RE: [FireRed] script cattura obbligatoria con prestito pokemon
(04-11-2021 11:03 PM)~Ketan Ha scritto:  Secondo me √® il comando hidden che fa casino: prova ad utilizzare solo una delle flag gi√† attivate di cui ti avevo parlato, assegnala all'Npc e cambia tipo di movimento a quest'ultimo in qualcos'altro rispetto ad Hidden.
Dopodiché ti basterà utilizzare un clearflag nello script prima del teletrasporto nella nuova mappa, in questa maniera l'Npc dovrebbe essere già visibile senza cose strane!
ehm... questo è senza l'hidden veramente, è questa la cosa strana. ho usato la soluzione che mi hai dato, usare la flag già esistente dell'ow mettendo clearflag e showsprite all'inizio ma l'ow non è hidden. magari provo a metterlo hidden vediamo che succede.

aspetta ho riletto meglio. il clearflag dovrei metterlo nello script prima? cavolo hai ragione. provo subito.
Finalmente, lo sprite del prof ora è a posto e senza cose strane, devo aggiustare quello del player però. Nel senso che quando c'è il cambio mappa vorrei che avesse la faccia rivolta subito verso sinistra e non verso il basso. ho letto prima che emme97 ha detto che con un warp dovrebbe essere rivolto nella direzione giusta, come devo fare?
(Questo messaggio è stato modificato l'ultima volta il: 04-11-2021 11:37 PM da ThePharaoh.)
04-11-2021 11:08 PM
Cerca Cita
eMMe97
Professione: Genio
Offline

Messaggi: 1,721
Registrato: 09-10-2014
Mi Piace Ricevuti: 2155
PH Points: 2,529.00
Messaggio: #18
RE: [FireRed] script cattura obbligatoria con prestito pokemon
Secondo me il problema √® che fai andare in tilt il sistema palette degli sprite, infatti quel ‚Äúnero‚ÄĚ √® lo sprite dei fili d‚Äôerba piegati che coprono gli ow del professore e del player. Dopo la wildbattle, con il ricaricamento delle palette, il problema scompare. Come fare allora? Molto semplice, posizioni gli ow fuori e li muovi dopo. La cosa viene anche pi√Ļ carina, magari il prof pu√≤ dire:
‚Äú[player] fai molta attenzione adesso! Per prendere il tuo primo pok√©mon dobbiamo entrare nell‚Äôerba alta, ma non puoi farlo senza un aiuto ed uno strumento adatto per la cattura. Ti prester√≤ momentaneamente il mio caterpie e ti regaler√≤ questa ball.‚ÄĚ
Dopo aver ricevuto il pokémon e la ball…
‚ÄúBene, adesso hai tutto ci√≤ che ti serve, possiamo iniziare!‚ÄĚ
E qui continua lo script come prima.
04-11-2021 11:38 PM
Cerca Cita
 Mi piace ricevuti da: ThePharaoh
Rispondi 




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