Questo Forum utilizza i Cookies
Questo Forum fa uso di Cookies per memorizzare le informazioni di login se sei registrato o sulla tua ultima visita se non siete registrati. I Cookies sono piccoli documenti di testo memorizzati sul vostro computer; i Cookies impostati dal Forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza. I Cookies su questo forum servono anche a monitorare gli argomenti specifici che hai letto. Si prega di confermare se accettare o rifiutare i Cookies impostati.

Un cookie verrà memorizzato nel browser indipendentemente dalla scelta, per evitare che il Forum faccia nuovamente questa domanda. Sarete in grado di modificare le impostazioni dei cookies in qualsiasi momento tramite il link a piè di pagina

Rispondi 
[Rosso fuoco] [ASM] Impedire la cattura e la fuga durante una Wildbattle
PacoScarso
Massive Ego
******
Offline

Messaggi: 983
Registrato: 03-07-2014
Reputazione: 27
Mi Piace Ricevuti: 1366
Pok√©Money: 5,147.25‚āĪ
Messaggio: #1
[ASM] Impedire la cattura e la fuga durante una Wildbattle
Ci√≤ che vi porto √® un lavoro svolto da pi√Ļ utenti per perfezionare le routine in questione.

Occorrente:
  • Rom di Rosso Fuoco USA 1.0
  • Un Hex Editor (HxD sarebbe ottimale)
  • Un compilatore (Che sia quello di hackmew o chi si voglia)

Credits:
  • FBI -> Toggling capturability routine
  • MrDollSteak -> Toggling run away routine
  • JPAN -> Correzione variabili
  • Andrea -> Correzione routine
Detto questo, cosa fanno queste due routine?
- Capturability -> Tramite l'attivazione di una variabile impedisce al Pokémon selvatico di essere catturato. Esso schiverà la Pokéball come fa Marowak fantasma nella torre di Lavandonia;
- Run away -> Tramite l'attivazione di una variabile impedisce al giocatore di fuggire da una battaglia selvatica, anche quando il proprio Pokémon va KO e viene chiesto se si voglia continuare a lottare o meno.

Insomma, ciò che vogliamo riproporre è una sorta di boss battle dove puoi solo sconfiggere il Boss.

PASSO 1: Cambiare il tipo di variabile

Gli offsets su Fire Red vengono caricati in modo dinamico, e diciamo che questo non fa funzionare molto bene queste routine, quindi dobbiamo farli caricare in modo statico.

Aprite l'Hex Editor e andate all'offset 4C062 (0x804C062) e sostituite 00 al valore attuale.
Finito il primo punto, non ironicamente

PASSO 2: Inserire le routines nella Rom

Compilate le seguenti routines nello spazio libero della vostra rom, appuntandovi gli offsets di entrambe. L'offset deve terminare per 0, 4, 8 o C.

- Routine "non catturabile"

- Routine "non puoi fuggire"

Per queste due routine ho usato le variabili 40FE (Niente cattura) e 40FF (Niente fuga).

PASSO 3: Editing in memoria

Abbiamo inserito le nostre routine, ma dobbiamo ancora fare dei cambiamenti con l'Hex Editor per farle funzionare quando attiviamo le variabili.

- Non catturabile:
Andate all'offset 2D452 (0x802D452) e inserite i seguenti byte
Citazione:01 48 00 47 00 00 XX XX XX 08
Al posto di XX XX XX dovete mettere l'indirizzo in cui avete inserito la routine, ma in little endian+1.

Spiegazione del little endian+1

- Non puoi fuggire:
Andate all'offset 1687E (0x801687E) e inserite i seguenti byte
Citazione:01 48 00 47 00 00 XX XX XX 08
Al posto di XX XX XX dovete mettere l'indirizzo in cui avete inserito la routine, ma in little endian+1.

PASSO 4: Usare le routine durante uno script

Per attivare o disattivare le routine dobbiamo servirci del comando "setvar", seguito dal numero variabile e dall'attributo che vogliamo dare a quella variabile.

Attiva la routine della "non cattura"
Citazione:setvar 0x40FE 0x1
Attiva la routine della "non fuga"
Citazione:setvar 0x40FF 0x1
Disattiva la routine della "non cattura"
Citazione:setvar 0x40FE 0x0
Disattiva la routine della "non fuga"
Citazione:setvar 0x40FF 0x0

I comandi in uno script normale sarebbero
Citazione:#dynamic 0x800000
#org @start

- resto dello script -

setvar 0x40FE 0x1
setvar 0x40FF 0x1

wildbattle

setvar 0x40FE 0x0
setvar 0x40FF 0x0

- resto dello script -

end

Our Projects (ongoing)

[Immagine: 6f02vq8.png]

Old Projects

[Immagine: scarso1.png] [Immagine: penumbra1.png]
[Immagine: ciano.png]

Awards
[Immagine: tumblr_npqfq38PKG1tp2yqno6_400.png]
05-06-2020 03:41 PM
Cerca Cita
 Mi piace ricevuti da: Flygon , Andrea , IsMirrionis , Manuxn , Aioria , 80C
IvanFGK
Scemo chi Legge!
*******
Offline

