Registrarse

Script de Gatillo

Estado
Cerrado para nuevas respuestas.

Zeon

Haters gonna Hate.
Hoy me he estado mirando los tutoriales de Scripts y tal, pero resulta que a la hora de hacer uno de gatillo, creo el script, lo coloco en el mapa, pero no me deja darle a Open Script para editarlo, alguna solución?
Adjunto imagen

Quizas la pregunta se haya quedado un poco corta, pero eso es todo
Saludos
 

KevinXDE

Usuario mítico
Eso es porque en Script Offset no has puesto ningún offset. Coloca el offset que vayas a usar (o uno cualquiera, de todas maneras luego al compilarlo, si usas el dynamic te dará uno nuevo), y luego dale a open script

Si usas dynamic, luego pon el offset que te de XSE (o otra herramienta si no usas esa) en Script Offset.

Lo demás (Unknown, Variable y Value) es correcto, así que no deberías tener problemas. Eso si, en tu script, si no quieres que se vuelva a repetir cuando lo vuelvas a pisar, pon:

setvar 0x4051 0x1
 

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
Lo dicho por Tervaxx es correcto. Solo quiero añadir, por si a caso no los sabes, que desde AdvanceMap elijas el XSE. Es secillo, en AdvanceMap:

Opciones>Choose Script Editor

Eliges la aplicación XSE y le das a OK a la ventana que te dan.

Un abrazo.
 

Zeon

Haters gonna Hate.
Tengo otra pregunta, me he visto tutoriales y cuando lo compilan, les aparece abajo el numero que poner, porque a mi no?
 

KevinXDE

Usuario mítico
Tengo otra pregunta, me he visto tutoriales y cuando lo compilan, les aparece abajo el numero que poner, porque a mi no?
Tu ya estás usando el offset 657657. Ellos seguramente usan el dynamic y por eso al compilar les da un offset nuevo. A ti no te hace falta, ya estás dando el offset. Tan solo pon 657657 en Script Offset, en Advance Map (sin quitar el $)
 

Zeon

Haters gonna Hate.
Sigo con preguntas, me gustaria usar el dynamic, como?

Si pongo por casualidad un numero que ya esta en el juego y lo cambio, luego cambiara tambien ese script, no me la quiero jugar, como se ponde?
 

KevinXDE

Usuario mítico
Sigo con preguntas, me gustaria usar el dynamic, como?

Si pongo por casualidad un numero que ya esta en el juego y lo cambio, luego cambiara tambien ese script, no me la quiero jugar, como se ponde?
Tan solo tienes que ponerlo en la primera linea, por ejemplo acabo de coger esto de algun lado:

#dynamic 0x700000
#org @inicio
applymovement 0xFF @mov1
waitmovement 0x0
warp 0x2B 0x0 0x0 0x09 0x32
end

Lo unico que te interesa es poner el #dynamic en la primera línea, seguido de 0xOffset (a tu elección. En Fire Red empieza a haber espacio vacío alrededor del offset 700000. Puedes poner 800000 y te quitas de problemas)

Lo que sigue es el script normal. Cuando compiles te saldra la pantallita con el offset, lo copias, y lo pegas en Advance Map, en Script Offset
 

Zeon

Haters gonna Hate.
Joder, como se nota que soy novato, entonces, Que OFFSTETS puedo usar?
 

KevinXDE

Usuario mítico
Joder, como se nota que soy novato, entonces, Que OFFSTETS puedo usar?
Para el script o para el #dynamic xD?

Para un script obviamente siempre debes usar un offset vacío. Puedes usar la herramienta FSF para buscar uno. El dynamic tambien sirve para precisamente eso: cuando lo pones en el script, al compilar te busca un offset libre a partir del número/offset que le dices (yo pongo 700000).
 

Zeon

Haters gonna Hate.
No me entero de nada tio...

A ver, para usarlo: En Offset si no pongo nada, no me deja darle a Open Script, pero que Offset puedo/Tengo que poner?

y explicame lo de script y dynamic please
 

KevinXDE

Usuario mítico
No me entero de nada tio...

A ver, para usarlo: En Offset si no pongo nada, no me deja darle a Open Script, pero que Offset puedo/Tengo que poner?

y explicame lo de script y dynamic please
Jajaja xD, es que yo también me explico muy mal tío. A ver:

En Advance Map, en Script Offset, yo lo que hago es poner un offset cualquiera, normalmente vacío (sus bytes son FF). Como he dicho, suele haber espacio vacío a partir del offset 700000 (en Fire Red, en las demás ROMs no se).

Pues, por ejemplo, en Script Offset pones 909090. Ahí, si no has insertado nada, seguro que hay espacio vacío. Le das para abrirlo y editarlo. En el script que vayas a pegar, pones lo siguiente de primero:

#dynamic 0x700000

El 0x700000 indica que el script que vas a compilar lo hará en un espacio vacío a partir de esa dirección. Por ejemplo, supongamos que tu pones #dynamic 0x700000 y la dirección $700000 la tienes ocupada por otro script. No hay problema, pues el dynamic te busca otra (por ejemplo 703000). Cuando compiles el script, copias el offset que te da, en mi ejemplo 703000. Despues vuelves al Advance Map y en Script Offset sustituyes el $909090 por $703000. Y obviamente guardas


Cualquier duda sigue preguntanto, no te cortes xD
 

Laquin

Usuario mítico
Cuando pones un dynamic 0x800000, lo que haces es buscar espacio a partir de la dirección 0x800000 donde escribir el script.

Imagínate que tu script ocupa 9 bytes, y pones dynamic 0x800000. Imagínate que en la ROM, el offset 0x800000 está vacío. Sin embargo, el 0x800002 no está vacío(ni el 0x800003, ni el 0x800004), por lo que no puedes escribir el script en el 0x800000(porque en 2 bytes no te entra un script de 9 bytes).
Pero imagínate que a partir del 0x800005, hay 21 bytes libres. Esos 9 bytes que ocupa tu script entran perfectamente ahí, por lo que tu script sería escrito en la dirección 0x800005.

Por otro lado, si pones #org 0x800000 estás obligando al compilador que escriba el script allí, sin importar si está ocupado o no. Si pones eso, no te va a salir la ventana donde te dice dónde ha escrito el script, pues al haber elegido tú la dirección deberías saberlo.

Espero que hayas entendídolo. Si no, pregunta y te explicaremos hasta que lo entiendas. :)
 
Última edición:

Rubire4

Usuario mítico
@wenston91 Si quieres que te deje darle a open script lo primero que debes hacer es hacer que el XSE esté unido al Advance Map, pero no solo eso, si editas un script de gatillo te dejará darle ya a open script, en caso de que crees un script de gatillo nuevo, no te dejará darle a open script en el primer momento. Lo que deberás hacer es poner un número aleatorio al lado ede los ceros que ya hay puestos en el número de offset y ya te dejará abrirlo.
Cuando hagas eso te saldrá un script aleatorio en elo XSE, bien, pues borras TODO lo que haya dentro, hasta que se quede vacío.
Y apartir de ahí tienes que hacer el script.
Como veo que usas de base el Fire Red, tendrás que empezar poniendo esto:

Código:
#dynamic 0x700000

#org @inicio
Y apartir de ahí seguir con el script.
Acuedate simpre de poner "end" al final del script.
Por último compilar. copias el PRIMER offset que te da, y lo pegas en el script de gatillo en el Advance Map.
En los script de gatillo tienes que poner un número donde pone Number variable o algo así.
Pero no puedes poner uno cualquiara, yo ya no me acuerdo de que números a qué números puedes poner, pero si buscas en YouTube o aquí lodirán seguramente.

Ya se que parece mucho pero se te hará sencillo con la práctica.

Suerte ;)
 

Zeon

Haters gonna Hate.
Enlazo con este tema:

el caso, llevo toda la tarde (lo conseguí) haciendo un movimiento de Deoxys nada mas salir del pueblo:

'---------------
#org 0x80022A
lock
applymovement 0x3 0x8800238
waitmovement 0x0
release
end


'-----------
' Movements
'-----------
#org 0x800238
#raw 0x62 'Exclamation Mark (!)
#raw 0x52 'Jump in Place (Facing Down)
#raw 0x52 'Jump in Place (Facing Down)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x3C 'Slide Right (Fast)
#raw 0x4F 'Jump Up
#raw 0x3 'Face Right
#raw 0x0 'Face Down
#raw 0x52 'Jump in Place (Facing Down)
#raw 0x2 'Face Left
#raw 0x80 'mov80
#raw 0x8 'Step Down (Very Slow)
#raw 0x51 'Jump Right
#raw 0x0 'Face Down
#raw 0x0 'Face Down
#raw 0x6C 'mov6C
#raw 0x2 'Face Left
#raw 0xFE 'End of Movements
Pero no se como hacer para que una vez se haya ido (con los movimientos) si vuelvo al pueblo, no vuelva a aparecer, se que es como con un flag, pero no se como, alguien?

