Вы находитесь на странице: 1из 28

~~ NIVEL FCIL ~~

(1) Creando y compilando nuestro primer Script Comencemos. Esto es, por supuesto, lo ms 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 ms novato de los novatos sabra hacerlo. Incluso Hitler.
Ahora viene la parte que me gusta, la parte de nuestro querido XSE, un programa imprescindible para el rom hacking. Si no sabes usarlo olvidate del rom hacking. Vamos a abrir nuestro ROM con el XSE. Archivo > Abrir > Selecciona tu ROM (Forma ms rpida: Ctrl + O > Selecciona tu ROM) con XSE. En el captulo 1 ensear como crear un script, cmo compilarlo, y algunos comandos bsicos. Con lo que vamos ahora ser con...

Bien, ahora ya tenemos asignado el XSE al Advance Map y abierto nuestro ROM

La creacin de un script Bien, comencemos.


Cdigo:

#dynamic 0x800000 Y t te preguntaras: Qu es #dynamic 0x800000? Muy sencillo. Eso es lo que debes poner al principio de TOOOOOOOOOOOOOODOS 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 ms abajo, t sigue leyendo tranquilamente. Bien. Sigamos creando el script.
Cdigo:

#dynamic 0x800000 #org @inicio Vaya, ahora hemos aadido una cosa desconocida para m, se llama #org @inicio. Qu significa? Eso es una cosa que debers colocar tambin 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 @1 #org @lacacadetucasa #org @la caca de tu casa Ha quedado claro? Una sola palabra, repito, una sola palabra. Me estoy repitiendo mucho? Lo siento, pero este suele ser un fallo muy comn.

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 ningn caso es obligatorio para que funcione el script, pero s para que no d algunos errores...
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer Bien, procedamos con la explicacin. lock: se usa para bloquear un mini (si en el Advance Map tenas 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 tenas 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 quedis con la duda, preguntadme si hay algo que no entendis, no me molestis, al contrario, me gusta la participacin), procederemos con la explicacin del conocido msgbox.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 Muy bien, el msgbox es bien fcil 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 parmetros 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 Pokball tiradas por el suelo que contienen algo. 0x2: Este es igual al 0x6, la nica diferencia es que este tiene el faceplayer "includo". Es decir, el 0x6 es un mensaje normal y corriente, pero si usas el 0x2 no necesitars poner el faceplayer, ya que el mini te mirar automticamente. 0x3: Este se usa para un script de un cartel (por ejemplo, en el cartel donde pone

"Casa de <<jugador>>", se usara un msgbox 0x3) 0x4: ste creo que abre una msgbox normal, pero que no se cierra hasta que pulses A 0x5: Este es fcil de hacer, abre un YES/NO box (ya lo explicaremos ms adelante, no ser difcil de aprender) 0x6: Este es uno de los ms usados, es como el 0x2 pero sin el faceplayer includo. Es una caja de texto normal. 0xA: Este se usa slo en Pokmon Esmeralda, y es para ejecutar una llamada del Poknavegador. Bien, ahora vamos a explicar qu es "eso que falta". A ver, revisemos el script de nuevo.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 Qu es lo que falta? No lo notas? Bueno, hemos puesto @frase, pero... dnde est la frase que queremos mostrar? Muy simple.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 #org @frase Aqu ira nuestro texto. Cmo lo introducimos? Muuuuy fcil, pulsa Ctrl + T y se te abrir un cuadro donde podrs escribir. S, slo nos faltaba eso. Definir la frase que queramos poner. Recuerda pulsar Ctrl + T para escribir tu texto, del otro modo tambin es posible, pero muy difcil.

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

release end Como puedes ver, son comandos sencillos. Aqu la explicacin. release: permite a los minis volver a moverse (debes ponerlo SLO si pusiste el comando lock, sino gastars bytes intilmente) end: su nombre lo indica todo. "Final". Cierra el script, se acaba todo. Se pone SIEMPRE. Aqu tenis una muestra de lo que sera un script bsico (al lado de cada comando (los comandos son msgbox, release, end, etc.) he puesto un ' y un comentario, despus de ' lo que se ponga no se incluye en el script, es para comentar)
Cdigo:

