-
…Splash.
User deleted
Salve a tutti Hackers and oggi siamo qui in a new guida by ...Splash
Volevo farvi vedere come soprannominare un Pokemon appena dato e far sì che il Pokemon dato venga letto nel Pokèdex.
Vediamo prima lo script completo.CODICE#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x200
if 0x1 goto @ricevuto
msgbox @msg1 0x5
compare 0x800D 0x1
if 0x1 goto @si
msgbox @msg2 0x6
release
end
#org @si
countpokemon
compare 0x800D 0x6
if 0x1 goto @pieno
copyvar 0x8004 0x800D
givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @msg3 0x4
waitfanfare
closeonkeypress
msgbox @msg4 0x5
compare 0x800D 0x1
if 0x1 call @soprannome
setflag 0x200
release
end
#org @ricevuto
msgbox @msg5 0x6
release
end
#org @pieno
msgbox @msg6 0x6
release
end
#org @soprannome
special 0x9E
return
#org @msg1
= Vuoi il Pokemon?
#org @msg2
= Nope
#org @msg3
= [PLAYER] riceve il Pokemon
#org @msg4
= Vuoi dare un soprannome al pokemon?
#org @msg5
= Hai gia il pokemon
#org @msg6
= Non hai spazio nella squadra.
Il seguente script, non è altro che la domanda di donazione di un Pokèmon, calcolo se nella squadra c'è spazio per ricevere quel Pokèmon e soprannome del Pokemon.
Analizziamo questo script.
countpokemon
compare 0x800D 0x6
if 0x1 goto @pieno
Allora questo script conta quanti pokemon abbiamo in squadra e lo compara (compare 0x800D (ultimo risultato ottenuto) 0x6 (numero di Pokemon in squadra massimi).
In poche parole compara l'ultimo risultato ottenuto con il numero 6 (0x6).
Quindi andiamo a if 0x1 goto @pieno.
Come forse già saprai questo comando fa si che se è soddisfatta la condizione sopra posta (in questo caso compare...) lo script andrà al puntatore pieno.
0x1 infatti, come forse saprai, vuol dire sì oppure uguale a in questo caso uguale a.
Ovviamene possiamo utilizzare il countpokemon anche in altri modi, per esempio cambiando 0x6 con 0x1 e @pieno con @continua...hai presente le lotte nel parco lotta? Oppure la gara pigliamosche? Funziona più o meno con questo comando.
(se avremo un pokemon potremo continuare, se ne abbiamo di più no).
Bene analizziamo oraCODICEfanfare 0x13E
msgbox @msg3 0x3
waitfanfare
closeonkeypress
Qui le cose si complicano un pochettino...ma perchè?
Vediamolo insieme.
Fanfare è il comando che fa partire la musica (con 0x... si indica la musica che si vuole far partire in esadecimale) e fin qui ci siamo, funziona come un applymovement e necessita quindi dopo il waitfanfare.
in msgbox @msg3 andremo a mettere il "hai ricevuto pokemon" mentre la musica sta ancora suonando, motivo per il quale mettiamo waitfanfare dopo il msgbox e abbiamo utilizzato lo 0x4 come tipologia di messaggio (è quello che sta aperto durante lo script) per poi con il closeonkeypress farlo diventare un normale messaggio.
Facciamo tutto questo quando per esempio vogliamo dare tanti Pokemon/strumenti nello stesso script senza sovrapporre i suoni...comunque sei libero di non metterlo nello script, ma è carino usarloCODICEcountpokemon
----
copyvar 0x8004 0x800D
givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
---
msgbox @msg 0x5
compare 0x800D 0x1
if 0x1 call @soprannome
#org @soprannome
special 0x9E
return
copyvar 0x8004 0x800D
Allora! Questa cosuccia qui è un po' complessa, perchè effettivamente...lo è.
Copyvar copia il risultato appena ottenuto (0x800D) nella variabile 0x8004.
Per far questo si ricorre alle variabili che immagino che tu sappia cosa siano, nel caso tu non lo sappia ti basti sapere che sono dei numeri scritti nella ram che rimangono sempre immutati qualsiasi cosa facciamo.
Questo comando è legato a countpokemon in quanto con countpokemon abbiamo "visto" se c'è spazio nella nostra squadra, se c'è si copia il risultato appena ottenuto e lo si scrive nella variabile 0x8004 (va sempre usata questa, non chiedermi il perchè...non lo so, ma basta sapere che è così ).
Dopo aver dato il pokemon con il comune givepokemon con il msg4 0x5 che ci chiederà (grazie al msg 0x5) se vogliamo dare un soprannome al Pokemon ottenuto, se risponderemo di no finirà lo script se invece risponderemo sì andremo allo special 0x9E che fa sì che appaia il menù di rinomina del pokemon ottenuto.
Fatto questo lo script finirà esso sfrutterà il valore 0x8004 per rinominare il pokemon appena ottenuto.
Return ci riporterà alla fine dello script cioè al dirci, non hai spazio in squadra.
Ecco, questo era come soprannominare e dare un Pokemon...
Ora vedremo come far vedere che abbiamo visto un Pokemon...questo può essere legato a qualsiasi givepokemon, oppure se mostriamo l'immagine di un pokemon (stile safari di rosso fuoco o casa di Bill) e vogliamo far vedere sul Pokedex di aver visto (che giuoco di parole) il Pokemon.
E' un semplice comando.CODICEsetvar 0x8004 0x?
special 0x163
Al posto di 0x? mettiamo il numero del Pokemon in Hex che vogliamo mostrare come visto nel Pokedex.
Lo special 0x163 farà si che ciò accada.
Semplice no?
Bene la guida è finita e se avete domande fatele pure!
Buona giornata.
Edited by WhiskyDog - 14/1/2016, 22:49. -
.
Grazie anche per questa guida! :-) . -
Andryyyuu.
User deleted
Questo si trova anche nella mi aula scripting .