Author Id: 28493 Author Name: Dani_SR_17 Post Content: [IMG]http://i.imgur.com/LA4E7z2.png[/IMG] Climas Dinámicos Saludos Hackers de GBA, hoy traigo un nuevo script que como siempre es de libre uso con créditos, el script en cuestión es bastante sencillito, pero te permite tener mapas con climas dinámicos. No veo necesario añadir imágenes, ni un vídeo que muestre el script porque espero que el script sea bastante claro, aun así no descarto subir un vídeo en un futuro. Requisitos: [LIST] [*]Saber usar Scripts de nivel, ya que debes poner el script en uno. [*]Tener introducido el DNS. [*]2 Variables por cada mapa, y 1 variable dinámica. [/LIST] El script debéis insertarlo como un script de nivel 05. Recomiendo este [URL="https://www.mediafire.com/?vd6g5ymj0ca0xc6"]>>Manual<<[/URL] de Javi También como he dicho, debeís tener insertado el [URL="http://www.pokecommunity.com/showthread.php?t=246089"]>>DNS<<[/URL], mas concrétamente la rutina de esta herramienta del "RTC". Voy a poner 2 versiones del script. [LIST] [*]Versión simple [*]Versión compleja [/LIST] Versión simple Como su propio nombre indica, es la versión más simple del script, esta forma simplemente guardará la última hora a la que entraste al mapa en una variable y el clima que hacía en otra, al volver a entrar comprobará si la hora a cambiado y en tal caso volverá a recalcular el clima. [URL="http://www.mediafire.com/download/v4zbdwcw1p67zc7/Script+sencillo+de+clima+%28No+estaciones%29.rbc"]Script Clima Dinámico Sencillo - Dani_SR_17[/URL] #dynamic 0x800000 ' Este es un script para crear un clima dinámico en los mapas. ' Se necesitará una variable dinámica (solo 1 para todos los mapas, no 1 por cada mapa) y dos variable para cada mapa. ' En la variable 1 de cada mapa, se almacenará la última hora en la que entraste al mapa, si entrás a las 3pm, y después a las 4pm el clima podrá cambiar. ' En la variable 2 de cada mapa, se almacenará el clima que hacía en la última hora en la que entraste, en caso de que siga siendo la misma hora. #org @start copybyte 0x20370D0 0x3005542 'Vamos a revisar si ha cambiado la hora o no. comparevars LASTRESULT 0x(Variable 1) if 0x1 goto @Nada 'Si es la misma hora que la última vez que el script se ejecuto, no pasa nada. goto [MENTION=26827]Camb[/MENTION]ioDeClima #org @Nada 'Sigue el clima anterior compare 0x(Variable 2) 0x0 if 0x1 goto @Sol compare 0x(Variable 2) 0x1 if 0x1 goto @Nublado compare 0x(Variable 2) 0x2 if 0x1 goto @Llueve #org [MENTION=26827]Camb[/MENTION]ioDeClima copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Sol 'Tienes un 60% de tener Sol. compare 0x(Variable dinámica) 0x9 if 0x0 goto @Nublado 'Tienes un 30% de tener Nublado goto @Llueve 'Tienes un 10% de tener Lluvia. #org @Sol setvar 0x(Variable 2) 0x0 setweather 0x0 nop doweather end #org @Nublado setvar 0x(Variable 2) 0x1 setweather 0x0B nop doweather end #org @Llueve setvar 0x(Variable 2) 0x2 setweather 0x3 nop doweather end Versión compleja Esta versión, funciona como la anterior, solo que esta tiene más factores a tener en cuenta y además usa las mismas variables. La particularidad de esta versión, es que en función del clima anterior en el mapa variarán los % de futuros climas, traducio, que si a las 3pm hay tormenta es muy poco probable que a las 4pm haga un sol bestial. [URL="http://www.mediafire.com/download/8adr1d0t5bb1usd/Script+complejo+de+clima+%28No+estaciones%29.rbc"]Script Clima Dinámico Complejo - Dani_SR_17[/URL] #dynamic 0x800000 ' Este es un script para crear un clima dinámico en los mapas. ' Se necesitará una variable dinámica (1 para todos los mapas, no 1 por cada mapa) y dos variable para cada mapa. ' En la variable 1 de cada mapa, se almacenará la última hora en la que entraste al mapa, si entrás a las 3pm, y después a las 4pm, el clima podrá cambiar. ' En la variable 2 de cada mapa, se almacenará el clima que hacía en la última hora en la que entraste, en caso de que siga siendo la misma hora. ' Esta es una versión un poco más compleja del script, según el clima anterior variarán los % de los siguientes climas. #org @start copybyte 0x20370D0 0x3005542 'Vamos a revisar si ha cambiado la hora o no. comparevars LASTRESULT 0x(Variable 1) if 0x1 goto @Nada goto [MENTION=26827]Camb[/MENTION]ioDeClima #org @Nada 'Sigue el clima anterior compare 0x(Variable 2) 0x0 if 0x1 goto @Sol compare 0x(Variable 2) 0x1 if 0x1 goto @Nublado compare 0x(Variable 2) 0x2 if 0x1 goto @Llueve #org [MENTION=26827]Camb[/MENTION]ioDeClima 'En este caso, el script es más complejo, según el clima de la hora anterior, variarán los % para horas siguientes. copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora compare 0x(Variable 2) 0x0 if 0x1 goto @TeniamosSol compare 0x(Variable 2) 0x1 if 0x1 goto @TeniamosNublado compare 0x(Variable 2) 0x2 if 0x1 goto @TeniamosLlueve #org @TeniamosSol random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x8 if 0x0 goto @Sol 'Tienes un 80% de tener Sol. goto @Nublado 'Tienes un 20% de tener Nublado #org @TeniamosNublado random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x3 if 0x0 goto @Sol 'Tienes un 30% de tener Sol. compare 0x(Variable dinámica) 0x7 if 0x0 goto @Nublado 'Tienes un 40% de tener Nublado. goto @Llueve 'Tienes un 30% de tener Llueve. #org @TeniamosLlueve random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Llueve 'Tienes un 60% de tener Llueve. goto @Nublado 'Tienes un 40% de tener Nublado. #org @Sol setvar 0x(Variable 2) 0x0 setweather 0x0 nop doweather end #org @Nublado setvar 0x(Variable 2) 0x1 setweather 0x0B nop doweather end #org @Llueve setvar 0x(Variable 2) 0x2 setweather 0x3 nop doweather end Actualización del post Sistema de Estaciones añadido Como dije, he mejorado los scripts, ahora son compatibles con las Estaciones del DNS, evidentemente, requiere tener insertada la rutina de las Estaciones de DNS. Para entender mejor el script recomiendo leer este [URL="http://wahackforo.com/t-25186/gba-otros-tutorial-sistema-estaciones"]>>tutorial<<[/URL] de [MENTION=13374]Javi4315♪[/MENTION] Tengo que aclarar, que como podréis ver, hay 3 scripts, el primero como explico más abajo es opcional. También, si veis que los climas son los mismos para todas las estaciones, aunque tengo notas en los scripts que explican el motivo, lo aclaro aquí, como es una base y vais a cambiar lo % y los climas seguramente, he puesto los que ya tenia más que nada porque si los vais a cambiar es inútil pegarme el curo de cambiarlos. Script cambio de Estación Ahora tengo que explicar una cosa, este fragmento, debéis insertarlo en el script solo si queréis que al cambiar de estación el cambio de clima pueda ser brusco, me explico, si no lo ponéis y el último día de Otoño tenéis Sol, al comenzar el Invierno tendréis Sol (en principio), mientras que si lo ponéis es más probable de que cambie. [URL="http://www.mediafire.com/download/rv15mevt53b1bt1/Script+cambio+de+Estaci%C3%B3n.rbc"]Script cambio de Estación - Dani_SR_17[/URL] ' Este script es por si lo queréis añadir al del clima con estaciones, aahora explico como añadirlo. ' Lo primero, necesitamos una 3º Variable, en este caso solo 1 para todos los mapas, voy a llamarla (Variable 3) ' Después, en cada "@(Estación)", por ejemplo, @Verano, debéis poner un "setvar 0x(Variable 3) 0x(Nº Estación)", los Nº de las estaciones son: Verano -> 0, Otoño -> 1, Invierno -> 2, Primavera -> 3. ' Y ahora, debéis añadir esto, nada más comenzar, antes del "@Start". #org @MirarEstación copybyte 0x20370D0 0x203C001 comparevars LASTRESULT 0x(Variable 3) 'Vamos a ver si estamos en la misma estación. if 0x1 goto @Start 'Si lo estamos, el script del clima comienza normalmente, mirando si ha cambiado la hora y tal. goto @Estaciones 'Si es una nueva estación, pasamos directamente a ver en que estacción estamos, para un nuevo clima. Versión simple con Estaciones Ahora le toca a la versión simple del script, pero con la influencia de las estaciones. [URL="http://www.mediafire.com/download/kkktzpe66lpsf1b/Script+sencillo+de+clima+%28Estaciones%29.rbc"]Script Clima Dinámico Sencillo con Estaciones - Dani_SR_17[/URL] #dynamic 0x800000 ' Este es un script para crear un clima dinámico en los mapas. ' Se necesitará una variable dinámica (solo 1 para todos los mapas, no 1 por cada mapa) y dos variable para cada mapa. ' En la variable 1 de cada mapa, se almacenará la última hora en la que entraste al mapa, si entrás a las 3pm, y después a las 4pm el clima podrá cambiar. ' En la variable 2 de cada mapa, se almacenará el clima que hacía en la última hora en la que entraste, en caso de que siga siendo la misma hora. ' Esta es una versión mejorada del script sencillo, compatible con las estaciones del DNS. ' Voy a poner las 4 estaciones con los mismos climas, porque es algo muy personal lo que queráis poner, así que los % y los climas los ponéis vosotros. ' ¿Por qué no guardo la estación en una Variable? Pues muy sencillo, se puede hacer que si se cambia de estación (lo pondré a parte aun así), cambié el clima, pero es gastar una variable más para algo que no es necesario, porque aunque se cambié de estación de golpe el clima no tiene por qué cambiar. #org @Start copybyte 0x20370D0 0x3005542 'Vamos a revisar si ha cambiado la hora o no. comparevars LASTRESULT 0x(Variable 1) if 0x1 goto @Nada 'Si es la misma hora que la última vez que el script se ejecuto, no pasa nada. goto @Estaciones #org @Nada 'Sigue el clima anterior compare 0x(Variable 2) 0x0 if 0x1 goto @Sol compare 0x(Variable 2) 0x1 if 0x1 goto @Nublado compare 0x(Variable 2) 0x2 if 0x1 goto @Llueve #org @Estaciones copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x0 'Si estamos en Verano. if 0x1 goto @Verano copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x1 'Si estamos en Otoño. if 0x1 goto @Otoño copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x2 'Si estamos en Primavera. if 0x1 goto @Invierno goto @Primavera 'Aquí nos ahorramos la comparación, porque si lleguamos aquí es porque es Primavera. ' Ahora solo debemos hacer el script para cada estación, en este caso como es un script "base", no voy a ponerme a cambiar climas ni nada, de eso ya os encargais vosotros. '--------------------------------- Verano --------------------------------- #org @Verano copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Sol 'Tienes un 60% de tener Sol. compare 0x(Variable dinámica) 0x9 if 0x0 goto @Nublado 'Tienes un 30% de tener Nublado goto @Llueve 'Tienes un 10% de tener Lluvia. '--------------------------------- Otoño --------------------------------- #org @Otoño copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Sol 'Tienes un 60% de tener Sol. compare 0x(Variable dinámica) 0x9 if 0x0 goto @Nublado 'Tienes un 30% de tener Nublado goto @Llueve 'Tienes un 10% de tener Lluvia. '--------------------------------- Invierno --------------------------------- #org @Invierno copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Sol 'Tienes un 60% de tener Sol. compare 0x(Variable dinámica) 0x9 if 0x0 goto @Nublado 'Tienes un 30% de tener Nublado goto @Llueve 'Tienes un 10% de tener Lluvia. '--------------------------------- Primavera --------------------------------- #org @Primavera copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Sol 'Tienes un 60% de tener Sol. compare 0x(Variable dinámica) 0x9 if 0x0 goto @Nublado 'Tienes un 30% de tener Nublado goto @Llueve 'Tienes un 10% de tener Lluvia. '--------------------------------- Los climas --------------------------------- ' No hace falta poner los climas en cada estación, como con ellos acaba el script se pueden poner al final. #org @Sol setvar 0x(Variable 2) 0x0 setweather 0x0 nop doweather end #org @Nublado setvar 0x(Variable 2) 0x1 setweather 0x0B nop doweather end #org @Llueve setvar 0x(Variable 2) 0x2 setweather 0x3 nop doweather end Versión compleja con Estaciones Versión compleja del script, pero con la influencia de las estaciones. [URL="http://www.mediafire.com/download/iqjslig7npzdlvj/Script+complejo+de+clima+%28Estaciones%29.rbc"]Script Clima Dinámico Complejo con Estaciones - Dani_SR_17[/URL] #dynamic 0x800000 ' Este es un script para crear un clima dinámico en los mapas. ' Se necesitará una variable dinámica (1 para todos los mapas, no 1 por cada mapa) y dos variable para cada mapa. ' En la variable 1 de cada mapa, se almacenará la última hora en la que entraste al mapa, si entrás a las 3pm, y después a las 4pm, el clima podrá cambiar. ' En la variable 2 de cada mapa, se almacenará el clima que hacía en la última hora en la que entraste, en caso de que siga siendo la misma hora. ' Esta es una versión un poco más compleja del script, según el clima anterior variarán los % de los siguientes climas. ' Esta es una versión mejorada del script complejo, compatible con las estaciones del DNS. ' Voy a poner las 4 estaciones con los mismos climas, porque es algo muy personal lo que queráis poner, así que los % y los climas los ponéis vosotros. ' ¿Por qué no guardo la estación en una Variable? Pues muy sencillo, se puede hacer que si se cambia de estación (lo pondré a parte aun así), cambié el clima, pero es gastar una variable más para algo que no es necesario, porque aunque se cambié de estación de golpe el clima no tiene por qué cambiar. #org @start copybyte 0x20370D0 0x3005542 'Vamos a revisar si ha cambiado la hora o no. comparevars LASTRESULT 0x(Variable 1) if 0x1 goto @Nada goto @Estaciones #org @Nada 'Sigue el clima anterior compare 0x(Variable 2) 0x0 if 0x1 goto @Sol compare 0x(Variable 2) 0x1 if 0x1 goto @Nublado compare 0x(Variable 2) 0x2 if 0x1 goto @Llueve #org @Estaciones copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x0 'Si estamos en Verano. if 0x1 goto @Verano copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x1 'Si estamos en Otoño. if 0x1 goto @Otoño copybyte 0x20370D0 0x203C001 compare LASTRESULT 0x2 'Si estamos en Primavera. if 0x1 goto @Invierno goto @Primavera 'Aquí nos ahorramos la comparación, porque si lleguamos aquí es porque es Primavera. ' Ahora solo debemos hacer el script para cada estación, en este caso como es un script "base", no voy a ponerme a cambiar climas ni nada, de eso ya os encargais vosotros. ' Si os vijais, en cada zona, hay por ejemplo: "@TeniamosSol_", acabado en una letra, cada letra es la inicial de la estación que corresponde, por una razón muy sencilla, si en Verano tenemos Sol, es menos probable que llueva que si en Invierno tenemos Sol. '--------------------------------- Verano --------------------------------- #org @Verano 'En este caso, el script es más complejo, según el clima de la hora anterior, variarán los % para horas siguientes. copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora compare 0x(Variable 2) 0x0 if 0x1 goto @TeniamosSolV compare 0x(Variable 2) 0x1 if 0x1 goto @TeniamosNubladoV compare 0x(Variable 2) 0x2 if 0x1 goto @TeniamosLlueveV #org @TeniamosSolV random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x8 if 0x0 goto @Sol 'Tienes un 80% de tener Sol. goto @Nublado 'Tienes un 20% de tener Nublado #org @TeniamosNubladoV random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x3 if 0x0 goto @Sol 'Tienes un 30% de tener Sol. compare 0x(Variable dinámica) 0x7 if 0x0 goto @Nublado 'Tienes un 40% de tener Nublado. goto @Llueve 'Tienes un 30% de tener Llueve. #org @TeniamosLlueveV random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Llueve 'Tienes un 60% de tener Llueve. goto @Nublado 'Tienes un 40% de tener Nublado. '--------------------------------- Otoño --------------------------------- #org @Otoño 'En este caso, el script es más complejo, según el clima de la hora anterior, variarán los % para horas siguientes. copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora compare 0x(Variable 2) 0x0 if 0x1 goto @TeniamosSolO compare 0x(Variable 2) 0x1 if 0x1 goto @TeniamosNubladoO compare 0x(Variable 2) 0x2 if 0x1 goto @TeniamosLlueveO #org @TeniamosSolO random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x8 if 0x0 goto @Sol 'Tienes un 80% de tener Sol. goto @Nublado 'Tienes un 20% de tener Nublado #org @TeniamosNubladoO random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x3 if 0x0 goto @Sol 'Tienes un 30% de tener Sol. compare 0x(Variable dinámica) 0x7 if 0x0 goto @Nublado 'Tienes un 40% de tener Nublado. goto @Llueve 'Tienes un 30% de tener Llueve. #org @TeniamosLlueveO random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Llueve 'Tienes un 60% de tener Llueve. goto @Nublado 'Tienes un 40% de tener Nublado. '--------------------------------- Invierno --------------------------------- #org @Invierno 'En este caso, el script es más complejo, según el clima de la hora anterior, variarán los % para horas siguientes. copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora compare 0x(Variable 2) 0x0 if 0x1 goto @TeniamosSolI compare 0x(Variable 2) 0x1 if 0x1 goto @TeniamosNubladoI compare 0x(Variable 2) 0x2 if 0x1 goto @TeniamosLlueveI #org @TeniamosSolI random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x8 if 0x0 goto @Sol 'Tienes un 80% de tener Sol. goto @Nublado 'Tienes un 20% de tener Nublado #org @TeniamosNubladoI random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x3 if 0x0 goto @Sol 'Tienes un 30% de tener Sol. compare 0x(Variable dinámica) 0x7 if 0x0 goto @Nublado 'Tienes un 40% de tener Nublado. goto @Llueve 'Tienes un 30% de tener Llueve. #org @TeniamosLlueveI random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Llueve 'Tienes un 60% de tener Llueve. goto @Nublado 'Tienes un 40% de tener Nublado. '--------------------------------- Primavera --------------------------------- #org @Primavera 'En este caso, el script es más complejo, según el clima de la hora anterior, variarán los % para horas siguientes. copybyte 0x20370D0 0x3005542 copyvar 0x(Variable 1) LASTRESULT 'Vamos a guardar la nueva hora compare 0x(Variable 2) 0x0 if 0x1 goto @TeniamosSolP compare 0x(Variable 2) 0x1 if 0x1 goto @TeniamosNubladoP compare 0x(Variable 2) 0x2 if 0x1 goto @TeniamosLlueveP #org @TeniamosSolP random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x8 if 0x0 goto @Sol 'Tienes un 80% de tener Sol. goto @Nublado 'Tienes un 20% de tener Nublado #org @TeniamosNubladoP random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x3 if 0x0 goto @Sol 'Tienes un 30% de tener Sol. compare 0x(Variable dinámica) 0x7 if 0x0 goto @Nublado 'Tienes un 40% de tener Nublado. goto @Llueve 'Tienes un 30% de tener Llueve. #org @TeniamosLlueveP random 0x10 copyvar 0x(Variable dinámica) LASTRESULT compare 0x(Variable dinámica) 0x6 if 0x0 goto @Llueve 'Tienes un 60% de tener Llueve. goto @Nublado 'Tienes un 40% de tener Nublado. '--------------------------------- Los climas --------------------------------- ' No hace falta poner los climas en cada estación, como con ellos acaba el script se pueden poner al final. #org @Sol setvar 0x(Variable 2) 0x0 setweather 0x0 nop doweather end #org @Nublado setvar 0x(Variable 2) 0x1 setweather 0x0B nop doweather end #org @Llueve setvar 0x(Variable 2) 0x2 setweather 0x3 nop doweather end :blush: Espero que os guste esta actualización, aunque no muchos usen las estaciones, pero bueno, puede ser útil para los que las usen. :blush: