Holi.
Ultimamente he estado trabajando en un script de Wonder Trade tras ver el que posteó el usuario Harlee Quinn en PokeCommunity justo aqui. Como tiene algunos fallos serios que imposibilitan su uso en proyectos serios, decidí compartir el mio.
Sin mas que decir, empecemos.
Requisitos:
-ROM de Pokémon Fire Red (USA) v1.0 o de Pokémon Emerald (USA).
-Editor de texto y editor hexadecimal de su preferencia (como siempre, yo usaré Notepad & HxD)
-Advance Map y XSE, obviamente
Instrucciones:
1) Copiamos y pegamos la siguiente Rutina ASM compilada en un offset que tenga espacio vacio dentro de nuestra ROM dependiendo de la ROM que estén modificando.
Fire Red:
Emerald:
Como a mi me gusta apostarle a lo seguro, sugiero poner la rutina en un offset que termine en 0, 4, 8 o C. Yo la puse en 71A250.
2) Vayanse a Advance Map, elijan el mapa que les apetezca, añadan un NPC y denle este script:
Fire Red:
Emerald:
Nota: FFFFFF+1 = Offset donde insertaron la rutina compilada, +1.
3) A Probar.
Notas Relevantes
Creditos
-Harlee Quinn de PokeCommunity, pues su script me inspiró para hacer el mio.
-Bela de PokeCommunity, pues él me enseñó a comprobar la posibilidad de que el Jugador cancele el special 0x9F.
-HackMew por todos sus aportes a la Comunidad de ROM Hacking Pokémon.
-@Dani_SR_17 por haberme indicado una forma de optimizar el filtro en "@snippet4".
-@BluRose por ayudarme a comprender un error increiblemente estupido que estaba cometiendo.
- @♠Subzero♠ por haber dado una buena sugerencia a tener en cuenta en caso de usar el script (ver "Notas Relevantes").
-Tester Anonimo de Pokémon Shiny Gold Sigma por haber notado que los Huevos Pokémon eran intercambiables.
-LuHo por haber creado Advance Map.
Aqui una muestra del resultado en Fire Red.
Aqui una muestra del resultado en Emerald.
Y eso fue todo.
Ultimamente he estado trabajando en un script de Wonder Trade tras ver el que posteó el usuario Harlee Quinn en PokeCommunity justo aqui. Como tiene algunos fallos serios que imposibilitan su uso en proyectos serios, decidí compartir el mio.
Sin mas que decir, empecemos.
Requisitos:
-ROM de Pokémon Fire Red (USA) v1.0 o de Pokémon Emerald (USA).
-Editor de texto y editor hexadecimal de su preferencia (como siempre, yo usaré Notepad & HxD)
-Advance Map y XSE, obviamente
Instrucciones:
1) Copiamos y pegamos la siguiente Rutina ASM compilada en un offset que tenga espacio vacio dentro de nuestra ROM dependiendo de la ROM que estén modificando.
Fire Red:
Código:
FF B5 00 25 11 4E 0F 4F 3C 78 02 2C 18 DB 33 88 A3 42 15 D2 62 1E 3A 70 01 33 E2 1A 64 25 6A 43 52 08 6B 43 08 4F F8 18 41 1B 0B DF 6C 43 3F 19 7F 1B 00 20 19 22 01 25 01 C7 01 3A 00 2A FB D1 35 82 FF BD 29 40 02 02 84 42 02 02 C0 70 03 02
Emerald:
Código:
FF B5 00 25 11 4E 0F 4F 3C 78 02 2C 18 DB 33 88 A3 42 15 D2 62 1E 3A 70 01 33 E2 1A 64 25 6A 43 52 08 6B 43 08 4F F8 18 41 1B 0B DF 6C 43 3F 19 7F 1B 00 20 19 22 01 25 01 C7 01 3A 00 2A FB D1 35 82 FF BD E9 44 02 02 EC 44 02 02 E0 75 03 02
Como a mi me gusta apostarle a lo seguro, sugiero poner la rutina en un offset que termine en 0, 4, 8 o C. Yo la puse en 71A250.
2) Vayanse a Advance Map, elijan el mapa que les apetezca, añadan un NPC y denle este script:
Fire Red:
Código:
[center]#dynamic 0x71BBA0
#org @#start
faceplayer
lockall
msgbox @#String1 0x5
compare 0x800D 0x1
if 0x1 goto @#snippet1
msgbox @#String2 0x6
releaseall
end
#org @#snippet1
countpokemon
compare LASTRESULT 0x1
if 0x1 goto @#snippet7
msgbox @#String3 0x6
special 0x9F
waitstate
special2 0x8003 0x147
compare 0x8003 0x19c
if 0x1 goto @#snippet8
compare 0x8004 0x6
if 0x4 goto @#snippet3
goto @#snippet4
#org @#snippet3
msgbox @#String2 0x6
releaseall
end
#org @#snippet4
random 0x19C
compare 0x800D 0x0
if 0x1 goto @#snippet4
compare 0x800D 0xFB
if 0x3 goto @#snippet5
compare 0x800D 0x115
if 0x4 goto @#snippet5
goto @#snippet4
#org @#snippet5
copyvar 0x8000 0x800D
bufferpokemon 0x0 0x8000
showpokepic 0x8000 0xA 0x3
waitcry
[B][COLOR="red"]callasm 0x8FFFFFF+1[/COLOR][/B]
givepokemon 0x8000 0x5 0x0 0x0 0x0 0x0
pause 0x13
fanfare 0x13E
msgbox @#String5 0x4
waitfanfare
closeonkeypress
hidepokepic
msgbox @#String6 0x5
compare 0x800D 0x1
if 0x1 call @#snippet6
msgbox @#String2 0x6
releaseall
end
#org @#snippet6
countpokemon
subvar 0x800D 0x1
copyvar 0x8004 0x800D
fadescreen 0x1
special 0x9E
waitstate
return
#org @#snippet7
msgbox @#String7 0x6
releaseall
end
#org @#snippet8
msgbox @#String8 0x6
releaseall
end
#org @#String1
= Wanna wonder trade?
#org @#String2
= Come back anytime.
#org @#String3
= Select the Pokémon you wanna trade.
#org @#String5
= [player] got a [buffer1]!
#org @#String6
= Wanna give it a nickname?
#org @#String7
= Sorry, you need two Pokémon\nto use the Wonder Trade.\pCome back anytime.
#org @#String8
= I'm sorry, you cannot trade\na Pokémon Egg using the\lWonder Trade System.\pCome back anytime.[/center]
Emerald:
Código:
[center]`#freespace 0xFF
#dynamic 0x71BBA0
#org @#start
faceplayer
lockall
msgbox @#String1 0x5
compare 0x800D 0x1
if 0x1 goto @#snippet1
msgbox @#String2 0x6
releaseall
end
#org @#snippet1
countpokemon
compare LASTRESULT 0x1
if 0x1 goto @#snippet7
msgbox @#String3 0x6
special 0xA2
waitstate
special2 0x8003 0x149
compare 0x8003 0x19c
if 0x1 goto @#snippet8
compare 0x8004 0x6
if 0x4 goto @#snippet3
goto @#snippet4
#org @#snippet3
msgbox @#String2 0x6
releaseall
end
#org @#snippet4
random 0x19C
compare 0x800D 0x0
if 0x1 goto @#snippet4
compare 0x800D 0xFB
if 0x3 goto @#snippet5
compare 0x800D 0x115
if 0x4 goto @#snippet5
goto @#snippet4
#org @#snippet5
copyvar 0x8000 0x800D
bufferpokemon 0x0 0x8000
cry 0x8000 0x0
showpokepic 0x8000 0xA 0x3
waitcry
[B][COLOR="Red"]callasm 0x8FFFFFF+1[/COLOR][/B]
givepokemon 0x8000 0x5 0x0 0x0 0x0 0x0
pause 0x13
fanfare 0x13E
msgbox @#String5 0x4
waitfanfare
closeonkeypress
hidepokepic
msgbox @#String6 0x5
compare 0x800D 0x1
if 0x1 call @#snippet6
msgbox @#String2 0x6
releaseall
end
#org @#snippet6
countpokemon
subvar 0x800D 0x1
copyvar 0x8004 0x800D
fadescreen 0x1
special 0xA1
waitstate
return
#org @#Snippet7
msgbox @#String7 0x6
releaseall
end
#org @#snippet8
msgbox @#String8 0x6
releaseall
end
#org @#String1
= Wanna wonder trade?
#org @#String2
= Come back anytime.
#org @#String3
= Select the Pokémon you wanna trade.
#org @#String5
= [player] got a [buffer1]!
#org @#String6
= Wanna give it a nickname?
#org @#String7
= Sorry, you need two Pokémon\nto use the Wonder Trade.\pCome back anytime.
#org @#String8
= I'm sorry, you cannot trade\na Pokémon Egg using the\lWonder Trade System.\pCome back anytime.[/center]
3) A Probar.
Notas Relevantes
-Este script no es mas que una base, si tú quieres añadir una función o cambiar X parte por Y motivo, eres libre de hacerlo.
-El Wonder Trade como tal, puede evolucionar a Pokémon como Machoke, Haunter, Kadabra y Graveler. Por defecto no es posible forzar una evolución de esa forma con los comandos que ofrece XSE, pero afortunadamente hay Rutinas ASM como esta para Fire Red que permiten hacerlo.
-El usuario @♠Subzero♠ hizo su propia modificación justo aqui, en caso de que alguien esté interesado en sus cambios personales.
-El Wonder Trade como tal, puede evolucionar a Pokémon como Machoke, Haunter, Kadabra y Graveler. Por defecto no es posible forzar una evolución de esa forma con los comandos que ofrece XSE, pero afortunadamente hay Rutinas ASM como esta para Fire Red que permiten hacerlo.
-El usuario @♠Subzero♠ hizo su propia modificación justo aqui, en caso de que alguien esté interesado en sus cambios personales.
Creditos
-Harlee Quinn de PokeCommunity, pues su script me inspiró para hacer el mio.
-Bela de PokeCommunity, pues él me enseñó a comprobar la posibilidad de que el Jugador cancele el special 0x9F.
-HackMew por todos sus aportes a la Comunidad de ROM Hacking Pokémon.
-@Dani_SR_17 por haberme indicado una forma de optimizar el filtro en "@snippet4".
-@BluRose por ayudarme a comprender un error increiblemente estupido que estaba cometiendo.
- @♠Subzero♠ por haber dado una buena sugerencia a tener en cuenta en caso de usar el script (ver "Notas Relevantes").
-Tester Anonimo de Pokémon Shiny Gold Sigma por haber notado que los Huevos Pokémon eran intercambiables.
-LuHo por haber creado Advance Map.
Aqui una muestra del resultado en Fire Red.
Aqui una muestra del resultado en Emerald.
Y eso fue todo.
Última edición: