|
~ Tutorial per chi ha iniziato ad hackare da nemmeno un mese.
Comandi Base
- Le "Flag"
Le Flag si possono immaginare come gli interruttori della luce : si possono accendere come spegnere e un'evento o più può venire eseguito se uno delle condizioni specificate prima sono attuate . Vediamo come "accendere" una flag . Inizio col dire che ogni "interruttore" ha una sua "etichetta" , cioè un numero prefissato . Quindi in ogni comando si deve specificare su quale flag attuare l'azione . Il comando per attivare una flag è :
setflag 0x[numero flag]
Il numero flag è un numero compreso tra 1000 e FFFF ( Si potrebbero usare anche le flag sotto 1000 , ma alcune di esse attivano eventi del gioco ( Es. la flag 828 attiva il menu POKéMON )). Il comando per disattivare una flag è :
clearflag 0x[numero flag]
Ma il comando più importante dell'uso delle flag è checkflag , che permette di verificare se un flag è attivata oppure no . Funziona così :
checkflag 0x[numero flag]
if 1 goto @pointer2
Come funziona ? Allora checkflag è il comando che fà fare il tutto . Il secondo comando , if , svolge la funzione di verificare una condizione e mandare l'eseguito ad un'altro pointer se la condizione è avverata . In italiano si può trascrivere così : CONTROLLA flag [numero flag] ; SE vero(1) VAI A @pointer2 . Logicamente @pointer2 deve esistere , altrimenti il compilatore vi darà errore . Quindi , se vogliamo che una persona vi parli una volta e poi dica sempre un'altra cosa , questo è lo script :
#dynamic 0x800000
#org @pointer1
lock
faceplayer
checkflag 0x1002 'potete sostituire 1002 con un'altra qualunque flag
if 1 goto @pointer2
setflag 0x1002
loadpointer 0x0 @messaggio1
boxset 6
release
end
#org @pointer2
loadpointer 0x0 @messaggio2
boxset 6
release
end
#org @messaggio1
= Primo messaggio.
#org @messaggio2
= Secondo messaggio.
Spero che avrete capito ;) Naturalmente , come ogni comando anche i comandi delle flag possono essere espressi in Hex . Ecco la loro sintassi :
~ setflag
Si trascrive come script in questo modo :
setflag 0x1001
~ clearflag
Si trascrive come script in questo modo :
clearflag 0x1001
~ checkflag
Si trascrive come script in questo modo :
checkflag 0x1001
- Givepokemon
Givepokemon è il comando per dare al player un POKéMON . La sua sintassi è la seguente :
givepokemon [numero POKéMON] [livello] [oggetto tenuto] 0 0 0
Quindi se voglio dare al player un bulbasaur al livello 10 farò :
givepokemon 1 10 0 0 0 0
Alcuni avranno notato i 3 zeri alla fine del comando . Essi sono dei "filler" , non ho ancora capito bene a cosa servono , ma per informazione , i primi due zeri sono Double Word , invece l'ultimo è un solo byte .
Questo comando però non fa attivare il menu POKéMON dal menu start . Per fare ciò basta attivare una flag specifica ( 800 per Ruby , 828 per Red Fire e 860 per Emerald ) . In questo contesto non centra minimamente , ma anche per il POKéDEX serve settare una flag ( 801 per Ruby , 829 per Red Fire e 861 per Emerald ) . Quindi lo script che ti dà un POKéMON , il POKéDEX e fa apparire il menu è :
#dynamic 0x800000
#org @ciao
lock
faceplayer
loadpointer 0x0 @msg
boxset 6
givepokemon 1 5 0 0 0 0
setflag 0x828
setflag 0x829
release
end
#org @msg
= Ecco un POKéMON .
Inoltre , la sintassi in Hex del comando givepokemon è :
| 79 |
01 |
00 |
05 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
Che in script sarebbe :
givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
oppure con gli zeri non significativi :
givepokemon 0x0001 0x05 0x0000 0x00000000 0x00000000 0x00
© da Nyste e Pokehacking . Vietata la copia senza il consenso dell'autore e del webmaster del sito .
|