Registrarse

Ejecutar script automaticamente

Estado
Cerrado para nuevas respuestas.

lucas2017

Aguante Magikarp
Hola gente :) bueno tengo una pequeña duda y quería saber si pueden darme una solución, necesito saber si hay una forma de que un script se ejecute automáticamente cuando el usuario ingrese a el mapa en donde se encuentra el script.

para mas datos uso Advanse Map para editar mapas.
 
Última edición:
Hola.

Se les llama scripts de Nivel,aquellos scripts que se ejecutan al entrar en un mapa.
Hay diversos tutos sobre eso, supongo que te da pereza leerlos o buscarlos... en fin aquí te facilito el link
https://whackahack.com/foro/t-42542/megatutorial-scripting-desde-cero-finalizado

Lo que debiste haber aprendido antes son los scripts de gatillo, y con ello la utilización de las Variables y valores, y por supuesto desactivarlos cambiando aquellos valores ya que con los scripts de nivel lo tienes que desactivar de esa manera.

Y bueno en resumidas cuentas, si vas hacer un script de nivel tipo 2 o 4:
1) Donde dice flag pones una variable ejemplo 40FF
2)Value, veras si quieres que se ejecute nada mas entrar en el mapa, pones 0000
Pero como es obvio puedes ponerle en valor que desee (0000-FFFF)
3) script, ya sabrás

Habrá un error en común
1) Cuando se ejecute el script de nivel, al final aparecen letras raras, eso se soluciona facilmente.
1) En el mapa, donde asignaste el script de nivel aplasta control + h, luego copia el map script offset
2)Abres XSe y carga el rom, luego colocas el offset en la ventanita de ahí y marcas en la casilla donde dice script de nivel, y a lado descompìlas.
3)Buscas donde diga "#raw word 0xFFFF" y lo modificas con 0x0 y lo compilas y listo
Bueno al final creo que te resumí un poco, para mas información tienes el tuto que te deje en un principio.

Espero haberte ayudado.

pd: Si algo esta mal dicho o te confundí mas lo siento nunca fue mi intención y si esta mal la información que me corrija al final creo que se aprende.

M.H.B.P
 

lucas2017

Aguante Magikarp
gracias por responder amigo, te agrego una consulta hay algún tutorial en donde expliquen que función hace cada uno de estos:

aunque busque los tutos que encontré solo describen algunas, pero no aclaran por ejemplo por que hay dos que son iguales o para que sirven otras.
 

H.B.P

Emperador Kaktiácero
Miembro de honor
gracias por responder amigo, te agrego una consulta hay algún tutorial en donde expliquen que función hace cada uno de estos:

aunque busque los tutos que encontré solo describen algunas, pero no aclaran por ejemplo por que hay dos que son iguales o para que sirven otras.
Como rom hacker, no suelo utilizar todos los tipos de scripts de nivel, pero te voy indicando lo que sé:

  • 01 -> Se utiliza para comandos que colocan tiles en X coordenadas, no muchos más.
  • 02 -> Este tipo permite ejecutar un script normal y corriente nada más entras en el mapa.
  • 03 -> Con este ejecutas un script nada más entras en el mapa, pero a diferencia del anterior, sólo permite el uso de algunos comandos. Más que nada se utiliza para desplazar minis y cambiar la música del mapa, entre otros.
  • 04 -> No lo uso y no tengo mucha idea de este tipo, pero creo que viene a tener el mismo uso que el tipo 02.
  • 05 -> Tiene el mismo efecto que el tipo 03, pero además se ejecuta cuando cierra el menú principal.
  • 07 -> Según diego, usuario de Pokecommunity, tiene el mismo efecto que el tipo 05.

Los más utilizados son los tipos 01, 02 y 03.
 

lucas2017

Aguante Magikarp
Ejecutar script en mapa

Hola gente, bueno creo este tema por que me cerraron el anterior no se por que, no creo haber violado el reglamento, pero bueno estuve probando lo que me dijeron en dicho tema: https://whackahack.com/foro/t-50775/ejecutar-script-automaticamente y tengo un problema, y es que el script no se ejecuta, para mas datos aclaro que este script debe ejecutarse en el inicio de el juego, es decir el Player luego de la escena de el profesor oak aparece en este mapa y debe ejecutarse este script.

Foto de configuración:



Script:

Código:
#dynamic 0x800000

#org @inicio
lock
msgbox @mensaje 0x6
applymovement 0xFF @mover
waitmovement 0xFF
msgbox @mensaje2 0x6
msgbox @mensaje3 0x6
callasm 0x809FC91
msgbox @mensaje4 0x6
msgbox @mensaje5 0x6
setflag 0x100
release
end