#dynamic 0x800000 ' Dynamic busca una direccin 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 ' Slo 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, cmete las que\nquieras. ' Y sta es la tan ansiada frase

Compilando el Script y asignndolo 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 continuacin, vais al Advance Map, y en "Ver eventos" hacis click encima del mini.

En la barra de la derecha, buscad donde dice "Script offset" y lo sustitus por lo que hayis copiado antes (manteniendo siempre el $).

Bueno, he modificado este captulo porque antes no se entenda demasiado bien (eran 3 mseras lneas), supongo que ahora estar mejor. (2) Comandos: Givepokemon, Giveitem, giveegg, givemoney, givecoins y removecoins Estos 4 comandos son sencillsimos de usar. A ver, hagamos un script con givepokemon.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givepokemon 0x0 0x0 0x0 0x0 0x0 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto Bien, ah tenemos el givepokemon, pero antes procedamos con su explicacin givepokemon: Muy simple. Te regala un Pokmon. El que quieras, al nivel que quieras y con el objeto que quieras. Cmo relleno sus parmetros? Muy fcil: El primer 0x0: Nmero del Pokmon que quieras recibir. Tiene que ser el n de la Pokdex nacional y ha de estar en hex (el XSE tiene calculadora)

Segundo 0x0: Nivel del Pokmon que quieras recibir, tambin en hex. Tercer 0x0: Pulsa Ctrl + N para abrir una nueva pestaa en el XSE, y pulsa Ctrl + O. Luego ve a la carpeta donde tengas el XSE, y abre el archivo "stditems". Ah tienes los nmeros de los objetos. Y qu hago yo con todos esos cdigos que no s para que sirven? Ah, pues eso es muy sencillo.

Pulsa Ctrl + F y en "Buscar" pones el nombre (en ingls y, si son varias Una vez encontrado el objeto que queramos equiparle...

palabras, juntarlas, ejemplo: Restura todo = FULLRESTORE), luego pulsas en "Buscar siguiente".

Copiamos lo que va despus del 0x, en mi caso sera 13, es el nmero del

objeto. Volvemos al givepokemon y en el tercer 0x0, el del objeto, pegamos ese nmero (0x13)

Cuarto, quinto y sexto 0x0: Esos sern 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.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givepokemon 0x10 0xC 0x13 0x0 0x0 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto No te preocupes, lo explicar todo. 0x10: El nmero de Pidgey en la Pokdex 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 ms sencillos. NOTA IMPORTANTE: Al final de tu script, debes activar una flag (est explicado abajo, t ponlo) para que el Pokmon 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 nmero 13? Muy bien, todos esos nmeros los usaremos tambin para el giveitem.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer giveitem 0x0 0x0 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto Bien, antes de explicar nada del giveitem quiero preguntaros algo. No habis 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 parmetros. Primer 0x0: Aqu introduce el nmero 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 Pokball 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 Pokmon.


Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 giveegg 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto "Y qu corto es", dirs t. Pues s, es un comando muy corto, de un nico y simple parmetro, el mismo que el primer 0x0 del givepokemon. Primer y nico 0x0: Nmero de la Pokdex nacional en hex del Pokmon a recibir en huevo. Procedamos con el antepenltimo 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 cmo es:
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givemoney 0x0 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto Te esperabas que fuese un solo parmetro? 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 tena 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?
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givecoins 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto Primer y nico 0x0: Nmero de fichas a recibir, como siempre, en hex.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 removecoins 0x0 release end #org @frase = Aqu ira nuestro\nquerido texto Primer y nico 0x0: Nmero de fichas a quitar. (3)YES/NO box Esto es algo sencillsimo, siempre que hayas entendido el captulo 1 no te costar entender este...

Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x5 compare LASTRESULT 0x1 if 0x1 goto @inicio2 if 0x0 goto @inicio3 release end #org @inicio2 msgbox @frase2 0x6 end #org @inicio3 msgbox @frase3 0x6 end #org @frase Aqu ira el texto donde estara la caja. #org @frase2 Esto es si dices que S #org @frase3 Esto si dices que No. T dirs: Pero esto es mucho ms largo que lo otro!! Ps, que sea largo no quiere decir que sea difcil. Procedamos con la explicacin. msgbox @frase 0x5: Ya he explicado los tipos de msgbox antes. El 0x5 abre la caja de YES/NO, y @frase podra ser como "Quieres salami?" compare LASTRESULT 0x1 if 0x1 goto @inicio2 if 0x0 goto @inicio3: Bien, analicemos esas 3 partes. El lastresult simplemente ponlo, es necesario, ya que compara la opcin que hayas escogido (YES/NO) Ahora

