Rispondi 
[Rosso fuoco] Creare un Menu personalizzato
Shippo
Realizzatore di sogni
*
Offline

Messaggi: 13
Registrato: 14-04-2018
Reputazione: 1
Mi Piace Ricevuti: 21
PokéMoney: 84.00₱
Messaggio: #1
Creare un Menu personalizzato
Buongiorno a tutti, oggi ho deciso di creare questa guida per permettere a tutti di creare abbastanza semplicemente un menu personale da inserire al posto dell’originale usando uno script.

Aggiornata alla Versione 2.1


Prima vi spiegherò come creare un semplice menu usando i multichoice, successivamente vedremo come farne uno più “grafico “ e funzionale, infine vedremo come inserire il nostro menu.
Per ora fornirò i valori da modificare per FireRed, successivamente aggiornerò coi valori per Rosso Fuoco e Smeraldo.


Premessa:
Io mostrerò direttamente il solo menu con pokedex e pokemon attivi, per renderlo esattamente come l’originale dovrete creare 4 menu diversi (Zona safari, Normale, No Pokedex, No Pokemon), mettendo i relativi controlli sulle flag/variabile all’inizio dello script, per la zona safari dovrebbe essere la variabile 0x406E (a 0 non siete nella zona safari, a 2 lo siete), l’opzione Pokemon usa la flag 0x828, mentre il Pokedex la 0x829


CREAZIONE:

Con Multichoice (non lo consiglio, ma utile didatticamente)

Esistono 3 tipi di multichoice, quello classico (il medesimo utilizzato dal menu originale), il multichoice2 che è uguale, ma permette di scegliere una posizione di default per il cursore diversa dalla posizione 1 e il multichoice3 che invece vi permette di creare un menu orizzontalmente, su una o più righe.
L'unica limitazione del multichoice3 è che non potete avere numeri diversi di opzioni nelle righe, per esempio se scegliete di avere 3 opzioni per riga e avete 7 o 8 opzioni ne vedrete solo 6, due righe da 3.

Se non sapete come aggiungere un multichoice per FireRed esiste un tools molto semlice, reperibile quì:
https://www.pokecommunity.com/showthread.php?t=335308


Premessa: un menu creato col multichoice non viene chiuso premendo il tasto start, solo premendo b o ,se lo inserite, col tasto esci, inoltre sarete costretti a disattivare il ritorno al menu dopo aver utilizzato una qualunque funzione se usate degli OAM perché al ritorno avrebbero dei colori sballati a causa del fade e purtroppo non potete utilizzare il BG0 col multichoice.

Ora analizziamo lo script:


Potete aggiungere o modificare l’ordine delle funzioni a vostro piacimento molto semplicemente o renderne alcune non funzionanti in base a delle flag.
Per abbellirlo potete inserire delle icone o caricare altre immagini, potete usare sia showpokepic che funzioni per immagini mugshot (come ho fatto io), a voi la scelta, l’unica limitazione è che non potete usare immagini BG0, non funzionano con il multichoice e di conseguenza dovrete disabilitare il ritorno al menu.
Un piccolo consiglio nel caso vogliate inserire delle icone davanti o direttamente al posto del testo del menu… Quando create la tabella da usare nel multichoice lasciate degli spazi vuoti prima del testo se le icone le volete davanti o nel caso le vogliate senza il testo mettete tutto vuoto ma almeno in un elemento mettete 3-4 spazi o più (a seconda delle dimensioni).

Menu senza multichoice (Consigliato):

Questa volta non useremo il multichoice, perciò abbiamo bisogno di inserire una funzione per controllare i tasti premuti, usiamo questa Routine di FBI:

Controllo Tasti:


Veniamo ora alla parte grafica.

Avremo bisogno di caricare 2 immagini:
>una trasparente, per nascondere il menu originale (tranquilli, diventerà un fantasma molto gentile)
>una per il nostro menu.

Per farlo possiamo usare la stessa routine, con opportune modifiche, io ve le fornirò separate, ma niente vi vieta di inserire un controllo su una flag e unirle in un’unica.

La routine che ho usato per caricare un'immagine bg0 è questa, realizzata dall'utente jiangzhengwenjz -> https://wahackforo.com/t-40368-pag2

Potete utilizzare altre routine ovviamente, l’importante però è che utilizzino il BG0 e non gli OAM se volete lasciare abilitato il ritorno al menu dopo aver avviato una funzione (come l’originale), perché gli OAM non apprezzano molto i fadescreen.

Creazione Immagini:

Innanzitutto create un’immagine vuota, con solo il colore della trasparenza, 72 x 120 (L x H), usate le stesse palette che utilizzate per le immagini del vostro menu (perché mai farne altre).

Successivamente create le immagini del vostro menu delle dimensioni che preferite, ma tutte delle stesse dimensioni.

