Sunteți pe pagina 1din 8

WIKI HACKROM

WIKI HACKROM

Tutorial sobre Scripts.

Tutorial sobre Scripts.

Primero gracias a CiroCG.

Si queréis contactarle aquí:http://wahackforo.com/u-dl-kurosh

Creando y compilando nuestro primer Script

-----------------------------------------------------------------------------------
----------------------------------------------------

Comencemos. Esto es, por supuesto, lo más basico.

Abre el Advance Map y ve a Options > Choose Script Editor. Luego ve a la carpeta
donde tengas el XSE y haz doble click. Te aparecerá un mensajito, clickea en "Yes"
(o "Sí").

Sencillo, ¿no? Hasta el más novato de los novatos sabría hacerlo. Incluso Hitler.
Ahora viene la parte que me gusta, la parte de nuestro querido XSE, un
programa imprescindible para el rom hacking.  Vamos a abrir nuestro ROM con el XSE.
Archivo > Abrir > Selecciona tu ROM (Forma más rápida: Ctrl + O > Selecciona tu
ROM)

Bien, ahora ya tenemos asignado el XSE al Advance Map y abierto nuestro ROM con
XSE. En el capítulo 1 enseñaré como crear un script, cómo compilarlo, y algunos
comandos básicos. Con lo que vamos ahora será con...

La creación de un script

Bien, comencemos.

Código:

#dynamic 0x800000

Y tú te preguntaras: ¿Qué es #dynamic 0x800000? Muy sencillo. Eso es lo que debes


poner al principio de TOOOOOOOOODOS los scripts que hagas. 

¿Qué ocurre si me olvido de poner el comando #dynamic?

No ocurre nada grave, no se te trabará el hack ni nada parecido. el XSE te avisará


al compilarlo de que te has olvidado de ponerlo.

¿Y qué es compilar?

Eso está explicado más abajo, tú sigue leyendo tranquilamente.

Bien. Sigamos creando el script.

Código:
#dynamic 0x800000 #org @inicio

Vaya, ahora hemos añadido una cosa desconocida para mí, se llama #org @inicio. ¿Qué
significa?

Eso es una cosa que deberás colocar también en TODOS LOS SCRIPTS. Sin el #dynamic y
el #org @inicio no funcionará tu script, pero repito que el XSE te avisará.

¿Y por qué es @inicio?

Bueno, yo lo he puesto así porque es la costumbre, pero sin embargo puedes poner lo
que tu quieras, siempre y cuando sea UNA SOLA PALABRA

Cita:

Iniciado por Ejemplos

 #org @inicio

 #org @hola

 #org @meaburro

¿Ha quedado claro? Una sola palabra, repito, una sola palabra. ¿Me estoy repitiendo
mucho? Lo siento, pero este suele ser un fallo muy común.

Bien, ahora explicaré dos comandos esenciales. lock y faceplayer

Estos dos comandos son opcionales, y no tienes por qué ponerlos, pero dependiendo
del script sí deben ponerse (para que quede bien). En ningún caso es obligatorio
para que funcione el script, pero sí para que no dé algunos errores...

Código:

#dynamic 0x800000 #org @inicio lock faceplayer

Bien, procedamos con la explicación.

lock: se usa para bloquear un mini (si en el Advance Map tenías puesto que
estuviese mirando alrededor, sin este comando seguirá mirando al mismo tiempo que
habla contigo)

faceplayer: se usa para que, al hablar con un mini, éste te mire a la cara (si le
tenías puesto que estuviese mirando hacia arriba y le hablas por abajo, se girará
para mirarte)

Bien, ahora que creo que eso ya ha quedado aclarado (no os quedéis con la duda,
preguntadme si hay algo que no entendéis, no me molestáis, al contrario, me gusta
la participación), procederemos con la explicación del conocido msgbox.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6

Muy bien, el msgbox es bien fácil de utilizar... sin embargo, ahí hay algo que
falta, pero ¡no te preocupes! ¡Cada cosa a su tiempo! Para empezar, procederé a
explicar ese "0x6".

El 0x6 es uno de los parámetros del msgbox. Ahora procederé a explicar todos y cada
uno de ellos.

0x0: Mensaje de cuando te dan un objeto (se usa para el giveitem, ya lo explicaré)

0x1: Este es parecido al 0x0, pero es cuando te encuentras una de esas Pokéball
tiradas por el suelo que contienen algo.

0x2: Este es igual al 0x6, la única diferencia es que este tiene el faceplayer
"incluído". Es decir, el 0x6 es un mensaje normal y corriente, pero si usas el 0x2
no necesitarás poner el faceplayer, ya que el mini te mirará automáticamente.

0x3: Este se usa para un script de un cartel (por ejemplo, en el cartel donde pone
"Casa de <<jugador>>", se usaría un msgbox 0x3)

