12879-GBA_|_Otros_|_¡Usando_DNS_En_Nuestros_Scripts!
#0
Nattramn 24439
Muy bien, en este manual vamos a aprender a usar los bytes de Day Night System para diferenciar el día de la noche en nuestros scripts de XSE. Muy bien, lo que necesitamos es:
• Rom Pokémon (Fr/Lg/R/S/E)
• DNS
• Advance Map
• Xse
Bien, para empezar, abrimos el DNS y nos fijamos en el sistema RTC, veamos los bytes donde esta instalado y las direcciones Hexadecimales.

En este caso haremos que las ventanas y los focos de las lamparas prendan de noche. Esto se logra mediante un script, y dos diferentes tilesets. Noten el byte 0x0300553C. Este byte es donde el RTC fue instalado en el rom, y la información esta organizada de la siguiente manera:
Year[Año](2 Bytes), 00, Month[Mes](1 Byte), Day[Dia](1 Byte), 00, Hour[Hora](1Byte), minute[Minuto](1Byte), Second[Segundo](1Byte).

Teniendo esta información, podemos hacer una enorme variedad de scripts en nuestros hacks, como eventos que solo suceden en ciertos días de la semana, y otras cosas. (Como el script en Ocarina Of Time(Zelda), cuando es de noche y el puente cierra, pero obvio, con menos detalle xd.)

Ahora abran su emulador para verificar esta información, y abran el Memory Viewer y abríra esto:


Con esto podemos ver que la información que mencionamos previamente esta en 300553C, con el orden que había dicho, pero para usar en un script, deberemos coger el nombre que esta en el cuadro azul, y siempre sera el septimo byte en la linea de 300553C, (o la linea en la cual hayan insertado el DNS),. Para saber exactamente cual byte es, solo agreguen 6 a la dirección en la que instalaron el DNS. (Nota, todos los calculos & cosas por el estilo son en Hexadecimal, y para no liarla, recomiendo usar la calculadora windows en modo cientifico, o la de XSE en modo Hex.

Yo ya tengo la dirección que usare, y esa dirección es 3005542. Esta dirección nos ayudara a decir que hora es, y dependiendo de la hora, modificar los tilesets y/o resultados de un script. Listo ahora definen la hora a la cual cambiara a noche, en mi caso 19:00PM, (13 en Hexadecimal), a 4:00 AM (4 hexadecimal). Ahora que tenemos toda esta información, haremos el script!

Ejemplo Del Script

#dynamic 0x900000 'Esto es definir la dirección Hex donde se iniciara el script
copybyte 0x202E8DC 0x3005542 'Este comando esta copiando los bytes del RTC al LASTRESULT
compare LASTRESULT 0x13 'Este comando esta comparando los resultados,
if 0x4 goto @night 'si es igual a 0x4 (4:00AM), ira al script @Night
compare LASTRESULT 0x4 'Este comando esta comparando los resultados,
if 0x3 goto @night 'Si es igual a 0x3, ira al script @Night
goto @day 'Si el ultimo resultado (LASTRESULT) no es igual a 0x4 o 0x3, ira a @day (Día)
end 'Fin Del Script
'Despues de esto insertas tu variable, ya sea un script de dialogo o de setmaptile
#org @night
Setmaptile
……
End

#org @day
Nop
End

Se pueden analizar los comandos & los variables dentro de los scripts.