vayamos con lo que probablemente entiendas ms fcilmente. Analicemos a fondo las partes de cada if. Primer if 0x1: Esto sera equivalente al "YES". goto: Te enva al puntero que elijas despus, en este caso @inicio2 @inicio2: Script que se ejecutar al decir que S. No tiene por qu ser una simple frase, de hecho, puedes meter otra YES/NO box, o un script largo, etc. Segundo if 0x0: Esto sera equivalente al "NO". goto: Te enva al puntero que elijas despus, en este caso @inicio3 @inicio2: Script que se ejecutar al decir que No. Bueno, ha quedado claro, no? Despus simplemente creas lo dems a tu gusto. Creo que qued claro, no? (4)Comandos: Applymovement y waitmovement Antes de empezar con este captulo iba a ir con otro, pero recib una peticin de un usuario que quera aprender el applymovement... as que aqu tenis la explicacin. applymovement: sirve para movilizar un mini. T defines el movimiento... y el mini lo hace. La herramienta que yo uso para sacar los movimientos es "Move It" waitmovement: explicado de manera simple, hace que hasta que un mini no termine de moverse el siguiente comando no se ejecute. Por supuesto, antes del waitmovement puedes poner cualquier cosa, eso depende del script que quieras realizar.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 applymovement 0x1 @mov1 waitmovement 0x1 release end #org @frase = Hombre gordo: Mira, s dar dos pasos\nhacia abajo #org @mov #raw 0x8 #raw 0x8 ' Estos dos seran los pasos hacia abajo #raw 0xFE 'Esto se pone SIEMPRE al final de cada applymovement, indica que se ha terminado el mov. y que el script puede continuar.

Guau, qu largo es, no? Procedamos a explicar las cosas nuevas. applymovement 0x1 @mov: @mov sera el puntero donde se indicaran los movimientos. 0x1 es el n de la persona. Obtener el nmero de la persona Bien, primero abrimos el Advance Map, y con l nuestro hack.

Ah tenemos nuestro dato principal. Ah, que no lo ves bien?

S, en el "0x" debemos poner el nmero que haya ah. Recuerda que debe estar en hexadecimal (repito que el XSE tiene una calculadora incorporada) Bueno, seguir explicando todo eso. Ah, otra cosa, recuerda que el @mov lo puedes cambiar, siempre y cuando sea una sola palabra, como el msgbox. waitmovement 0x1: Lo mismo. El 0x1 se refiere al n de persona en concreto. Qu quiere decir eso? Bueno, si pones 0x1, 0x2... el que sea, <<esperar>> por ese mini... sin embargo, si pones 0x0 esperar por cualquier applymovement. #org @mov #raw 0x8 #raw 0x8 #raw 0xFE : El #org @mov algo parecido a un msgbox, y lo dems los movimientos (se pueden sacar del move it) Bueno, y con esto termino de explicar applymovement y waitmovement. (5)Flags: Mis scripts se repiten continuamente! Siento haber tardado tanto en postear este captulo... pero bueno, aqu lo tenis. Recuerdas el givepokemon, giveitem, etc. que ense antes? Pues claro, cada vez que hablas con esa persona te vuelve a dar un Pokmon/Objeto...