0x4: Éste creo que abre una msgbox normal, pero que no se cierra hasta que pulses A

0x5: Este es fácil de hacer, abre un YES/NO box (ya lo explicaremos más adelante,
no será difícil de aprender)

0x6: Este es uno de los más usados, es como el 0x2 pero sin el faceplayer incluído.
Es una caja de texto normal.

0xA: Este se usa sólo en Pokémon Esmeralda, y es para ejecutar una llamada del
Pokénavegador.

Bien, ahora vamos a explicar qué es "eso que falta".

A ver, revisemos el script de nuevo.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6

¿Qué es lo que falta? ¿No lo notas? Bueno, hemos puesto @frase, pero... ¿dónde está
la frase que queremos mostrar? Muy simple.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 #org @frase Aquí
iría nuestro texto. ¿Cómo lo introducimos? Muuuuy fácil, pulsa Ctrl + T y se te
abrirá un cuadro donde podrás escribir.

Sí, sólo nos faltaba eso. Definir la frase que queríamos poner. Recuerda pulsar
Ctrl + T para escribir tu texto, del otro modo también es posible, pero muy
difícil.

Bueno, hasta ahora ha sido muy sencillo nuestro primer script, ¿no? Y supongo que
me habré explicado bien. Ahora vamos a finallizar nuestro script.

Código:

release end
Como puedes ver, son comandos sencillos. Aquí la explicación.

release: permite a los minis volver a moverse (debes ponerlo SÓLO si pusiste el
comando lock, sino gastarás bytes inútilmente)

end: su nombre lo indica todo. "Final". Cierra el script, se acaba todo. Se pone
SIEMPRE.