(A lo mejor deberia crear nuevo tema xD)
 

KevinXDE

Usuario mítico
Enlazo con este tema:

el caso, llevo toda la tarde (lo conseguí) haciendo un movimiento de Deoxys nada mas salir del pueblo:



Pero no se como hacer para que una vez se haya ido (con los movimientos) si vuelvo al pueblo, no vuelva a aparecer, se que es como con un flag, pero no se como, alguien?

(A lo mejor deberia crear nuevo tema xD)
Estás haciendo un script de gatillo, ¿no? Si explicas un poco en que consiste el script te podemos ayudar mejor xD

Me he hecho una idea ahora, asi que no se si es correcta: lo que estás haciendo es que al pisar el script de gatillo, el deoxys empiece a moverse? Si es así, en Advance Map > Ver Eventos, le das al mini del Deoxys y le pones una flag libre (en Person ID), por ejemplo 200. Las flags libres son de 200 a 2FF. Luego en el script, al final, pones setflag 0x200 (o la flag que hayas escogido), y el Deoxys no volverá a aparecer. Para que el script de gatillo tampoco se vuelva a activar cuando lo pises, pon la setvar que te dije anteriormente en un post

Que alguien me corrija si me equivoco, es que yo soy más de usar variables que flags, las flags casi nunca las toco xD
 

Zeon

Haters gonna Hate.


No se, pero al añadir el setflag 0x200
se "arregla" y se pone como esta, ahora cuando salgo de la casa, no me lleva al pueblo, el juego vuelve a empezar y es un bucle xD
 

KevinXDE

Usuario mítico
Hmm... No se xD... Es muy raro. Creo que el problema está en poner la setflag en el mismo script. Podrías probar a hacer un script de nivel en la ruta de al lado o en las casas, añadiendo esa setflag, de manera que, mediante variables, cuando se ejecute el script de Deoxys, al entrar a una casa/ir a la siguiente ruta y despues volver al pueblo, el mini desapareza. Pero que antes de que se ejecute el script de Deoxys no se haga el setflag

No tengo mucha experiencia en flags, como he dicho, así que quizás es muy rebuscado? Lo mejor será que te ayude otro con más experiencia a partir de ahora ^^', aunque puedes probar lo que te he dicho, a lo mejor te va, quien sabe...

Edito: Hay algunas cosas mal en tu script, por ejemplo el applymovement 0x200. Eso debería ser applymovement 0x3, ya que es el tercer mini del mapa, no el nº200 xD. Otra cosa es, que el mini de Deoxys no debe tener nada en Script Offset. Eso es para el script de gatillo tan solo. Ah, y tambien prueba a poner un hidesprite 0x3, para que desaparezca. Antes no lo he dicho porque con los items no lo ponen, pero quizás estaba equivocado. Despues de esto, ya no crea que sea más de ayuda, así que suerte xD
 
Última edición:

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
No me entero de nada tio...

A ver, para usarlo: En Offset si no pongo nada, no me deja darle a Open Script, pero que Offset puedo/Tengo que poner?

y explicame lo de script y dynamic please
En otro post te he dado unos tutos que puedes seguir.

ahora tus preguntas:

offset= es una dirección de tu rom. Tu ROM está compuesta por muchísimos datos (bytes) uno detrás de otro. Un offset lee a partir de un byte concreto en una posicón concreta de la cadena de datos.

#dynamic 0x(offset): es un comando para utilizar en XSE, sirve para definir a partir de que dirección empieza a buscar lugares donde no hay datos y se pueden crear de nuevos. Te servirá para no remplazar datos de t rom y así poder crear nuevo contenido.

Tu abre un offset del juego, cuando ya lo hayas abierto simplemente eliminas todo y pones el dynamic. No eliminaras el offset tranquilo. Los ofsset no se eliminan, se remplazan o se crean de nuevos. y para ello pones el comando dynamic como te acabo de explicar.

El script es el evento que quieres que aparezca en la rom. Un ejemplo es un NPC hablando o un combate de gimnasio. Los scripts estan formados por comandos.

Esto es un resumen rápido pero válido creo yo. Pero ya te he recomendado en el otro post el tuto de Javi para que empieces con buen pie.

Suerte!

Un abrazo.
 
Estado
Cerrado para nuevas respuestas.
Arriba