Registrarse

[RH - Scripting] Como hacer un script para obtener varios pokemon a la vez

Estado
Cerrado para nuevas respuestas.
Al principio del juego, en el camión, quiero que empieces con varios pokémon, por lo que supongo que debería de ser así (soy nuevo en todo lo relacionado con el rom hacking, lo siento), pero el juego se queda colgado nada mas leer el texto. Este es el script
[SCRIPT]#dynamic 0x800000
#org @inicio
lock
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag 0x828
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis pokemon[/SCRIPT]

¿Alguien podría decirme que falla?
Por cierto, tampoco desaparece la pokeball cuando la cojo, así que también me ayudaría mucho que me dijerais como se hace.
 

Bugrhak

A long time ago I used to call myself "Subzero".
Para que desaparezca la pokeball, deberías asignarle una flag al mini (de la pokeball xD) y al final del script, pondrías:

Código:
setflag 0x(Num. De la flag añadida al mini)
hidesprite 0x(Num. Del sprite de la pokéball)
Luego está el tema de que puedes hacer el sctipt más bonito con sounds y fanfars, pero ese toque lo irás pillando tu solito con el tiempo ;).
Att: El tito Sub. (^3^)_b
 

darkeon75

ROM Hacker
Y en adición al comentario de arriba, en tu script hay un pequeño error, por lo que he leído en la parte del inicio del camión, tú usas base Ruby o Emerald, y en tu script tienes puesta la flag 0x828, que es la flag que activa el menú en FR, si quieres activar el menú en tu base usa 0x800 (ruby) / 0x860 (emerald)
 
Gracias subzero, pero tras meter el codigo el juego se sigue congelando. ¿Podrias explicarme que falla?
Código:
#dynamic 0x800000
#org @inicio
lock
checkflag 0x250
if 0x1 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag 0x800
setflag 0x250
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x3B
release
end
Gracias.
 

darkeon75

ROM Hacker
Gracias subzero, pero tras meter el codigo el juego se sigue congelando. ¿Podrias explicarme que falla?
Código:
#dynamic 0x800000
#org @inicio
lock
checkflag 0x250
if 0x1 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag 0x800
setflag 0x250
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x3B
release
end
Gracias.
En hidesprite tú has puesto 0x3B, y debes poner el número de la ID del minisprite de la Pokéball en el mapa no el número del minisprite, el juego te crashea porque en el script hace desaparecer el minisprite número 59 del mapa que no hay.
 
Gracias Darkeon, no sabia eso. Ya lo cambie pero sigue quedandose colgado. Al final, tras unos cambios quedaria asi y no se queda colgado, aunque cuando das un paso la pokeball reaparece. Tampoco me aparece el menu de pokemon.
Código:
#dynamic 0x800000
#org @inicio
lock
checkflag 0x1200
if 0x0 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag 0x800
clearflag 0x1200
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
 

Dragonite

But where's your heart
Gracias Darkeon, no sabia eso. Ya lo cambie pero sigue quedandose colgado. Al final, tras unos cambios quedaria asi y no se queda colgado, aunque cuando das un paso la pokeball reaparece. Tampoco me aparece el menu de pokemon.
Código:
#dynamic 0x800000
#org @inicio
lock
checkflag 0x1200
if 0x0 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag 0x800
clearflag 0x1200
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
El hidesprite desaparece el sprite pero no lo desactiva, vuelve a aparecer cuando se refresca la pantalla que es cuando das un paso.

En A-Map debes poner el flag del cual depende el sprite en person_id, en este caso debes poner 1200.
 
El hidesprite desaparece el sprite pero no lo desactiva, vuelve a aparecer cuando se refresca la pantalla que es cuando das un paso.

En A-Map debes poner el flag del cual depende el sprite en person_id, en este caso debes poner 1200.
Gracias, lo unico que falta es que se añada el menu pokemon.
 

Dragonite

But where's your heart
Sólo para asegurarnos, reemplaza

Código:
setflag 0x800
por esto

Código:
setflag RS_PKMNMENU
Si te da error, añade esto al principio de todo

Código:
#include std.rbh
 
Ya lo he hecho, pero sigue sin funcionar. Ademas, ahora tampoco se muestra el texto. Me podrias explicar por que?
Código:
#dynamic 0x800000
#org @inicio
#include std.rbh
lock
checkflag 0x1200
if 0x0 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag RS_PKMNMENU
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
 

StunxFS