vaya decepcin, no? Bah, pero eso no nos importa, porque tenemos la ayuda de nuestras queridas flags!
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 givepokemon 0x1 0x5 0x0 0x0 0x0 0x0 release end S, ese script se repite inifinitamente. Cada vez que hables con esa persona, te dar el jodido Bulbasaur al nivel 5. Arreglemos eso.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer checkflag 0x2100 if 0x1 goto @inicio2 msgbox @frase 0x6 givepokemon 0x1 0x5 0x0 0x0 0x0 0x0 setflag 0x2100 release end Antes de nada, me gustara decir que yo, por una mana que tengo, siempre uso desde la flag 2100 para arriba. Ahora toca explicar los nuevos comandos (incluso el if que ya hemos usado) checkflag 0x2100: Como su nombre indica, "checkea", mira si la flag del "0x" est activada. if 0x1 goto @inicio2: Si (if) la flag est activada (0x1) irs (goto) a otro puntero (@inicio2). 0x0 sera si la flag estuviese desactivada. setflag 0x2100: Activa la flag 2100, para que se cumpla el if. La flag se puede activar en otro script distinto, as hasta que no se hable con una persona no se pueda ir al inicio2 de esta persona, etc. Ps, es algo fcil, no? Completemos todo el script.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer

checkflag 0x2100 if 0x1 goto @inicio2 msgbox @frase 0x6 givepokemon 0x1 0x5 0x0 0x0 0x0 0x0 setflag 0x2100 release end #org @frase = Toma tu Pokmon, es un\nBulbasaur al nivel 5. #org @inicio2 lock faceplayer msgbox @frase2 0x6 release end #org @frase2 = Pero bueno, ya te he dado a tu\nPokmon, qu ms quieres? Por supuesto, las flags se pueden utilizar para un montn de cosas... pero en este captulo slo explicaremos esta. Recuerda, las flags no son infinitas, ahorra todas las posibles, utiliza la misma flag para todos los scripts posibles. clearflag El comando clearflag es un comando no tan usado como checkflag o setflag, lo que hace es desactiva la flag. Imaginemos que tenemos la flag 2100 activada, y que no la volveremos a usar.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer checkflag 0x2100 if 0x0 goto @inicio2 msgbox @frase 0x6 givepokemon 0x1 0x5 0x0 0x0 0x0 0x0 clearflag 0x2100 release end #org @frase = Toma tu Pokmon, es un\nBulbasaur al nivel 5. #org @inicio2 lock faceplayer msgbox @frase2 0x6

release end #org @frase2 = Pero bueno, ya te he dado a tu\nPokmon, qu ms quieres? Veamos las cosas que han cambiado: if 0x0 goto @inicio2: Al cambiar ese 1 por un 0, el checkflag y el if hacen que si la flag est desactivada vaya al puntero @inicio2. Como la flag 2100 estaba activada, te dar el Pokmon. clearflag: ya he explicado la funcin de este comando. Ha desactivado la flag 2100, que no la volveremos a necesitar, para poder hacer este script. Se entiende la funcin del checkflag, setflag y clearflag, verdad?
Cita:

Iniciado por Comisin anti flags errneas de Javi y Sayer Las flags que deben ser utilizadas para evitar errores son las siguientes: Desde la 0x200 hasta la 0x29F Desde la 0x500 hasta la 0x79F Desde la 0x1000 hasta la 0x109F (6)Haciendo un script de gatillo Antes de aprender cmo hacer un script de gatillo deberemos saber qu es, no?

Script de Gatillo: S con fondo verde en la que est situada.

que ejecuta un script al pisar la casilla

S, bueno, es muy bonito saber qu es... pero cmo se programa? Bueno, primero creamos uno nuevo. Hacemos click, y en esta barra...

Perfecto, expliquemos cmo configurar eso.

Pos(X/Y): Eso es la posicin del mapa en la que est el script, no lo toques, se pone automticamente. Primer Desconocido: En este siempre pondremos 0003 Var number: Aqu asignaremos una variable, pon, por ejemplo, 4050. Var value: Como an no he enseado las variables, este campo lo dejaremos en blanco, pero ms adelante s lo usaremos. Segundo desconocido: Siempre ir en blanco. Script offset: Como en un script normal, aqu ir el offset del script. Diferencias respecto a un Script normal