Inserite le immagini e le palette compresse LZ77, con unLZ o NamelessSpriteEd e inserite i relativi puntatori nella vostra tabella (potete creare 2 tabelle diverse per l’immagine che ci servirà per coprire il menu originale e quelle dei vostri menu o usare la stessa, a voi la scelta)

La tabella deve essere in questo formato
[Puntatore immagine] [Puntatore palette]
potete inserirne fino a 65536 Big Grin

Ora compilate queste routine e inseritele in qualunque posizione


Nascondere il menu originale:



Mostrare l’immagine del nostro menu:



Eliminare l'immagine (serve per entrambe le precedenti):




Per utilizzarle nello script:



FUNZIONAMENTO:

Prima dello script vediamo di capire a grandi linee il funzionamento.
Si comincia caricando l’immagine in bg0 per nascondere il menu originale, poi si entra nel ciclo, partendo dalla prima funzione del menu. Ciò che si farà in ogni ciclo sarà cancellare l’immagine del vostro menu (nel primo caso cancellerà l'immagine che abbiamo inserito per cancellare il menu originale, ma non comparirà, tranquilli, successivamente cancellerà quella precedente del vostro menu), usare sound 0x5 per avere il suono del cursore, dopodiché il gioco attenderà che premiate un tasto e vi manderà alla parte di script relativa.

Sta a voi decidere come volete che sia il vostro menu, se si sviluppera in orizzontale, verticale, circolare o con forme misteriose, con o senza cursore, basta modificare adeguatamente i controlli e le immagini da caricare.



Analizziamo il primo ciclo:



Ora vediamo se è stato selezionato il Pokedex

Analizziamo ora il salvataggio, l’unico diverso

E ora un esempio completo:



E il mio risultato: (Ho volutamente lasciato un'immagine OAM per farvi vedere cosa succede al ritorno)

INSERIMENTO:

Ora vediamo come poter utilizzare il nostro nuovo menu al posto dell’originale….
Il metodo non sarà il più elegante, ma è funzionale, ecco le semplici modifiche da effettuare:

Compilate questa Routine da qualche parte


Andate all’offset 6ED5C e scrivete:
00 48 00 47 XX XX XX 08
XX XX XX è il puntatore alla routine +1

Successivamente fate ancora questa modifica:



Disabilitare ritorno al Menu:

Se volete che dopo aver utilizzato una funzione non si riapra il menu seguite la spiegazione di Emme 97

(07-05-2018 09:01 AM)eMMe97 Ha scritto:  
Codice:
Offset 0x80568AF inserisci 00 00 00 00



BUG:

Attualmente non ne ho trovati, anche il segna passi/Ball della zona Safari se non ci mettete immagini BG0 Sopra Big Grin, ma se ne trovate segnalate pure.

Spero di aver fatto cosa gradita e di non aver commesso troppi errori, i concetti sono semplici, ma c'è molto da scrivere Big Grin

[Immagine: 1zlgf2o.png]
(Questo messaggio è stato modificato l'ultima volta il: 19-05-2018 10:36 PM da Shippo.)
06-05-2018 04:37 PM
Cerca Cita
 Mi piace ricevuti da: ...Splash , marf7y , Stygian , E²VaN , Flygon , Andrea , Zitowski , MegaTorterra
Stygian
Aurora Pokémon
******
Offline

Messaggi: 1,495
Registrato: 07-08-2014
Reputazione: 28
Mi Piace Ricevuti: 641
PokéMoney: 4,075.75₱
Messaggio: #2
RE: Creare un Menu personalizzato
Ottimo lavoro, grazie per la guida!
07-05-2018 12:31 AM
Cerca Cita
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,363
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1342
PokéMoney: 1,666.00₱
Messaggio: #3
RE: Creare un Menu personalizzato
Non è proprio perfetta come guida, ma è sicuramente un ottimo inizio per un argomento così "arzigogolato" come quello del menù! Bravo bravo Smile
Volevo scriverne io una, ma sto ancora studiando per renderlo perfetto, per il momento però ho la soluzione al problema della chiusura del menù, che non ricrea ancora la funzione originaria, però alla chiusura di una delle voci non da il bug che riporti te, semplicemente chiude direttamente il menù.

Codice:
Offset 0x80568AF inserisci 00 00 00 00

In questo modo quando una qualsiasi delle voci verrà chiusa si uscirà in automatico dal menù.
Spero di poter aggiungere presto altre informazioni per contribuire a rendere completa la guida Big Grin

P.S. forse sarebbe anche utile per i meno esperti la pubblicazione della routine per caricare un'immagine nel bg0.
07-05-2018 09:01 AM
Cerca Cita
 Mi piace ricevuti da: marf7y
E²VaN
Scemo chi Legge!
*******
Assente

Messaggi: 6,700
Registrato: 12-06-2014
Reputazione: 52
Mi Piace Ricevuti: 3117
PokéMoney: 12,818.75₱
Messaggio: #4
RE: Creare un Menu personalizzato
Grazie, ottima guida! Pacman
07-05-2018 11:14 AM
Sito Web Cerca Cita
Shippo
Realizzatore di sogni
*
Offline

Messaggi: 13
Registrato: 14-04-2018
Reputazione: 1
Mi Piace Ricevuti: 21
PokéMoney: 84.00₱
Messaggio: #5
RE: Creare un Menu personalizzato
(07-05-2018 09:01 AM)eMMe97 Ha scritto:  Non è proprio perfetta come guida, ma è sicuramente un ottimo inizio per un argomento così "arzigogolato" come quello del menù! Bravo bravo Smile
Volevo scriverne io una, ma sto ancora studiando per renderlo perfetto, per il momento però ho la soluzione al problema della chiusura del menù, che non ricrea ancora la funzione originaria, però alla chiusura di una delle voci non da il bug che riporti te, semplicemente chiude direttamente il menù.

Codice:
Offset 0x80568AF inserisci 00 00 00 00

In questo modo quando una qualsiasi delle voci verrà chiusa si uscirà in automatico dal menù.
Spero di poter aggiungere presto altre informazioni per contribuire a rendere completa la guida Big Grin

P.S. forse sarebbe anche utile per i meno esperti la pubblicazione della routine per caricare un'immagine nel bg0.
Grazie della dritta Emme, mi hai risparmiato una lunga ricercaSmile
Aggiungo il tuo prezioso consiglio alla guida, insieme alla routine per il bg0

[Immagine: 1zlgf2o.png]
07-05-2018 01:19 PM
Cerca Cita
Shippo
Realizzatore di sogni
*
Offline

Messaggi: 13
Registrato: 14-04-2018
Reputazione: 1
Mi Piace Ricevuti: 21
PokéMoney: 84.00₱
Messaggio: #6
RE: Creare un Menu personalizzato
Tutti i bug sono stati risolti e la guida è stata aggiornata Cool
17-05-2018 05:21 PM
Cerca Cita
 Mi piace ricevuti da: Flygon
marf7y
Poffy
*
Offline

Messaggi: 14
Registrato: 28-10-2017
Reputazione: 0
Mi Piace Ricevuti: 1
PokéMoney: 64.00₱
Messaggio: #7
RE: Creare un Menu personalizzato
Me puedes ayudar @Shippo TOT

A la hora de INSERIMENTO el juego se me crashea, no se el porque...

Citazione:Script offset: 800050
[Immagine: SCRIPT.png]

RUTINA offset: B50000
[Immagine: RUTINA.png]

Offset mod: 6ED5C
[Immagine: MODI.png]

Offset mod2: 06F36C
[Immagine: MOD2.png]

offset: 750000
[Immagine: 750000.png]
Non so dove ho sbagliato, lo script l'ha provato e funziona correttamente, non penso che sia così ...

Per favore aspetta la tua risposta

Script
Citazione:
Codice:
#dynamic 0x800050

#org @ini
pause 0x1
multichoice 0x5 0x5 0x0 0x0
compare 0x800D 0x0
if 0x1 call @dex
compare 0x800D 0x1
if 0x1 call @poke
compare 0x800D 0x2
if 0x1 call @mochi
compare 0x800D 0x3
if 0x1 call @trainer
compare 0x800D 0x4
if 0x1 call @salve
compare 0x800D 0x5
if 0x1 call @option
end

#org @option
fadescreen 0x1
pause 0x1
callasm 0x806F4FD
return

#org @salve
special 0x23
waitstate
return

#org @trainer
fadescreen 0x1
pause 0x1
callasm 0x806F4B5
return

#org @mochi
fadescreen 0x1
pause 0x1
callasm 0x806F481
return

#org @poke
fadescreen 0x1
pause 0x1
callasm 0x806F44D
return

#org @dex
fadescreen 0x1
pause 0x1
callasm 0x806F411
return

Gracias de antemano.
18-05-2018 06:19 PM
Cerca Cita
Shippo
Realizzatore di sogni
*
Offline

Messaggi: 13
Registrato: 14-04-2018
Reputazione: 1
Mi Piace Ricevuti: 21
PokéMoney: 84.00₱
Messaggio: #8
RE: Creare un Menu personalizzato
All'offset 6ED5C bisogna mettere 00480047 + offset della routine per avviare lo script (avevo scritto sbagliato inizialmente, troppe riscritture Big Grin)
(Questo messaggio è stato modificato l'ultima volta il: 18-05-2018 09:55 PM da Shippo.)
18-05-2018 06:47 PM
Cerca Cita
 Mi piace ricevuti da: marf7y
Shippo
Realizzatore di sogni
*
Offline

Messaggi: 13
Registrato: 14-04-2018
Reputazione: 1
Mi Piace Ricevuti: 21
PokéMoney: 84.00₱
Messaggio: #9
RE: Creare un Menu personalizzato
Risolto anche il problema della striscia blu con le spiegazioni delle funzioni del menu e aggiornata la guida, ora direi che è perfettamente usabile Cool
19-05-2018 10:37 PM
Cerca Cita
Rispondi 




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