Rispondi 
[Gb] Cottage - ASM per Oggetti
80C
['eɪtɪ sɪ:]
******
Offline

Messaggi: 1,855
Registrato: 12-06-2014
Reputazione: 27
Mi Piace Ricevuti: 1171
PokéMoney: 2,692.51₱
Messaggio: #1
Cottage - ASM per Oggetti
Vedasi l'Item Hacking Tutorial e la risposta a quel thread per l'utilizzo in Disassembly di tale conoscenza.

Ripropongo qui la mia ASM personalizzata per l'utilizzo dell'oggetto Cottage, uno strumento la cui funzione è quella di ripristinare/curare la squadra Pokémon alla pari di un centro Pokémon unicamente se utilizzato in certi ambienti. L'idea è in buona parte derivata da Final Fantasy I e Final Fantasy II per il NES (cosiccome Pokémon stesso Cool ).

Per far funzionare questo PokémonCenter portatile semplicemente ci si affida ad un Predef, ossia il Predef 0x07, la funzione utilizzata per curare la squadra.
Ricordo che il codice qui riportato serve da esempio per una possibile applicazione in Disassemblaggio, e che è possibile che esso richieda delle modifiche di formattazione (specie per le Costanti) in maniera che possa funzionare su disassembly.

Vediamo il codice (in parte semplificato per renderlo utilizzabile in Red/Blue/Yellow) con le glosse per farci capire (perdonate l'eventuale inglese maccheronico):
Codice:
ItemUseCottage: ; 0xc760
.CheckBattle
    ld a,[W_ISINBATTLE]    ; d057
    and a
    jr nz,.ItemUseNotTime    ;can't be used in battle
.CheckWalkingState
    ld a,[$d700]
    and a            ; cp a,00 - walking
    jr nz,.ItemUseNotTime    ; can't be used while biking or surfing
.CheckTileset
    ld a,[W_CURMAPTILESET]    ; d367
    and a            ; cp a,00 - outside tileset
    jr z,.CheckMaps
    cp $03            ; forest tileset
    jr z,.CheckMaps
    cp $0f            ; swamp tileset    
    jr z,.CheckMaps
    cp $11            ; cave tileset    
    jr z,.CheckMaps
    cp $17            ; plateau tileset    
    jr z,.CheckMaps
    jr nz,.ItemUseNotTime    ; it can't be used in other tilesets
.CheckMaps ;certain maps amongst these tilesets aren't suitable
    ld a,[W_CURMAP]        ; d35e
    cp $F7            ; elite 4 #03
    jr z,.ItemUseNotTime    ;
.Heal
    ld a, $7
    call Predef ; 3e6d - indirect jump to HealParty (f6a5 (3:76a5))
    jp PrintItemUseTextAndRemoveItem ;
.ItemUseNotTime
    jp nz,ItemUseNotTime    ;
Nota bene: Si può anche fare sì che lo zaino venga chiuso automaticamente e l'overworld ricaricato tramite l'inserimento dell'ID di tale oggetto nella lista degli oggetti che adoperano questa funzionalità (come ad esempio il Detector o il repellente).

POKEMON GRAPE (FINAL) DISPONIBILE! CLICCA IL BANNER!
[Immagine: tumblr_npqfq38PKG1tp2yqno3_400.png]
09-05-2020 10:55 PM
Sito Web Cerca Cita
 Mi piace ricevuti da: Versekr Dark , IsMirrionis
Rispondi 




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