Profesional de WaH
Creo que el va abajo del dynamic.. no estoy seguro de eso, porque nunca usé eso en mis scripts
No, eso va arriba del #dynamic. Creo que ese es el problema.
Esto seria asi:
Código:
#include std.rbh

#dynamic 0x800000
Y no asi:
Código:
#dynamic 0x800000
#include std.rbh
 
Última edición por un moderador:

Bugrhak

A long time ago I used to call myself "Subzero".
No, eso va arriba del #dynamic. Creo que ese es el problema.
Esto seria asi:
Código:
#include std.rbh

#dynamic 0x800000
Y no asi:
Código:
#dynamic 0x800000
#include std.rbh
Puede que sea eso, aunque no me atrevo a afirmarlo ya que nunca usé esos accesorios con los que cuenta XSE.

Ya lo he hecho, pero sigue sin funcionar. Ademas, ahora tampoco se muestra el texto. Me podrias explicar por que?
Código:
#dynamic 0x800000
#org @inicio
#include std.rbh
lock
checkflag 0x1200
if 0x0 goto @esconderpokeball
msgbox @text 0x6
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag RS_PKMNMENU
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
Fíjate si el numero de la variable que usas es correcta, no recuerdo cuales son las de Rubí, pero se me hace extraño que uses una variable tan alta. La mayoría de las veces, la gente cuando empieza a romhackear utiliza cualquier flag aunque ni exista en el juego (gran error).
En fin, cerciórate de que sea correcto el número y de no serlo prueba con uno que esté disponible en el registro de las flags de ruby.

Att: El tito Sub. (^3^)_b
 

Dragonite

But where's your heart
Voy a sonar pedante o algo así, pero...

¿Estás TOTALMENTE SEGURO de que estás usando RUBY y no una base que SIMULE ser Ruby?

A estas alturas lo que yo probaría es activar la flag del menú de Ruby, de Emerald y de FireRed. Ya si no funciona, es probable que estés usando una base que modifique algo en el menú, o algo así...

Luego de:
Código:
setflag RS_PKMNMENU
Agrega esto:
Código:
setflag EM_PKMNMENU
setflag FR_PKMNMENU
 
Vale se arregló el texto, pero sigo sin obtener el menú pokemon. Tambien cambié la rom de base por la de USA.

Código:
#include std.rbh
#dynamic 0x800000
#org @inicio
lock
msgbox @text 0x6
checkflag 0x8D3
if 0x0 goto @esconderpokeball
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag RS_PKMNMENU
setflag EM_PKMNMENU
setflag FR_PKMNMENU
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
 

Bugrhak

A long time ago I used to call myself "Subzero".
Vale se arregló el texto, pero sigo sin obtener el menú pokemon. Tambien cambié la rom de base por la de USA.

Código:
#include std.rbh
#dynamic 0x800000
#org @inicio
lock
msgbox @text 0x6
checkflag 0x8D3
if 0x0 goto @esconderpokeball
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
setflag RS_PKMNMENU
setflag EM_PKMNMENU
setflag FR_PKMNMENU
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
Gracias
Prueba a poner directamente el número de la flag que activa el menú y no uses estos atajos:

Código:
setflag RS_PKMNMENU
setflag EM_PKMNMENU
setflag FR_PKMNMENU
Además, lo que a continuación es de color rojo, está mal, no puedes activar las flags del menú de tres juegos diferentes.

Código:
#include std.rbh
#dynamic 0x800000
#org @inicio
lock
msgbox @text 0x6
checkflag 0x8D3
if 0x0 goto @esconderpokeball
givepokemon 0x188 0x5 0x87 0x0 0x0 0x0
givepokemon 0x13B 0x5 0x86 0x0 0x0 0x0
givepokemon 0x11E 0x5 0x85 0x0 0x0 0x0
[COLOR="Red"]setflag RS_PKMNMENU
setflag EM_PKMNMENU
setflag FR_PKMNMENU[/COLOR]
release
end

#org @text
= Ya estamos llegando, pero antes\nrecogere a mis POKéMON.

#org @esconderpokeball
hidesprite 0x1
release
end
A lo que se refería @Dafting es que vayas probando con las flags activadoras del menú una a una y veas cual es. O sea, pones en el script la flag de FR, compilas el script, y pruebas el rom con el emulador de GBA.
Repites el proceso hasta que des con la correcta.

Si el problema persiste, deshecha ese script y vuelve a hacerlo usando otras direcciones/offsets.

Por cierto, esta flag checkflag 0x8D3 me parece demasiado alta.

Att: El tito Sub. (^3^)_b
 
Estado
Cerrado para nuevas respuestas.
Arriba