[RH - Scripting] Como utilizar variables en warp

Avisos

Respuesta
 
Herramientas Desplegado
  #1  
Hace 1 semana
Predeterminado Como utilizar variables en warp
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!
  #2  
Hace 1 semana
Predeterminado Respuesta: Como utilizar variables en warp
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.
  #3  
Hace 1 semana
Predeterminado Respuesta: Como utilizar variables en warp
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 
@asd
f
compare 0x40FF 0x1              @#1 Alabastia
if 0x1 goto 
@Alabast
ia
compare 0x40FF 0x2              @#2 Vertania city 
if 0x1 goto @Vertania city
compare 0x40FF 0x3              @#3 Marmoria City
if 0x1 goto 
@Mar
moria
...
Para ahorrar lineas de código obviamente puedes usar condiciones.

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, @Alabast ia por ejemplo, solo tendrías que escribir un warpmuted donde quieres que vaya[player]
Código:
#org 
@Alabast
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.
  #4  
Hace 1 semana
Predeterminado Re: Como utilizar variables en warp
Juraría que hay un special para refrescar el mapa, si trabajas en Fire Red es special 0x8E
  #5  
Hace 1 semana
Predeterminado Respuesta: Como utilizar variables en warp
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)

Retirado del RomHacking






Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.


Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 09:26.