Messaggi: 7,337
Registrato: 12-06-2014
Reputazione: 57
Mi Piace Ricevuti: 4194
Pok√©Money: 12,914.25‚āĪ
Messaggio: #2
RE: [ASM] Impedire la cattura e la fuga durante una Wildbattle
Grazie mille @PacoScarso; come sempre aspettiamo @Andrea che ci trova i byte di Ruby Pacman
05-06-2020 03:48 PM
Sito Web Cerca Cita
 Mi piace ricevuti da: PacoScarso
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,689
Registrato: 09-10-2014
Reputazione: 25
Mi Piace Ricevuti: 2071
Pok√©Money: 2,483.75‚āĪ
Messaggio: #3
RE: [ASM] Impedire la cattura e la fuga durante una Wildbattle
Ho una proposta di miglioramento.
Si potrebbe usare solo 1 variabile, per esempio la 40FE in questo modo.
0x0 tutto disattivato e funziona normalmente
0x1 non si cattura
0x2 non si fugge
0x3 non si cattura e non si fugge.

Si risparmia una variabile almeno e si rende pi√Ļ agile il tutto. Che ne dici?
05-06-2020 03:56 PM
Cerca Cita
 Mi piace ricevuti da: Flygon
PacoScarso
Massive Ego
******
Offline

Messaggi: 983
Registrato: 03-07-2014
Reputazione: 27
Mi Piace Ricevuti: 1366
Pok√©Money: 5,147.25‚āĪ
Messaggio: #4
RE: [ASM] Impedire la cattura e la fuga durante una Wildbattle
(05-06-2020 03:56 PM)eMMe97 Ha scritto:  Ho una proposta di miglioramento.
Si potrebbe usare solo 1 variabile, per esempio la 40FE in questo modo.
0x0 tutto disattivato e funziona normalmente
0x1 non si cattura
0x2 non si fugge
0x3 non si cattura e non si fugge.

Si risparmia una variabile almeno e si rende pi√Ļ agile il tutto. Che ne dici?

Anche, ma le ho messe divise giusto per mostrarle entrambe

Our Projects (ongoing)

[Immagine: 6f02vq8.png]

Old Projects

[Immagine: scarso1.png] [Immagine: penumbra1.png]
[Immagine: ciano.png]

Awards
[Immagine: tumblr_npqfq38PKG1tp2yqno6_400.png]
05-06-2020 04:00 PM
Cerca Cita
 Mi piace ricevuti da: eMMe97 , IvanFGK
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,689
Registrato: 09-10-2014
Reputazione: 25
Mi Piace Ricevuti: 2071
Pok√©Money: 2,483.75‚āĪ
Messaggio: #5
RE: [ASM] Impedire la cattura e la fuga durante una Wildbattle
Ho fatto una cosa bellina!!! La mostro subito e poi posto tutto.
Quando è impostata la NON fuga...

[Immagine: RtRsyRJ.png]

il testo RUN si colora di grigio.

Allora ho riscritto anche le routine, perché a me non funzionavano, quindi devo aver sbagliato qualcosa svitato
Comunque le ho scritte come avevo proposto, usando solo una variabile, almeno uno sceglie cosa gli piace di pi√Ļ. Ovviamente la parte grafica √® compatibile anche con la guida originale, basta cambiare la variabile, correggendo

.Var:
.word 0x000040FF

con la variabile che preferite.

Queste sono le prime routine riscritte (uso la var 40ff di base):

Routine "non catturabile"


Routine "non puoi fuggire"

L'inserimento è già stato spiegato alla perfezione nella guida.


SPIEGAZIONE:
a seconda del valore della variabili otterremo

0x0 nulla
0x1 proibita la cattura
0x2 proibita la fuga
0x3 proibita la cattura + proibita la fuga


PARTE GRAFICA

In uno spazio vuoto della rom (lo chiamerò per praticità NUOVO), inseriamo questi byte

Codice:
FC 05 05 FC 04 0D 0E 0F C0 C3 C1 C2 CE FC 13 38 BC BB C1 FE CA C9 C5 1B C7 C9 C8 FC 13 38 FC 01 0F CC CF C8 FF


Prima Routine:


recatevi all'offset 0x08032bec e digitate 00 48 00 47 XX+1 XX XX 08, al posto di XX mettete l'offset della routine. Tutto spiegato dettagliatamente sopra.


Seconda Routine:


recatevi all'offset 0x080ea714 e digitate 00 48 00 47 XX+1 XX XX 08, al posto di XX mettete l'offset della routine. Tutto spiegato dettagliatamente sopra.


Terza Routine:


recatevi all'offset 0x08158b84 e digitate 00 48 00 47 XX+1 XX XX 08, al posto di XX mettete l'offset della routine. Tutto spiegato dettagliatamente sopra.


Con questa modifica, nel caso in cui la fuga sia impedita, il testo si colorerà di grigio chiaro, come se fosse disabilitato.

[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]
(Questo messaggio è stato modificato l'ultima volta il: 05-06-2020 09:49 PM da eMMe97.)
05-06-2020 09:47 PM
Cerca Cita
 Mi piace ricevuti da: PacoScarso , Flygon , Versekr Dark , IsMirrionis , Manuxn , Shippo , Aioria
Versekr Dark
Nuovo Arrivato
*

Messaggi: 44
Registrato: 10-09-2017
Reputazione: 1
Mi Piace Ricevuti: 61
Pok√©Money: 17.00‚āĪ
Messaggio: #6
RE: [ASM] Impedire la cattura e la fuga durante una Wildbattle
Non c'è modo di farlo invece di non sfuggire che il pokémon può fuggire senza dover essere un combattimento errante o un sona safari.
03-01-2022 02:18 AM
Cerca Cita
Rispondi 




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