Registrarse

[RH - Scripting] Como utilizar variables en warp

Estado
Cerrado para nuevas respuestas.

Rasputin

Usuario de platino
Buenas a todos!
Tengo un problema que necesito que se refresque la pantalla para cambiar la apariencia de un mini.

Despues de investigar, la unica opcion factible es el warp, ya que ningun special (ni el de los tiles) es valido para hacer esto porque no actualiza la WRAM (corregirme si me confundo jeje). El problema viene que necesito que el direccionamiento del banco y del mapa sean dinamicos, para volver al mismo mapa donde estaba y en la misma posicion. Las posiciones las puedo incorporar con un getplayerpos, y el numero de banco y de mapa lo encuentro en la ram, pero el comando warp solo admite bytes para las casillas de banco y mapa, me explico:

warp banco(1byte) mapa(1byte) salida(1byte) ejeX(word) ejeY(word)

Los ejes X e Y les pongo las variables del getplayerpos, en salida 0xFF pero en banco y mapa no puedo poner variables donde se guardan los datos de estos (0x8000 por ejemplo), por lo que vuelvo a estar en la misma encerrona.

Lo que quiero saber es si existe alguna manera de meter esos valores en el warp mediante variables o lo que sea, ya que si no tendria que hacer un warp con cada mapa del juego, y eso es un desperdicio de espacio grandisimo...

Cualquier ayuda u solucion alternativa es bienvenida :)

Un saludo!
 

Dani_SR_17

¡Pokémon LionHeart!
Es algo delicado lo que dices, en Pokéco creo que hay algo al respecto, pero ¿qué rom usas y como estás cambiando el mini?
Porque creo que te estás complicando demasiado la vida, además un warp tiende a quedar muy feo para hacer un cambio de mini.
 
Si quieres hacerlo mediante warps te explico una idea fácil y alterna.

1) Define un número para cada ciudad, pueblo ectect.Ejemplo:


#1 Alabastia
#2 Vertania city
#3 Marmoria City


2) Una vez definido escoge una variable.Eje: 40FF

3) Realiza un mapa negro pequeño con un script de nivel tipo 02, el script de nivel quedaría así:
Código:
...
#org [MENTION=34582]asd[/MENTION]f
compare 0x40FF 0x1              @#1 Alabastia
if 0x1 goto [MENTION=19481]Alabast[/MENTION]ia
compare 0x40FF 0x2              @#2 Vertania city 
if 0x1 goto @Vertania city
compare 0x40FF 0x3              @#3 Marmoria City
if 0x1 goto [MENTION=39694]Mar[/MENTION]moria
...
Para ahorrar lineas de código obviamente puedes usar condiciones.
0x0= Menor que
0x1= Igual que
0x2= Mayor que
0x3= Igual o menor que
0x4= Mayor o igual que
0x5= diferente de


4) Y uno vez establecido el pointer, @Alabastia por ejemplo, solo tendrías que escribir un warpmuted donde quieres que vaya[player]
Código:
#org [MENTION=19481]Alabast[/MENTION]ia
warp banco(1byte) mapa(1byte) salida(1byte) ejeX(word) ejeY(word)
5) Para la transición del cambio de mini harías lo siguiente (para refrescar la pantalla)
Código:
...
setvar 0x40FF 0xNN @El #número de ciudad que estableciste en el paso uno
warpmuted .. .. .. ... @El mapa negro donde esta el script de nivel.
...
Si algo no quedo claro me avisas y... yapp

M.H.B.P.
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Juraría que hay un special para refrescar el mapa, si trabajas en Fire Red es special 0x8E
 

Cheve

MoonLover~
Miembro de honor
Recuerda que puedes usar warps con banco y mapa 254 y jugar con esos. Hay un comando para setearlos, si no lo haces irá al warp anterior que has usado. (No estoy en el PC cómo para buscarlo)
 
Estado
Cerrado para nuevas respuestas.
Arriba