Aquí tenéis una muestra de lo que sería un script básico (al lado de cada comando
(los comandos son msgbox, release, end, etc.) he puesto un ' y un comentario,
después de ' lo que se ponga no se incluye en el script, es para comentar)

Código:

#dynamic 0x800000 ' Dynamic busca una dirección a partir de 0x800000. #org @inicio
' El puntero inicial lock 'Bloquea el mini faceplayer ' Mira al protagonista msgbox
@frase 0x6 ' Abre una caja de mensaje y muestra lo que hayamos puesto en @frase
release ' Sólo si se puso lock, para permitir que el mini se siga moviendo end '
Finaliza el script #org @frase ' Aquí está el puntero de la frase = Ciro: ¡Guau,
aquí hay mucha fruta,\nincluso hay 5 manzanas!\lCreo que me comeré una.\pMamá:
Claro hijo, cómete las que\nquieras. ' Y ésta es la tan ansiada frase

Compilando el Script y asignándolo a un mini

Bien. ¿Veis en el XSE un icono de dos tuercas unidas? Sí, sí, ese icono: 

Pues vale, hacemos click en él, y se nos abrirá una ventanita nueva.

Muy bien, pues lo que está remarcado en azul es el offset principal, el offset que
contiene los datos de todo el script. Luego haces click en "Copiar" (SIEMPRE con el
primer puntero marcado de azulito), y luego a "Cerrar" (habremos terminado con el
XSE)

A continuación, vais al Advance Map, y en "Ver eventos" hacéis click encima del
mini. En la barra de la derecha, buscad donde dice "Script offset" y lo sustituís
por lo que hayáis copiado antes (manteniendo siempre el $).

Comandos: Givepokemon, Giveitem, giveegg, givemoney, givecoins y removecoins

-----------------------------------------------------------------------------------
-------------------------------------------------

Estos 4 comandos son sencillísimos de usar. A ver, hagamos un script con


givepokemon.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givepokemon 0x0
0x0 0x0 0x0 0x0 0x0 release end #org @frase = Aquí iría nuestro\nquerido texto

Bien, ahí tenemos el givepokemon, pero antes procedamos con su explicación

givepokemon: Muy simple. Te regala un Pokémon. El que quieras, al nivel que quieras
y con el objeto que quieras.

¿Cómo relleno sus parámetros?


Muy fácil:

El primer 0x0: Número del Pokémon que quieras recibir. Tiene que ser el nº de la
Pokédex nacional y ha de estar en hex (el XSE tiene calculadora)

Segundo 0x0: Nivel del Pokémon que quieras recibir, también en hex.

Tercer 0x0: Pulsa Ctrl + N para abrir una nueva pestaña en el XSE, y pulsa Ctrl +
O. Luego ve a la carpeta donde tengas el XSE, y abre el archivo "stditems". Ahí
tienes los números de los objetos. 

¿Y qué hago yo con todos esos códigos que no sé para que sirven? Ah, pues eso es
muy sencillo.

Pulsa Ctrl + F y en "Buscar" pones el nombre (en inglés y, si son varias palabras,
juntarlas, ejemplo: Restura todo = FULLRESTORE), luego pulsas en "Buscar
siguiente".

Una vez encontrado el objeto que queramos equiparle...

Copiamos lo que va después del 0x, en mi caso sería 13, es el número del objeto.
Volvemos al givepokemon y en el tercer 0x0, el del objeto, pegamos ese número
(0x13)

Cuarto, quinto y sexto 0x0: Esos serán siempre 0x0, no los toques.

Bien, como con todo script, hay que poner un ejemplo. Supongamos que queremos
recibir un Pidgey al nivel 12 con un Restaura todo equipado.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givepokemon 0x10
0xC 0x13 0x0 0x0 0x0 release end #org @frase = Aquí iría nuestro\nquerido texto

No te preocupes, lo explicaré todo.

0x10: El número de Pidgey en la Pokédex nacional es 16, y 16 en hexadecimal es 10.

0xC: El nivel era 12, ¿no? 12 en hexadecimal es C, por lo que C se queda.

0x13: Aquí puse el restaura todo que expliqué antes.

0x0 0x0 0x0: Esto siempre va así.

Bueno, y aquí terminamos con el givepokemon. Ahora vamos con otros comandos que son
mucho más sencillos.

NOTA IMPORTANTE: Al final de tu script, debes activar una flag (está explicado
abajo, tú ponlo) para que el Pokémon se vea en el menú. En Ruby debes usar setflag
0x800, en FR setflag 0x828, en Esmeralda setflag 0x860.

Giveitem: Sirve para recibir un objeto.

¿Recuerdas el archivo que abrimos antes, donde el restaura todo era el número 13?
Muy bien, todos esos números los usaremos también para el giveitem.
Código:

#dynamic 0x800000 #org @inicio lock faceplayer giveitem 0x0 0x0 0x0 release end
#org @frase = Aquí iría nuestro\nquerido texto

Bien, antes de explicar nada del giveitem quiero preguntaros algo. ¿No habéis
notado algo distinto en el script? Sí, no he puesto el msgbox. ¿Recuerdas los tipos
de msgbox que expliqué antes? Pues eso usaremos en el giveitem.

Ahora procederé a explicar los parámetros.

Primer 0x0: Aquí introduce el número del objeto a recibir, ya expliqué antes como
mirarlo.

Segundo 0x0: Cantidad de objetos a recibir, en hexadecimal (Por ejemplo, 10 objetos


= 0xA)

Tercer 0x0: Tipo de mensaje. Debes poner 0x1 si es para encontrar una Pokéball
tirada por ahí y 0x0 si es alguien el que te da el objeto.

Y, una vez aclarado esto, procedamos con el simple giveegg.

Giveegg: Para recibir un huevo Pokémon.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 giveegg 0x0
release end #org @frase = Aquí iría nuestro\nquerido texto

"Y qué corto es", dirás tú. Pues sí, es un comando muy corto, de un único y simple
parámetro, el mismo que el primer 0x0 del givepokemon.

Primer y único 0x0: Número de la Pokédex nacional en hex del Pokémon a recibir en
huevo.

Procedamos con el antepenúltimo de los comandos del episodio 2: givemoney

givemoney: Simplemente, te da dinero. Como el dinero que ganas al salir victorioso


de una batalla, o al vender algo. Veamos cómo es:

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givemoney 0x0 0x0
release end #org @frase = Aquí iría nuestro\nquerido texto

¿Te esperabas que fuese un solo parámetro? Pues no.

Primer 0x0: Cantidad de dinero a recibir, como siempre, en hex.

Segundo 0x0: Aquí simplemente pon 0.

Vayamos con los dos últimos comandos: givecoins y removecoins.

Si alguien se pensaba que tenía algo que ver con el dinero, estaba equivocado.
Bueno, en realidad, sí tiene que ver. Se refiere a las fichas del casino, las
cuales se compran con dinero, ¿no?
Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givecoins 0x0
release end #org @frase = Aquí iría nuestro\nquerido texto

Primer y único 0x0: Número de fichas a recibir, como siempre, en hex.

Código:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 removecoins 0x0
release end #org @frase = Aquí iría nuestro\nquerido texto

Primer y único 0x0: Número de fichas a quitar.

INFORMACIÓN DEL ARTÍCULO

Principales Editores

Comentarios (40)

Categorías

El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique


lo contrario.

EXPLORAR PRODUCTOS

Fandom

Gamepedia

D&D Beyond

Muthead

Futhead

SÍGUENOS

VISTA GENERAL

Acerca de

Empleo

Prensa

Contactar

Términos de uso

Política de privacidad

Mapa del sitio global

Mapa del sitio local


COMUNIDAD

Comunidad Central

Soporte

Ayuda

PUBLICIDAD

Kit de medios

APPS DE FANDOM

Lleva tu comunidad favorita contigo y no te pierdas de nada.

D&D Beyond

Wiki Hackrom es una comunidad FANDOM de Juegos.

VER SITIO COMPLETO

S-ar putea să vă placă și