No puedes poner lock, ya que es al pisar una casilla y no bloquearas ningn


mini.

Lo mismo con faceplayer, no hay nadie que te pueda mirar a la cara. Usaremos variables (en el nivel fcil flags) para que no se repita.
Haciendo nuestro script de gatillo Primero diseemos un script normal y corriente.
Cita:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x6 release end #org @frase = Hola Lo marcado en negro es lo que nunca debe haber en un script de gatillo. Como ya conocemos la utilidad de las flags, completaremos el script.
Cdigo:

#dynamic 0x800000 #org @inicio checkflag 0x2101 if 0x1 goto @inicio2 msgbox @frase 0x6 setflag 0x2101 end #org @frase

= Hola #org @inicio2 release end Pues ya est. Por qu hemos dejado vaco el inicio2? Pues para que al volver a pisar la casilla no suceda nada. Bueno, eso era todo, combinadlo con lo que habis aprendido en los dems captulos y podris hacer un gran script de gatillo.

~~ NIVEL INTERMEDIO ~~
(1)Comandos: Warp, wildbattle, trainerbattle S, has odo ledo bien. Vamos a explicar los comandos warp, wildbattle y trainerbattle. Empecemos. warp: Te teletransporta a un mapa. Bien, explicar los parmetros de warp. warp 0x0 0x0 0x0 0x0 0x0 Primer 0x0 y segundo 0x0: Son el banco y el nmero de mapa respectivamente. Pero claro, decir eso es muy fcil, vamos a explicarlo mejor.

Observa donde pone VILLA RAZ (0.9). VILLA RAZ es el nombre del mapa, y de los nmeros entre parntesis el que va antes del punto es el banco, el que va despus el nmero de mapa (0 = banco, 9 = nmero de mapa) Pues el banco se pone en el primer 0x, y el nmero en el segundo 0x. Recuerda, siempre van en hexadecimal. Tercer 0x0: En "Ver eventos", debes crear un warp nuevo, y colocarlo donde quieras teletransportarte. Luego clickeas en el evento, y donde pone "No. de evento" lo pegas en el tercer 0x, siempre en hex. Cuarto y quinto 0x0: La posicin X y la posicin Y. Vamos de nuevo al Advance Map, y ponemos el ratn encima de la casilla a la que queramos teletransportarnos. Ah tenemos los datos. En mi caso, en el primer 0x sera 0E y en el segundo 0x sera 0B. Y con eso ya tenemos nuestro comando completo. Existen algunas variantes, como warpmuted, warp3, warp4, warp5, warphole, warpwalk, etc. pero t usa warp. wildbattle: Batalla contra un Pokmon salvaje. Los parmetros son igualitos al givepokemon, pero sustrayendo los 3 ltimos 0x0. Es decir... wildbattle 0x0 0x0 0x0 Primer 0x0: Nmero del Pokmon en hex. Segundo 0x0: Nivel del Pokmon en hex. Tercer 0x0: Objeto del Pokmon (ya lo expliqu en el givepokemon)

Como veis, no tiene nada de raro... de hecho, es muy fcil, es como un givepokemon. No s ni por qu lo puse en nivel intermedio. trainerbattle: Batalla contra un entrenador. Este es un poco ms complejo que los otros 2, as que... vamos all.

Hacer un trainerbattle que no sea contra un entrenador cualquiera


trainerbattle 0x3 0x0 @texto 0x3: Es para que al acabar la trainerbattle el script contine, no como los entrenadores de las rutas. 0x0: Aqu va el nmero de entrenador, se puede ver con Pet o Advance Trainer, yo uso el segundo. @texto: Puntero del texto que dir al ganarle, por ejemplo, "Oh, no me imaginaba perder!" Ahora vamos con el 0x0. Primero abramos A-Trainer/PET, y con l el ROM.

Bien, ah tenemos, enmarcado en rojo, el n que debemos poner en el segundo parmetro.

