Cómo crear un script: Nivel Novato y Principiante

Ver el tema anterior Ver el tema siguiente Ir abajo

Cómo crear un script: Nivel Novato y Principiante

Mensaje por Rey Boo el Dom Nov 29, 2009 5:57 pm

Hola, ya siguiendo con mis manuales sobre script voy a poner una guía, la más fácil posible, sobre cómo hacer un script y poder compilarlo.

Bien, antes de nada veamos los requisitos:

- XSE (Xtreme Script Editor).
- Una rom en sucio para experimentar y aprender (lo mejor es que le hagáis una copia a vuestro hack y lo hagáis desde la copia).
- Mucha, pero que mucha atencion.
- FSF ó Thingy
- Offsets disponibles (más adelante se explicará cómo obtenerlos).

Pasos

1º Abrimos el XSE y abrimos nuestro rom desde esa herramienta.
2º Introucimos una dirección vacía para que sea la dirección del script principal.
3º Ahora toca "escribir" nuestro script.

No sé

Tranquilo, vamos por lo fácil:

- Al principio de nuestro script siempre debe aparecer #org 0x(la dirección vacía). La dirección vacía es un número hexadecimal de 6 carácteres (letras y números), no puede ser más grande que 6 carácteres. Para poner un ejemplo voy a elegir el 29876A, suponeos que esa dirección sirve y está vacía, pue lo ponemos:

Spoiler:
#org 0x29876A

- Eso es el principio del script y es obligatorio ponerlo. Bien, normalmente cuando funcione nuestro script lo hará con normalidad pero los minis (gentes, Pokémon) se moverán, lo que lo hace raro e irreal, por eso vamos a pararles cuando se inicie nuestro script con el comando lock:

Spoiler:
#org 0x29876A
lock

- A partir de aquí podéis empezar a añadir los comandos que sepáis, yo por ejemplo pondre un msgbox:


Spoiler:
#org 0x29876A
lock
msgbox 0x154A81 0x6

- Bueno, pero sólo con poner eso no está terminado, si lo termináranmos así no terminaría el script y todo se quedaría paralizado, recordad que lock paraliza. Así que ponemos el comando que hace lo contrario, release:

Spoiler:
#org 0x29876A
lock
msgbox 0x154A81 0x6
release

- Pensaréis: ¡qué bien, terminé! NO. Si dejáis así el script funcionará mal y no tendrá fin. Tenemos que poner un comando para que finalice el script, ese comando es end:

Spoiler:
#org 0x29876A
lock
msgbox 0x154A81 0x6
release
end

#org 0x154A81
= Hola, este es un script.

Ahora sí que está bien hecho. Más abajo puse lo que dice exactamente el msgbox, no voy a explicarlo, mirarlo en otro de mis tutoriales. Si tenéis curiosidad os diré que este script que hecho hace que la persona que lo tenga te diga "Hola, este es un script".

¿Dónde encuentro offsets?

Bueno, antes de nada repetiré qué es un offset por si algún despistado se olvidó de qué es. Un offset es un número en hexadecimal de 6 carácteres (es decir, letras y números), en este caso para hacer script. El problema es buscarlos, sobretodo si eres nuevo y no sabes cómo hacerlo. Bien, no te subas por las paredes, explicaré tres formas de encontrar espacios vacíos:

FSF (Free Space Finder)

Podemos usar la herramienta FSF para buscar offsets (espacios vacíos). Simplemente le damos a buscar. Aconsejo buscar las direcciones vacías desde una que ya esté usada, si escribimos en direcciones muy cercanas al número 1 podemos fastidiar el rom.

Thingy32

Este método es sencillo. Cargamos el rom, cargamos las tablas y nos ponemos desde el final del todo. Cuando veamos un sitio lleno de FF nos paramos. Veremos que en una parte estará lleno de FF y en otra de $$. Seleccionamos los dos primeros $$ y pulsamos el botón I para insertar. Una vez ahí pulsamos @ y ponemos este número, con el 0 y todo: 02.

Guardamos y aparecerá justo en el principio de las FF que veíamos un 02. en la derecha podemos ver un número de 6 carácteres. ¿Eh, eso no era un offset? Claro, ese es el offset vacío, lo cogemos y lo usamos en el rom.

¿Por qué tanto lío? Veréis, hemos puesto 02 para poder preparar el offset para que se pueda usar para hacer script, si está lleno de FF no podemos cogerlo directamente.

Dynamic

También se puede usar un comando en el propio script llamado dynamic. Este comando se encarga de buscar por sí solo los espacios que necesites. Se coloca así:

#dynamic 0x800000

Bueno, puse el offset 800000 porque es el recomendado por Hackmew (además, a partir de ese offset hay muchos espacios vacíos). Ese comando es una excepción. Siempre que lo vayáis a usar va antes que #org Prestad atención, si váis a usar #dynamic en lugar de poner 0x(el offset vacío) pondremos @(lo que quieras, a, b script, eso sí, un nombre sin espacios). ¿Por qué? Os pongo un ejemplo, cogemos el script que hice antes.

SIN DYNAMIC

Spoiler:
#org 0x29876A
lock
msgbox 0x154A81 0x6
release
end

#org 0x154A81
= Hola, este es un script.

CON DYNAMIC

Spoiler:
#dynamic 0x800000
#org @1
lock
msgbox @2 0x6
release
end

#org @2
= Hola, este es un script.

¿Notáis la diferencia? ¿Y que son los @? Los @ son los offset, pero como tenemos el dynamyc al principio no tenemos que ponerlo y ponemos @(lo que quieras escribir, pero sin espacios).

Bien, imaginaos que ahora compilo mi script con el DYNAMIC, aparecerá una pantallita abajo con el @1 y el @2 y una flechita indicando a un numero de 6 carácteres (offset).

¿Eh, eso qué es? Pue esa son las direcciones que te ha buscado el dynamic. Nosotros vamos a poner la dirección principal, no la del msgbox, nos interesa el script entero. Es decir, copiamos el offset que indica la flechita del @1.

Ya solo queda poner nuestro offset a un mini o script y probarlo. Espero haberos ayudado.

Rey Boo
Administrador
Administrador

Mensajes : 248
Sexo : Masculino
Johto Points : 3378
Advertencias

Fecha de inscripción : 21/11/2009
Localización : En Ciudad Iris, visitando la Torre Hojalata.

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.