Professional Documents
Culture Documents
Hola a todos amigos míos, he visto que mucha gente no sabe scriptear, ni siquiera sabe
por dónde empezar, así que he decidido “tirar la casa por la ventana” y hacer, atentos,
porque esto que voy a decir es importante: ¡Un manual absolutamente completo
sobre cómo scriptear! Pero esto no va a ser un manual cualquiera, no señor, este
manual te va a enseñar las siguientes cosas:
- XSE
- Advance Map
- Visual Voy Advance
- Paciencia, más fácil no puedo explicarlo
Bueno, ni hace falta decir que este manual está a la plena disposición de cualquier tipo
de rom hacker (y con tipo me refiero al nivel como rom hacker), aunque va
especialmente dirigido a los auténticos novatos en la materia.
Bien, seguramente al decirte “asigna el editor de scripts” puedes quedarte así: O.O.
Bien, pues en ese caso iremos paso por paso en la explicación, primero voy a explicar
qué es cada cosa:
Vale, ahora que ya tenemos todo muy clarito procederemos a asignar el editor de
scripts. Para ello, seguiremos los pasos que dejaré a continuación:
¡Y listo! Ya tenemos asignado el programa XSE como nuestro editor de scripts. Si hay alguna
duda también podéis mirar el vídeo (pero tened en cuenta que el vídeo más que explicativo es
demostrativo, así que hará las cosas directamente).
2. Actualizar el XSE
Bien, ahora que tenemos asignado nuestro editor de scripts podríamos pasar
directamente a hacer nuestro primer script. ¿Pero qué pasa? Que el XSE que
normalmente descargamos no está actualizado, y sólo por ese detalle ya cambia la
forma de expresar los comandos. Así que vamos a ahorrarnos problemas y vamos a
actualizar el XSE. Sigue estos pasos y la actualización será coser y cantar:
Bien, pues ahora sí que estamos listos para preparar nuestro scripts (imagínate que yo
lo estoy haciendo al mismo tiempo que tú, como si estuviera metido en el vídeo).
3. Crear nuestro script en el XSE
Bien, ¡por fin hemos preparado lo que teníamos que preparar! ¡Ahora sí que empezamos a
preparar el script! Pero antes, tenemos que abrir el XSE. Podríamos abrir el XSE y, una vez
abierto, abrir el rom, pero como es algo muy lento y, además, necesitamos también el Advance
Map, vamos a hacerlo de otra forma. Sigue estos pasos:
Bien, ahora que hemos pulsado sobre ese botón… ¡pum, aparece una ventana con un montón
de comandos muy rara! Una ventana que, seguramente, te está dando en este mismo
momento un mareo de campeonato con esos comandos tan raros. No te preocupes, porque
algún día vas a entenderlos todos (eso espero). Nosotros vamos a seleccionarlo todo (como si
fuera un bloc de notas) y… ¡bórralo todo, que no quede nada escrito! ¿No te caen bien esos
comandos, verdad? ¡Pues bórralos, mándalos a paseo!
Bien, una vez que nos hemos desahogado con esos pobres e indefensos comandos nos
encontramos con la misma ventana de antes, pero esta vez no tiene nada escrito. Pues bien,
ahora es el momento, vamos a empezar a preparar el script. En este caso, vamos a hacer un
script muy sencillo, uno en el que tu madre te mire y te diga alguna tontería. Pues bien, vamos
a ir preparándolo poco a poco. Por si acaso, te voy a motivar un poco:
¡DESPIERTAA!
Bien, ahora que estás espabilado sí que vamos a comenzar. Voy a empezar diciéndote
que existen tres formas de hacer un script. Una es en plan chapucero editando uno ya
existente (no lo recomiendo, lo digo por experiencia personal), otra es buscando el
espacio vacío (en plan “pringao”, un método algo cansado, lo sé, pero a veces no
queda más remedio) y otro es contar con la ayuda de nuestro amigo, el comando
DYNAMIC. Te preguntarás: ¿eh, qué es eso? Pues ESO es un comando. ¿Y qué tipo de
comando? Pues es un comando “tan bueno, tan bueno, tan bueno” que él se va a
encargar de buscar el espacio en blanco por ti (fíjate, eso sí que es un chollo). Así que,
de momento, podemos mandar a paseo el problema del espacio. Bien, pues ahora voy
a explicar la estructura de DYNAMIC:
#DYNAMIC 0x(offset)
#DYNAMIC 0x800000
#org @(…)
¿Qué es eso del paréntesis con puntos suspensivos? Pues eso quiere decir que puedes
poner lo que se te antoje siempre que no lleve espacios. Voy a poner un ejemplo de
cómo se escribe mal y de cómo se escribe bien:
MAL
#org @hola que tal =>
#org @inicio
#DYNAMIC 0x800000
#org @inicio
Fíjate lo importante que es colocarlo de esa manera que hasta lo he subrayado y todo.
Bueno, pues así hay que hacerlo con todos los comandos. Bien, una vez que me he
puesto a resaltar algo muy importante (y que me provocará un ataque de nervios si lo
haces mal), podemos seguir con nuestro script. Ahora, vamos a poner un comando
para paralizar a los minis, podríamos no ponerlo, que también estaría bien, pero como
nosotros queremos hacerlo en condiciones pues vamos a poner ese comando. ¿Y cuál
es el comando? Pues ese comando es “lock”. El comando se escribe tal cual:
lock
Bien, pues lo colocamos:
#DYNAMIC 0x800000
#org @inicio
lock
Bueno, ahora vamos a colocar un comando que hará que la madre del protagonista
nos mire cuando le hablamos (hay que programarle modales, jejeje). Ese comando es
“faceplayer”. El comando faceplayer se escribe tal cual:
faceplayer
#DYNAMIC 0x800000
#org @inicio
lock
faceplayer
Bien, detrás del @ podéis poner lo que queráis pero sin espacios. ¿Y qué pasa con el
segundo parámetro (vulgarmente dicho, el segundo “0x”)? Pues bien, el paréntesis
debemos sustituirlo por un número. ¿Y qué número? Pues eso varía según el tipo de
msgbox que quieras hacer (los hay de señales, de pregunta de sí o no, normal, etc.).
Nosotros vamos a usar el msgbox tipo 6, es decir, el normal. Por ejemplo, vamos a
poner detrás del @ la palabra “mensaje”, pues lo escribiríamos así:
#DYNAMIC 0x800000
#org @inicio
lock
faceplayer
msgbox @mensaje 0x6
Muy bien, pues ahora vamos a poner un comando para desbloquear el movimiento del
mini. ¿Cuál es ese comando? Pues ese comando es “release”. El comando se escribe tal
cual:
release
Fácil, ¿no? Pues ahora vamos a añadirlo a nuestro script:
#DYNAMIC 0x800000
#org @inicio
lock
faceplayer
msgbox @mensaje 0x6
release
Por último, añadimos un comando para que termine el script, el comando “end”. El
comando “end” se escribe tal cual:
end
#DYNAMIC 0x800000
#org @inicio
lock
faceplayer
msgbox @mensaje 0x6
release
end
Bien, y ahora… ¿hemos terminado? ¡Pues no! Ahora hay que colocar el mensaje del
msgbox. En este caso, la estructura es la siguiente:
Bien, podemos observar dos paréntesis, uno con un mensaje y otro con tres puntos
suspensivos. No te preocupes, te voy a explicar qué significa cada uno. El primer
paréntesis debes sustituirlo por aquello que hayas escrito en el @ que incluía el
msgbox. En este caso, hemos escrito “mensaje”, así que lo ponemos de esta manera:
#org @mensaje
= (…)
Ya no parece tan lioso, ¿verdad? Pues ahora te explicaré qué significa el paréntesis con
los puntos suspensivos. Ese paréntesis debes sustituirlo por el mensaje que quieras
que aparezca. Puedes poner lo que te de la gana, yo por ejemplo escribiré esto: “Hola
hijo, anda, ve a la frutería y cómprame una calabaza. ¡No te olvides!”. Pues vamos, lo
escribimos:
#org @mensaje
= Hola hijo, anda, ve a la frutería y cómprame una calabaza. ¡No te olvides!
¿A que parece que está bien hecho, a que sí? ¡Pues no, está incompleto! Si lo hacemos
de esa manera, una parte del mensaje se va a “montar” encima de otra, y no
queremos que pase eso, ¿verdad? Pues ahora te voy a enseñar algo que nos ayudará
durante muchas ocasiones, las partículas. ¿Qué son? Son elementos que empleamos
para pasar a otro renglón o a otro párrafo. Vamos a ver los distintos tipos:
\n => Sirve para pasar al segundo renglón. Sólo se puede usar una vez por cada
párrafo.
\l => Si ya usaste \n, \l sirve para pasar al renglón de abajo. Mucho cuidado, \l sólo se
puede usar si ya usaste la partícula \l en el párrafo actual.
\p => Sirve para cambiar de párrafo.
#org @mensaje
= Hola hijo, anda, ve a la\nfrutería y cómprame una\lcalabaza.\p¡No te olvides!
¡No te olvides!
#DYNAMIC 0x800000
#org @inicio
lock
faceplayer
msgbox @mensaje 0x6
release
end
#org @mensaje
= Hola hijo, anda, ve a la\nfrutería y cómprame una\lcalabaza.\p¡No te olvides!
¿Por qué no lo he escrito todo “junto”? Porque @mensaje es un offset aparte, y tiene
que estar separado del otro offset. ¡Pues bueno, hasta aquí la preparación del script!
4. Compilar el script en el XSE
Bueno, ahora que ya has realizado el script te preguntarás: “¿y ahora qué hago?”
Tranquilo/a, porque he dedicado un solo apartado para enseñarte cómo se compila
un script, así que no te agobies. Aunque esta sea una parte muy sencilla y rápida,
voy a profundizar muchísimo, voy a profundizar tanto que hasta voy a añadir
imágenes. Fíjate, lo he dejado tan, tan, tan claro y masticado que sólo se necesita
tener un cerebro, manos móviles, el Microsoft Word y manos/extremidades
móviles y que puedan teclear y hacer click con el ratón para hacer esta parte. Bien,
antes de explicarte cómo compilar el script, quiero asegurarme de que lo estás
haciendo bien, esto es lo que llevamos hecho hasta ahora:
Vamos bien, ¿verdad? Pues ahora presta mucha atención, porque es muy
importante que esto quede MUY, pero que MUY claro. ¿Ves el botón con dos
tuercas que he señalado con azul? Pues, bien, lo he señalado MUY pero que MUY
grande para que sepas perfectamente cuál es ese botón (sé que puedo parecer
exagerado, pero luego incluso me besarás los dedos cuando funcione el script).
Esta parte es muy importante, así que me permitiré el lujo de volverlo a repetir:
IMPORTANTE
Debes pinchar sobre el botón con las dos tuercas, y, tras eso, te aparecerá una
ventanita. La ventanita es ESTA:
¿Qué aún no está muy clara? No te preocupes, voy a añadir OTRA flechita:
¿Cómo, que me he olvidado el nombre? No te preocupes, le pongo ahora mismo el
nombre:
Sé lo que estás pensado, no, no eres estúpido/a, es que le pongo MUCHO énfasis,
pero OJO, no es DEMASIADO, una cosa es MUCHO y otra cosa es DEMASIADO,
demasiado es que sobra, y aquí está estupendo, aunque sea mucho. ¿Cómo dices?
¿Qué te gustaría ver la ventanita un poco más grande? Pues sí, tienes razón,
pondré sólo a la ventanita. Lo repetiré una vez más:
SÓLO VENTANITA
Se observa claramente la ventanita, ¿verdad? Pues ahora que tenemos esta imagen
por delante, vas a hacer lo siguiente:
1º Pincha en la zona enmarcada con el color azul (se corresponde con el número 1).
2º Una vez has pinchado en la zona que está dentro del cuadrito azul (sí, esa donde
pone “@inicio”), pinchas en el botoncito “Copiar”, el botón que está dentro del
cuadrado hecho con color rojo (ese que tiene un 2 al lado).
3º Ahora pulsa en el Botón “Cerrar” (sí, sí, ese botoncito que está dentro del marco de
color negro, el que tiene un 3 arriba).
- Cuando pulsaste en la zona del rectángulo azul, seleccionaste uno de los dos
offset, concretamente, has cogido el primero, o lo que es lo mismo, has
seleccionado el principal. Al lado puedes ver el offset vacío que buscó DYNAMIC
para compilar el script. Es decir, el offset para “@inicio” es ni más ni menos que
el offset “800000”.
- Después, cuando pinchaste en el botón que está dentro del marco rojo lo que
hiciste es copiar el offset; en este caso, el offset que hemos copiado es el
“800000”.
- Finalmente, cuando pinchaste en el Botón que está dentro del rectángulo
negro lo que hiciste es cerrar esa ventanita porque ya no nos sirve abierta.
Pues bueno, pues algo tan corto ha ocupado 4 páginas. Es fuerte, ¿eh?
5. Asignar el Offset en el Advance Map
Bien, pues una vez que hemos re-re-redesmenuzado el procedimiento para compilar el script
(si no lo entiendes es “pa pegarte”), pues ahora va siendo hora de asignar el script, mejor
dicho, es hora de asignar el offset al mini de la madre del protagonista (si estás usando
Pokémon Ruby/Emerald, al mini que hayas elegido). Pues bien, lo primero que vamos a hacer
es volver a la ventanita del Advance Map, si usas Pokemon Fire Red, a exactamente el mismo
mapa que dije antes. ¿Qué no te acuerdas? ¡Pero si lo tienes abierto!
Bueno, una vez en el mapa, aunque sé que pinchamos antes en el min, por si acaso le damos
un click otra vez (y no he dicho que le demos dos click, SOLO UNO). Bien, una vez ahí, podemos
ver el siguiente “panorama”:
Pues bueno, el mapa es muy bonito y todo eso, pero a mí no me interesa la parte de la
izquierda, porque el mini ya lo hemos seleccionado (la P amarilla con el fondo de color
verde) y ya no tengo que hacer nada más ahí (de momento), así que voy a poner una
imagen sólo con la parte de la izquierda:
Está muy clarito, ¿no? Y ahora te preguntarás: ¿qué es eso que está dentro del marco
de color negro? Pues esa es la parte que nos interesa, así que ahí va OTRA imagen:
Bien, y ahora te preguntarás: ¿qué es esa cosa? ¿Y por qué le has puesto tantas
flechitas? Pues en primer lugar, le he puesto todas esas flechas porque es AHÍ donde
vamos a efectuar los cambios. Así que lo repito otra vez:
¡¡¡¡¡¡AHÍ!!!!!!
Bueno, aún no he resuelto la otra pregunta: ¿qué es eso? Bueno, en primer lugar, eso
es un rectángulo. ¿Qué tipo de rectángulo? Pues un rectángulo blanco. ¿Y para qué
sirve? Pues es ahí donde tenemos que pegar el offset que copiamos antes. ¿Y cómo lo
hacemos? Pues, en primer lugar, seleccionamos los números hexadecimales que están
detrás del símbolo del dólar (el “$”). ¿Qué no lo entiendes? ¡Pues otra imagen!
Sí, sé lo que estás pensando, estás mirando la imagen como un pasmarote con la
siguiente pregunta en la cabeza, es obvio: ¿¡Cómo es que ahora hay más flechitas?!
Pues hay más flechitas para que no te despistes y prestes mucha atención a esto. ¿Qué
hacemos ahora? Pues ahora borramos la parte que hemos seleccionado (esa parte que
está en azul… ¡no, el cielo no, el offset!).
Ahora seguramente te ha salido esa ventanita. ¿Qué por qué me ha salido a mí más a
la derecha y a ti justo en medio? ¿Por qué va a ser? ¡Porque la he movido para que
quepa en la imagen! Bueno, esa ventana es normal que salga, simplemente pulsas en
el botón “Aceptar” (ese que está dentro del marco de color negro). Bien, pues ahora
pinchas en la parte de detrás del símbolo del dólar (“$”) PERO con el botoncito
derecho del mouse. ¿Qué cuál es? No te preocupes, yo te lo señalo:
¡Vaya! ¿Cómo se me ha podido colar esa imagen? Lo siento, aquí pongo la de verdad:
Bueno, pues ahora que le hemos dado con el botón derecho del mouse, nos
aparecerán varias opciones. Tú pincha en la opción “Pegar”. Bueno, una vez hecho eso,
nos ha quedado así:
Si te ha quedado así es que lo has hecho bien. Bien, pues ahora pincha en la pestaña
del Advance Map donde pone “Archivo”. Tras eso, aparecerán diversas opciones, tú
pincha en aquella donde pone “Guardar”. Y, por fin, una vez has hecho esto, ya has
atribuído el offset que copiaste de la ventanita pequeñita del XSE al mini (en mi caso y
en el tuyo si usas la rom de Pokemon Fire Red, la madre del protagonista). Bien, pues
sólo queda una cosa, ¡probarlo!
6. Probar el script en el Advance Map
Bien, pues una vez que hemos guardado los progresos en el Advance Map, tenemos
que probar el script para comprobar si funciona o no. Bien, pues con nuestro emulador
(Visual Voy Advance, ese programita que usas para jugar a los juegos de la Game Boy
Advance en el ordenador, obviamente) probamos el juego y nos vamos al lugar donde
está el mini con el offset nuevecito (ese que copiaste de la ventanita pequeña del XSE),
nos ponemos delante de él y pulsamos el botón A.
¿Te ha salido? ¡Enhorabuena, has hecho por fin tu primer script, y lo mejor de todo es
que funciona!
Bueno, ahora te preguntarás: ¿qué hago ahora? Pues ahora que ya te has iniciado en
este tipo de scripting deberás aprender nuevos comandos, hacer mucha práctica y,
sobretodo, tener aún más paciencia y voluntad. Y, ahora, sólo me queda decirte una
cosa:
¡Bien hecho! ^^