Rispondi 
[Gba] [Guida] Pokecheck script (Pokecount)
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 238
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 186
PokéMoney: 531.00₱
Messaggio: #1
[Guida] Pokecheck script (Pokecount)
Ciao a tutti, oggi vi mostro come controllare se si possiede un pokemon in squadra con uno script.
(In rosso fuoco potete usare lo "special 0x17C" se non vi serve "contare" ma solo sapere se avete un pokemon in squadra)

Tool necessari:
-Free Space Finder
-Thumb Editor & Assembler (<- in fondo a quella discussione trovate il download)
-XSE


Pokéball Prima parte: espansione della rom (solo per smeraldo (I) e se non l'avete già fatto in precedenza)
-Aprire XSE
-File->Apri->scegliete la vostra rom
-Strumenti->ridimensionatore rom
-assicuratevi che sia selezionato "FF" vicino a byte spazio libero e cliccate espandi

Pokéball Seconda fase: inseriamo una ASM
-Aprite Free Space Finder
-Aprite la vostra rom e cercate per 80 bytes, facendo anche "cerca dall'offset: E3D0B0" (per smeraldo)
-Trovate un offset che termina per 0, 4, 8 o C e mettetelo da parte

-Aprite Thumb editor
-Copiate il codice seguente nello spazio bianco:

Smeraldo (I)

Smeraldo (U):

Rosso Fuoco (I):

Rosso Fuoco (U):
-Andate nel tab "compile" e selezionate "insert into rom"
-inserite l'offset trovato sopra e cliccate compile


Pokéball Terza parte: utilizzarlo in uno script

Codice:
#org @start
lock
faceplayer
bufferpokemon 0x0 0x6             //salva il nome del pokemon 0x6 (Charizard) nel [buffer1]
setvar 0x8004 0x6                 // Potete cambiare 0x6 con il numero del pokemon che volete (lista sotto)
callasm 0x08XXXXXX                // Al posto delle X dovete mettere l'offset trovato sopra + 1
compare LASTRESULT 0x1            // la routine conta quanti charizard hai nella squadra, in questo comando confrontiamo il risultato (che viene salvato in LASTRESULT, con 1)
if B_>= goto @some                // se il conteggio è maggiore o uguale andiamo @some
msgbox @m1 MSG_KEEPOPEN           // se non ne hai lo script va avanti
release
end

#org @some
buffernumber 0x1 LASTRESULT       //salva il numero di charizard che hai nel [buffer2]
msgbox @m2 MSG_KEEPOPEN
release
end

#org @m1
= Non hai nessun [buffer1]!

#org @m2
= Wow! Hai [buffer2] [buffer1]!


In XSE potete fare #include stdpoke.rbh a inizio script, in modo che potete scrivere PKMN_CHARIZARD al posto di 0x6


Ecco la lista dei valori dei pokemon:


Se avete problemi con Thumb editor & assembler potete provare a inserire la routine già compilata:



Si ringrazia Lost Heart/colors utente di pokecommunity per la routine e gli offsets per rosso fuoco e smeraldo (U)

(Questo messaggio è stato modificato l'ultima volta il: 20-08-2019 06:34 PM da EddyHg80.)
22-01-2017 12:52 AM
Cerca Cita
 Mi piace ricevuti da: Carl_J90 , Flygon , ...Splash
whitebear92
Esperto
***
Offline

Messaggi: 201
Registrato: 06-01-2017
Reputazione: 0
Mi Piace Ricevuti: 10
PokéMoney: 504.00₱
Messaggio: #2
RE: [Guida] Pokecheck script (Pokecount)
ciao @EddyHg80 io non ho ben capito cosa faccia (Pokecheck)
cosa intendi per ( controllare se si possiede un pokemon in squadra)??
20-10-2017 01:34 PM
Cerca Cita
Шахтар
Il mio nick si legge Shakhtar!
*****
Offline

Messaggi: 601
Registrato: 12-05-2017
Reputazione: 9
Mi Piace Ricevuti: 328
PokéMoney: 1,190.25₱
Messaggio: #3
RE: [Guida] Pokecheck script (Pokecount)
(20-10-2017 01:34 PM)whitebear92 Ha scritto:  ciao @EddyHg80 io non ho ben capito cosa faccia (Pokecheck)
cosa intendi per ( controllare se si possiede un pokemon in squadra)??

Semplice, controlla se si ha un Pokémon in squadra.

Se hai almeno un Pokémon produrrà lo script che richiede la presenza di un Pokémon, se non si soddisfa questa richiesta avverrà qualcos'altro (quindi è un "if")
20-10-2017 02:10 PM
Cerca Cita
whitebear92
Esperto
***
Offline

Messaggi: 201
Registrato: 06-01-2017
Reputazione: 0
Mi Piace Ricevuti: 10
PokéMoney: 504.00₱
Messaggio: #4
RE: [Guida] Pokecheck script (Pokecount)
aaaa ecco grazie quasi quasi lo provo so curioso Smile
20-10-2017 04:29 PM
Cerca Cita
Manuxn
Nabbo Selvatico
*
Offline

Messaggi: 23
Registrato: 25-06-2019
Reputazione: 1
Mi Piace Ricevuti: 19
PokéMoney: 135.00₱
Messaggio: #5
RE: [Guida] Pokecheck script (Pokecount)
Eddy visto che manca solo lei, ti lascio il porting della routine per Rosso Fuoco (I):

Codice:
.text
.align 2
.thumb
.thumb_func
.global CountPartyPokemonSpecies

main:
    push {r0-r7, lr}
    mov r5, #0x0 @ This means fail
    ldr r6, var
    ldr r7, party_amount
    ldrb r4, [r7] @ Get Pokemon count from r7
    cmp r4, #0x0
    beq exit
    ldrh r3, [r6] @ Get the species to check
    cmp r3, #0x0
    beq exit @ Don't allow Missingno. This doesn't limit the species from going up, though.
    mov r7, #0x0
loop:
    ldr r0, first_pokemon @ Offset of first Pokemon
    mov r1, #0x64 @ Length of Pokemon RAM data
    mul r1, r1, r7 @ r7 holds current index
    add r0, r0, r1
    bl decrypt_poke_species @ Get this specific species.
    mov r9, r0
    pop {r0-r7}
    cmp r9, r3
    bne next
    add r5, r5, #0x1 @ Increase the counter
next:
    add r7, r7, #0x1 @ Increase party index
    cmp r7, r4 @ And compare against the number in the party
    blo loop @ I could use a bls here?
exit:
    str r5, [r6, #0x10] @ Store the result (r5) in r6 (the var -- 0x800D)
    pop {r0-r7, pc} @ Return

decrypt_poke_species:
    push {r0-r7}
    mov r1, #0xB @ This is the index for the Pokemon species.
    ldr r2, decrypt_poke @ Call the Pokemon decryption code
    bx r2

.align 2
party_amount:
    .word 0x02024029
first_pokemon:
    .word 0x02024284
var: @ Got this beauty from HackMew.
    .word 0x020270B8 + (0x8004 * 2)
decrypt_poke:
    .word 0x0803FAD5


Versione compilata:

Codice:
FF B5 00 25 10 4E 0E 4F 3C 78 00 2C 11 D0 33 88 00 2B 0E D0 00 27 0B 48 64 21 79 43 40 18 00 F0 0A F8 81 46 FF BC 99 45 00 D1 01 35 01 37 A7 42 F1 D3 35 61 FF BD FF B4 0B 21 04 4A 10 47 C0 46 29 40 02 02 84 42 02 02 C0 70 03 02 D5 FA 03 08
20-08-2019 05:20 PM
Cerca Cita
EddyHg80
Essere distratto è il mio forte
***
Offline

Messaggi: 238
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 186
PokéMoney: 531.00₱
Messaggio: #6
RE: [Guida] Pokecheck script (Pokecount)
(20-08-2019 05:20 PM)Manuxn Ha scritto:  Eddy visto che manca solo lei, ti lascio il porting della routine per Rosso Fuoco (I):

Codice:
.text
.align 2
.thumb
.thumb_func
.global CountPartyPokemonSpecies

main:
    push {r0-r7, lr}
    mov r5, #0x0 @ This means fail
    ldr r6, var
    ldr r7, party_amount
    ldrb r4, [r7] @ Get Pokemon count from r7
    cmp r4, #0x0
    beq exit
    ldrh r3, [r6] @ Get the species to check
    cmp r3, #0x0
    beq exit @ Don't allow Missingno. This doesn't limit the species from going up, though.
    mov r7, #0x0
loop:
    ldr r0, first_pokemon @ Offset of first Pokemon
    mov r1, #0x64 @ Length of Pokemon RAM data
    mul r1, r1, r7 @ r7 holds current index
    add r0, r0, r1
    bl decrypt_poke_species @ Get this specific species.
    mov r9, r0
    pop {r0-r7}
    cmp r9, r3
    bne next
    add r5, r5, #0x1 @ Increase the counter
next:
    add r7, r7, #0x1 @ Increase party index
    cmp r7, r4 @ And compare against the number in the party
    blo loop @ I could use a bls here?
exit:
    str r5, [r6, #0x10] @ Store the result (r5) in r6 (the var -- 0x800D)
    pop {r0-r7, pc} @ Return

decrypt_poke_species:
    push {r0-r7}
    mov r1, #0xB @ This is the index for the Pokemon species.
    ldr r2, decrypt_poke @ Call the Pokemon decryption code
    bx r2

.align 2
party_amount:
    .word 0x02024029
first_pokemon:
    .word 0x02024284
var: @ Got this beauty from HackMew.
    .word 0x020270B8 + (0x8004 * 2)
decrypt_poke:
    .word 0x0803FAD5


Versione compilata:

Codice:
FF B5 00 25 10 4E 0E 4F 3C 78 00 2C 11 D0 33 88 00 2B 0E D0 00 27 0B 48 64 21 79 43 40 18 00 F0 0A F8 81 46 FF BC 99 45 00 D1 01 35 01 37 A7 42 F1 D3 35 61 FF BD FF B4 0B 21 04 4A 10 47 C0 46 29 40 02 02 84 42 02 02 C0 70 03 02 D5 FA 03 08

Grazie mille! Ma sbaglio o in rosso fuoco ci sono metodi più semplici? tipo uno special da usare in uno script

EDIT: neanche ricordavo di aver messo la versione per rosso fuoco U, aggiungo anche questa ahaha
(Questo messaggio è stato modificato l'ultima volta il: 20-08-2019 06:30 PM da EddyHg80.)
20-08-2019 06:28 PM
Cerca Cita
 Mi piace ricevuti da: Manuxn
Rispondi 




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