04-11-2021, 07:41 PM
(04-11-2021, 07: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

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

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?