Hacer un trainerbattle que sea contra un entrenador cualquiera, de las rutas, etc.
Este es casi igual al otro. trainerbattle 0x0 0xID @frase @frase2 msgbox @frase3 0x6 0x0: Es obvio, no? Cambia el tipo de trainerbattle. 0xID: Esto ya est explicado.

@frase: Sera la frase que ira despues de que el entrenador te viese en el mapa, despus de la admiracin. @frase2: Equivale a @texto del tipo de trainerbattle anterior. msgbox @frase 0x6: Este texto sera el que dira cada vez que hablas con l una vez terminada la primera batalla. De todos modos, hay otra cosa por explicar, slo en este tipo de trainerbattle. En el mini que quieres que sea entrenador, debes marcar la casilla "Entrenador" (en ver eventos), y donde pone "Ver Rango" sera el nmero mximo de pasos a los que quieres que te vea (no s si es en hex o no, creo que s) Y, con esto y un trozo de pan, termino de explicar estos 3 comandos. (2)Comando: countpokemon & Poner mote Vale, son dos cosas sencillsimas. Si entendimos el compare y el if, entenderemos el countpokemon. countpokemon: Pues, cuenta los Pokmon que tienes en tu equipo para que ocurra algo segn los Pokmon que tengas. Esto, en algunos casos, puede ser una manera de ahorrar flags. Vamos a ver, para empezar, el countpokemon no necesita parmetros, sin embargo, s necesita ser combinado con otros coamndos.
Cdigo:

countpokemon ' Cuenta los Pokmon que tengas en tu equipo compare LASTRESULT 0x2 ' Compara los Pokmon que tengas (0x2 seran 2 Pokmon, pero puedes cambiarlo por el n de Pokmon que quieras) if 0x1 goto @inicio2 ' Si se cumple lo anterior (equivalente al parmetro 0x1) va al puntero @inicio2.*1 if 0x0 goto @inicio3 ' Al revs, si no se cumple (equivalente al parmetro 0x0) va a @inicio3. *1: [b]Qu es "lo anterior"?[/b]: El compare LASTRESULT. Si eso se cumple, es decir, si tienes 2 Pokmon (el 0x2 del compare) ir al @inicio2. Luego ya completaras el script a tu gusto, lo que ocurrira en el @inicio2 (con 2 Pokmon), lo que ocurrira en el @inicio3 (con los Pokmon que sean, siempre que no sean 2), en fin, con esto se puede hacer una infinidad de cosas, solo debes abrir tu imaginacin. Antes lo explicaba mejor, pero si habis entendido todo lo anterior, es que ya vais mejorando como scripters, y las cosas por aqu empezarn a repetirse, aadiendo nuevas cosas, y eso... sin embargo, nunca dejar de aportar, quiero que os convirtis en unos scripters excelentes.

Poner un mote
Bien. Hay 2 formas de poner un mote. Vamos a empezar explicando la ms comn, esa que usa el Profesor cuando cogemos el Pokmon, siempre dice... "Quieres darle

un mote a tu Pokmon?". Bien, vamos con eso. Para esto se suele usar un YES/NO box (ya explicado antes), ya que ningn profe obliga al entrenador a poner un mote. Adems, debo decir que esto slo sirve para el primer Pokmon del equipo.
Cdigo:

#dynamic 0x800000 #org @inicio lock faceplayer msgbox @frase 0x5 compare LASTRESULT 0x1 if 0x1 goto @inicio2 if 0x0 goto @inicio3 otro. release end

' Si dices que S, irs al puntero del mote ' Si dices que NO... pues no irs xD, irs a

#org @inicio2 special 0x9E ' Un special ejecuta una accin "especial", como su nombre indica. En este caso, la nmero 9E, que es poner un mote al 1er Pokmon del equipo. goto @inicio3 ' goto simplemente va al puntero que le indiques, no es como el if, que necesita que se cumpla una condicin. end #org @inicio3 queramos... msgbox @frase2 0x6 end ' Aqu ira el resto del script que ' Frase que blablabla...