#org @mensaje
= [blue_fr]???: [black_fr]Me pregunto para que me\nhabrá llamado el capitán y por\lque me habrá citado en este\lpequeño pueblo.

#org @mover
#raw 0x1
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0x2
#raw 0x12
#raw 0x1
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0xFE

#org @mensaje2
= [blue_fr]???: [black_fr]Hola, buenos días, el\ncapitán me sito en esta comisaria\lpara hablar con el.

#org @mensaje3
= [blue_fr]Agente: [black_fr]mmm y usted ¿quién es?

#org @mensaje4
= [blue_fr]Agente: [black_fr]Así que tu eres [player]

#org @mensaje5
= [blue_fr]Agente: [black_fr]Por favor sube por las\nescaleras para hablar con el\lcapitán.
antes de crear este tema leí bastante tutos (tanto los que me recomendaron) como otros y aun así no se donde esta el error, no se por que no se ejecuta.
 

Inferno

Miembro insignia
Miembro insignia
Re: Ejecutar script en mapa

Hola gente, bueno creo este tema por que me cerraron el anterior no se por que, no creo haber violado el reglamento, pero bueno estuve probando lo que me dijeron en dicho tema: https://whackahack.com/foro/t-50775/ejecutar-script-automaticamente y tengo un problema, y es que el script no se ejecuta, para mas datos aclaro que este script debe ejecutarse en el inicio de el juego, es decir el Player luego de la escena de el profesor oak aparece en este mapa y debe ejecutarse este script.

Foto de configuración:



Script:

Código:
#dynamic 0x800000

#org @inicio
lock
msgbox @mensaje 0x6
applymovement 0xFF @mover
waitmovement 0xFF
msgbox @mensaje2 0x6
msgbox @mensaje3 0x6
callasm 0x809FC91
msgbox @mensaje4 0x6
msgbox @mensaje5 0x6
setflag 0x100
release
end



#org @mensaje
= [blue_fr]???: [black_fr]Me pregunto para que me\nhabrá llamado el capitán y por\lque me habrá citado en este\lpequeño pueblo.

#org @mover
#raw 0x1
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0x2
#raw 0x12
#raw 0x1
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0xFE

#org @mensaje2
= [blue_fr]???: [black_fr]Hola, buenos días, el\ncapitán me sito en esta comisaria\lpara hablar con el.

#org @mensaje3
= [blue_fr]Agente: [black_fr]mmm y usted ¿quién es?

#org @mensaje4
= [blue_fr]Agente: [black_fr]Así que tu eres [player]

#org @mensaje5
= [blue_fr]Agente: [black_fr]Por favor sube por las\nescaleras para hablar con el\lcapitán.
antes de crear este tema leí bastante tutos (tanto los que me recomendaron) como otros y aun así no se donde esta el error, no se por que no se ejecuta.
El script tiene varios errores, pero si los arreglas funciona perfectamente (lo he probado), te paso a explicar los fallos.

El fallo más grave y visto a simple vista es que has usado una flag, tanto en el XSE como en el Advance Map, en lugar de una variable, aunque el parámetro se llame flag tenemos que usar variables, y para activarlas por medio de un script se usa el comando setvar. El parámetro llamado "Value" nos indica el valor que debe tener la variable que vamos a usar para que el script se ejecute, es decir, si aquí pones 0000 te tienes que asegurar que la variable tiene el valor 0, y para que el script no se vuelva a repetir debes cambiar el valor de esta al final del script. (Variables recomendadas, desde la 4000 a la 4FFF)
Otro fallo que veo es que detrás del callasm debes usar un waitstate, en rutinas que suelen llamar a otra pantalla es necesario que lo utilices para que se ejecute de forma correcta.

Luego las recomendaciones, usa el comando waitmsg detrás de las msgbox (a menos que quieras dar el efecto de estar hablando mientras el personaje está andando es recomendable usar este comando).

Para cualquier cosa que no entiendas coméntalo.
 

lucas2017

Aguante Magikarp
gracias por tu repuesta logre que el scrpt funcionara pero tengo un problema, supuestamente el callasm 0x809FC91 lo que hace es abrir el cambio de nombre y si bien es así, cuando creo mi nombre me abre automáticamente el menú lo que ocasiona que el script se repita nuevamente al cerrar el menu :S
 

lucas2017

Aguante Magikarp
Bueno gente dejo el tema como solucionado gracias a todos los que me ayudaron, tuve que modificar un poco el script por el problema que el editor de nombre me abría el menú pero en si me sirvieron mucho sus repuestas :) gracias a todos.
 
Estado
Cerrado para nuevas respuestas.
Arriba