#org @frase = Quieres ponerle un mote a tu\nPokmon? #org @frase2 = Bueno, ahora... blablabla Bueno, en el script est todo explicado, espero que lo entendis... Pero, cul es el otro tipo? Muy fcil. Tan fcil como decir que el otro tipo de renombrado es el del "Inspector de motes", y que te permite elegir a quin quieres renombrar. El script sera idntico al anterior (puedes modificarlo a tu gusto), pero cambiando el special. Este no es un special 9E, sino 9F. Sustituimos special 0x9E por special 0x9F y... listo!

Supongo que est bien explicadillo, no? (3)Movimiento de cmara

Para hacer un simple movimiento de cmara usaremos un simple applymovement y 2 specials.


Cdigo:

special 0x113 applymovement MOVE_CAMERA @mov waitmovement 0x0 Contenido de tu script applymovement MOVE_CAMERA @mov2 waitmovement 0x0 special 0x114 Procedamos con la explicacin. special 0x113: Activa un special, en este caso el 113, que permite el movimiento de cmara. Se pone siempre, al principio y al final (al final es 114). special 0x114: Finaliza el mov. de cmara. applymovement MOVE_CAMERA @mov waitmovement 0x0 Contenido de tu script applymovement MOVE_CAMERA @mov2 waitmovement 0x0: Es como un applymovement normal y corriente, luego en #org @mov y #org @mov2 pones los movimientos normales y corrientes, como si la cmara fuese un mini (el segundo MOVE_CAMERA es para centrar la cmara y que puedas manejar a tu mini centrado) (4)Editar textos especiales con XSE S, habis ledo bien, y es probable que por el ttulo no entiendas mucho, pero no te preocupes, con leer esto lo entenders. Para empezar, necesitamos una herramienta llamada FSF (Free Space Finder), que, como si nombre indica, "busca espacio libre". Abriremos nuestro ROM con la herramienta. Yo, le d a Buscar y ya encontr una direccin vaca, la cual vamos a aprovechar.

Recuerda, dale a "copiar". Ya hemos terminado con el FSF, as que podremos cerrarlo. Ahora abramos el XSE y nuestro ROM con l.

Pegamos la direccin libre ah, y clickeamos en el botn de descompilar * Debes ir a Opciones > Opciones de descompilacin (Ctrl + D) y desactivar la casilla de "refactorizacin". Si la direccin de verdad estuviese vaca, nos saldra esto.
Cdigo:

'--------------#org 0x8000D6 ' Esta es mi direccin vaca, pero puede variar, por supuesto Ahora viene mi parte favorita. Vamos a abrir el A-Text (s, qutale el polvo y engrsalo, porque lo vamos a usar), y con l nuestro ROM. Entonces clickeamos en "Search" y ponemos el texto que queramos reemplazar... por ejemplo... Cuando el profesor pide ayuda en la Ruta 101. Pongamos "H-help me!" en la barra, y le damos a Search.

Ah tenemos lo que nos gusta, "Text found at offset 1495310". Buff, pero eso est en decimal... pues qu hacemos? Nos dirigimos al XSE, y pasamos eso a hexadecimal. Muy bien, a m me di 16D10E. Pues ahora hagamos un msgbox. Sin embargo, no lo

haremos como "msgbox @frase 0x6"... pondremos esto: msgbox 0x(Direccin obtenida) 0x6. Osea, msgbox 0x16D10E 0x6. Nuestro script se vera as:
Cdigo:

#org 0x8000D6 msgbox 0x16D10E 0x6 end Ahora le damos a compilar, y en la ventanita abierta a cerrar. Luego volvemos a hacer click en "Descompilar, y..."

Listo, ya podemos editar nuestro maravilloso texto, cuando terminemos clickeamos en compilar, en cerrar y... se acab! Nota: Recuerda que si te sobrepasas un caracter, puedes joderlo todo. Nota2: Aqu podis encontrar direcciones interesantes de FR, y aqu de Ruby. (Mini-Captulo)Poniendo colores a los textos No sabes qu es eso de poner colores a los textos? Bueno, aqu, en este minicaptulo, te lo voy a ensear. No has visto algunos vdeos (o mismo el Rojo Fuego) en los que los textos cambian de color? Pues es eso! Y te voy a explicar cmo!
Cdigo:

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

Ahora vamos a escribir nuestra frase. Yo har un dilogo entre "Mam" y "Profesor", en el cual la madre hablar en color rojo y el profesor en color azul.
Cdigo:

= [red_rs]Mam: Profesor, debera blabla\p[blue_rs]Profesor: Pero si hago blabla,\nusted no puede hacer ble.\p[red_rs]Mam: Eso no me importa Profesor,\nusted es muy asdf y podr ayudarme. Bien, como puedes ver, el "[red_rs]" hace que todo el texto que vaya a continuacin salga en rojo (red). El "rs" viene de "ruby/sapphire", en FR sera "[red_fr]" y en Esmeralda "[red_em]". Y cules son todos los cdigos de colores? Cuando tengas abierto el XSE, pulsa F2, y se te abrir la ventana de ayuda. Vas a "Appendix" y luego a "Message codes", all salen todos. (5)Aprendamos a hacer scripts de gatillo con variables Buff, haca ya casi una semana que no actualizaba, as que hoy toca... hacer scripts de gatillo con variables! Para empezar... qu es una variable?
Cita:

Iniciado por Cheve_X Las variables son como alcancas con candado (no como esas que se rompen) (?), puedes abrirlas y ponerle dinero o puedes sacarle el dinero que ya le pusiste... pero no podrs sacarle dinero si nunca le has puesto y nunca podrs ponerle mas dinero si ya no tienes lugar S, sin el tuto de Cheve no sabra ni qu es una variable ^^ Pero... qu queremos decir con eso? Una variable puede tener un valor. Para explicarlo, voy a usar la frase de Cheve como ejemplo. Variable va a ser "Hucha", y Valor va a ser "Moneda". Mediante los comandos setvar, addvar y subvar podremos quitarle, sumarle y fijarle un n de monedas a nuestra hucha. Una hucha comienza teniendo 0 monedas, pero a medida que vas ahorrando sus monedas van aumentando. No lo has entendido? Cambia todas las palabras "Hucha" por Variable y todas las palabras "Moneda" por Valor. Ahora explicar los comandos. addvar: Aade una moneda a la hucha. subvar: Sustrae un nmero de monedas a la hucha. setvar: Cambia el n de monedas al que definas. Pero... y los parmetros? addvar 0x 0x: El primer parmetro es la variable, y el segundo es el n de monedas que desees aadir. subvar 0x 0x: Igual que addvar. El primero, la variable, el segundo, monedas a sustraer. setvar 0x 0x: Este se suele usar ms que los otros dos. Con este le das un n de

monedas fijo a la hucha (monedas que puedes cambiar mediante addvar, subvar y setvar). El primer parmetro es la variable, el segundo parmetro es el n de monedas que tendr la hucha (NO suma ni resta, fija unas monedas) Que s que s, que saber todo esto mola mogolln, pero... cmo dijiste que se desactivaba un script de gatillo mediante una variable? Bien, para esto haremos uso del "Var number" y "Var value" que vimos antes. En "Var number" pondremos una variable, y en "Var value" un valor de la variable (si anteriormente no usamos esta variable, sera 0000) Y qu variables puedo usar? Pues stas:
Cita:

Iniciado por Cheve_X Ruby: 5000 - 6FFF (Crditos Garfiuld) Rojo Fuego: 40FF hacia abajo (Segn javi4315) 5000 - 7FFF (Segn Garfiuld) Esmeralda: 5000 - 7FFF (Crditos Garfiuld) Bien, ahora, al final del script de gatillo, pondremos un "setvar 0xVariable puesta en Var number 0x1". sto cambiar el valor de la variable que pusimos en "Var number", y como en "Var value" pusimos 0000, eso hace que slo se ejecute el script de gatillo cuando el valor de la variable sea 0. Al poner el setvar, hacemos que el valor sea 1, entonces no se seguir ejecutando. Las variables tienen muchos ms usos, pero en este captulo solo daremos ste. Saludos!

Вам также может понравиться