De Whack a Hack Wiki!

Revisión del 19:43 20 sep 2020 de Samu (discusión | contribuciones) (Tipos de Msgbox)

Los Script permiten programar eventos de forma rápida y sencilla, haciendo uso de una lista de comandos pre-programados dentro del juego. En decompilación de GBA (ruby, firered y emerald) existen alrededor de 200 comandos, la mayoría son comunes a los 3 juegos.

Lista de Comandos para Scripts

Comandos Regulares

ID Comando Parámetros Descripción Plataforma
0x00 nop - Comando vacío. No hace nada. R-FR-E
0x01 nop1 - Comando vacío. No hace nada. R-FR-E
0x02 end - Finaliza la ejecución del script. R-FR-E
0x03 return - Vuelve a la línea siguiente al último comando 'call' ejecutado. R-FR-E
0x04 call [script] Ejecuta el script pasado como argumento. Permite la vuelta mediante 'return' R-FR-E
0x05 goto [script] Continua la ejecución en el script pasado como argumento R-FR-E
0x06 goto_if [condición] [script] Continua la ejecución en el script pasado como argumento, siempre que se cumpla la condición. R-FR-E
0x07 call_if [condición] [script] Similar a 'goto_if', pero permite la vuelta al script original usando 'return'. R-FR-E
0x08 gotostd [función standard] Permite ejecutar una de las funciones standard del juego. Uso anecdótico. R-FR-E
0x09 callstd [función standard] Similar a 'gotostd', pero permite volver desde un 'return'. Uso anecdótico. R-FR-E
0x0A gotostd_if [condicion] [función standard] Ejecuta una de las funciones standard, siempre que se cumpla la condición. Uso anecdótico. R-FR-E
0x0B callstd_if [condición] [función standard] Similar a gotostd_if, pero permite volver desde un 'return'. Uso anecdótico. R-FR-E
0x0C returnram - Ejecuta el script cuyo puntero esté almacenado dinámicamente en gUnknown_020375C0. Uso anecdótico. E
0x0C gotoram - Es igual a returnram, pero en pokefirered y pokeruby. R-FR
0x0D killscript - Finaliza la ejecución del script reseteando completamente la RAM de scripts. R-FR-E
0x0E setmysteryeventstatus [estado] Modifica un valor relacionado con el evento misterioso. Utilizado únicamente en Ruby, y como herramienta de Debug. R-FR-E
0x0F loadword [buffer_id] [2 bytes] Almacena un valor de 2 bytes (u16) en el buffer de scripts especificado R-FR-E
0x10 loadbyte [buffer_id] [byte] Almacena un valor de 1 byte (u8) en el buffer de scripts especificado. R-FR-E
0x11 writebytetoaddr [byte] [dirección RAM] Almacena un valor de 1 byte (u8) en la dirección RAM especificada. R-FR-E
0x12 loadbytefromaddr [buffer_id] [dirección RAM] Almacena en el buffer seleccionado el valor contenido en la dirección RAM especificada (1 byte). R-FR-E
0x13 setptrbyte [buffer_id] [dirección RAM] Almacena en la dirección RAM especificada el valor (1 byte) del buffer seleccionado. R-FR-E
0x14 copylocal [buffer_id destino] [buffer_id origen] Copia el valor del buffer seleccionado como origen en el buffer seleccionado como destino. R-FR-E
0x15 copybyte [RAM destino] [RAM origen] Copia el valor (1 byte) de la dirección RAM marcada como origen en la dirección RAM de destino. R-FR-E
0x16 setvar [var_id] [valor] Establece el valor indicado para la variable seleccionada. R-FR-E
0x17 addvar [var_id] [valor] Añade el valor indicado al valor actual de la variable seleccionada. R-FR-E
0x18 subvar [var_id] [valor] Resta el valor indicado al valor actual de la variable seleccionada. R-FR-E
0x19 copyvar [var_id destino] [var_id origen] Copia el valor de la variable origen en la variable destino. R-FR-E
0x1A setorcopyvar [var_id destino] [origen] Si el origen es una variable, actuará como 'copyvar'. En caso contrario será como 'setvar'. R-FR-E
0x[1B-22] compare [a] [b] Comando genérico para comparación. Se encarga de identificar los tipos de valores a y b para usar el comando 'compare' correspondiente. R-FR-E
0x1B compare_local_to_local [buffer_id1] [buffer_id2] Compara el valor de dos buffers de scripts. No se llama directamente. R-FR-E
0x1C compare_local_to_value [buffer_id] [byte] Compara el valor de un buffer con el valor indicado. No se llama directamente. R-FR-E
0x1D compare_local_to_addr [buffer_id] [dirección RAM] Compara el valor de un buffer con el valor almacenado en la dirección RAM indicada. No se llama directamente. R-FR-E
0x1E compare_addr_to_local [dirección RAM] [buffer_id] Compara el valor almacenado en una dirección RAM con el valor del buffer indicado. No se llama directamente. R-FR-E
0x1F compare_addr_to_value [dirección RAM] [byte] Compara el valor almacenado en una dirección RAM con el valor indicado. No se llama directamente. R-FR-E
0x20 compare_addr_to_addr [dirección RAM 1] [dirección RAM 2] Compara el valor almacenado en una dirección RAM con el de otra dirección RAM. No se llama directamente. R-FR-E
0x21 compare_var_to_value [var_id] [byte] Compara el valor de una variable con el valor indicado. No se llama directamente. R-FR-E
0x22 compare_var_to_var [var_id1] [var_id2] Compara el valor de una variable con el de otra variable. No se llama directamente. R-FR-E
0x23 callnative [función] Ejecuta una función nativa en C/ASM, continua con la ejecución del script al terminar la función. R-FR-E
0x24 gotonative [función] Ejecuta una función nativa en C/ASM, termina la ejecución del script. R-FR-E
0x25 special [special_id] Ejecuta la función special indicada. R-FR-E
0x26 specialvar [var_id] [special_id] Ejecuta la función special indicada. Si la función devuelve algún valor, lo almacena en la variable especificada. R-FR-E
0x27 waitstate - Bloquea la ejecución del escript hasta que una función nativa o una función special lo desbloqueen explícitamente. R-FR-E
0x28 delay [cantidad (4 bytes)] Pausa la ejecución del script durante el número indicado de ciclos (~60 ciclos/s) R-FR-E
0x29 setflag [flag_id] Establece el valor del flag indicado en 1 (activado). R-FR-E
0x2A clearflag [flag_id] Establece el valor del flag indicado en 0 (desactivado). R-FR-E
0x2B checkflag [flag_id] Comprueba el valor del flag indicado. R-FR-E
0x2C initclock [hora] [minuto] Inicializa el reloj local del juego en la hora y el minuto marcados. R-E
0x2D dotimebasedevents - Ejecuta los eventos diarios. R-E
0x2E gettime - Escribe en las variables 0x8000, 0x8001 y 0x8002 el tiempo del reloj en horas, minutos y segundos. R-E
0x2F playse [sonido_id] Reproduce el sonido indicado. Solo uno de forma simultánea. R-FR-E
0x30 waitse - Pausa la ejecución del script hasta que termina la reproducción del efecto sonoro. R-FR-E
0x31 playfanfare [melodía_id] Reproduce la melodía indicada. R-FR-E
0x32 waitfanfare - Detiene la ejecución del script hasta que finaliza la melodía. R-FR-E
0x33 playbgm [canción_id] [0x00] Reproduce la canción indicada. Segundo parámetro desconocido, siempre es 0x00. R-FR-E
0x34 savebgm [canción_id] Guarda el id de la canción indicada para reproducirla más tarde. R-FR-E
0x35 fadedefaultbgm - Desvanece la canción que se reproduce actualmente hasta la canción por defecto del mapa. R-FR-E
0x36 fadenewbgm [canción_id] Desvanece la canción que se reproduce actualmente hasta la canción indicada. R-FR-E
0x37 fadeoutbgm [velocidad] Desvanece la canción que se reproduce hasta que desaparece. R-FR-E
0x38 fadeinbgm [velocidad] Hace sonar gradualmente la canción que se reproduce actualmente (desde mute a volúmen completo) R-FR-E
0x39 warp [mapa] [warp_id] [pos_x] [pos_y] Transporta al jugador al mapa y warp escogidos. Si el warp_id es 0xFF, el jugador será transportado a las coordenadas X e Y dadas. R-FR-E
0x3A warpsilent [mapa] [warp_id] [pos_x] [pos_y] Exactamente igual a warp. No aplica el sonido del warp. R-FR-E
0x3B warpdoor [mapa] [warp_id] [pos_x] [pos_y] Exactamente igual a warp. Reproduce el sonido y la animación de una puerta. R-FR-E
0x3C warphole [mapa] Teletransporta al jugador al mapa indicado con la animación de un agujero. R-FR-E
0x3D warpteleport [mapa] [warp_id] [pos_x] [pos_y] Exactamente igual a warp. Aplica una animación de teletransporte. R-FR-E
0x3E setwarp [mapa] [warp_id] [pos_x] [pos_y] Guarda un destino de teletransporte para ser usado más tarde. R-FR-E
0x3F setdynamicwarp [mapa] [warp_id] [pos_x] [pos_y] Establece el destino del warp dinámico del mapa. (Para hacer un warp dinámico, este debe ir al warp 127 del mapa 127.127). R-FR-E
0x40 setdivewarp [mapa] [warp_id] [pos_x] [pos_y] Establece el lugar de salida del buceo. R-FR-E
0x41 setholewarp [mapa] [warp_id] [pos_x] [pos_y] Establece el destino del jugador cuando sufra un 'warphole'. R-FR-E
0x42 getplayerxy [variable_id1] [variable_id2] Guarda en las variables indicadas las posiciones X e Y del jugador dentro del mapa actual. R-FR-E
0x43 getpartysize - Guarda el número de Pokémon en el equipo del jugador en la variable 0x800D (VAR_RESULT). R-FR-E
0x44 giveitem [item_id] [cantidad] Intenta añadir la cantidad del objeto indicado a la mochila. Si lo consigue VAR_RESULT será 1, en caso contrario VAR_RESULT será 0. R-FR-E
0x45 takeitem [item_id] [cantidad] Elimina la cantidad del objeto indicado de la mochila del jugador. R-FR-E
0x46 checkitemspace [item_id] [cantidad] Comprueba si hay espacio suficiente en la mochila para los objetos indicados. Si hay espacio (VAR_RESULT = 1), si no lo hay (VAR_RESULT = 0) R-FR-E
0x47 checkitem [item_id] [cantidad] Comprueba si en la mochila hay la cantidad indicada (o más) del objeto escogido. En caso afirmativo (VAR_RESULT = 1), si no (VAR_RESULT = 0) R-FR-E
0x48 checkitemtype [item_id] Almacena el tipo de objeto (curativo, ball, etc) del objeto indicado en VAR_RESULT. Es usado internamente al dar objetos con 'callstd Std_ObtainItem' R-FR-E
0x49 givepcitem [item_id] [cantidad] Almacena en el pc la cantidad y el objeto indicados. En este caso los parámetros pueden ser variables. R-FR-E
0x4A checkpcitem [item_id] [cantidad] Similar a 'checkitem', pero hace las comprobaciones dentro del pc en lugar de en la mochila. R-FR-E
0x4B givedecoration [decoración_id] Añade el objeto decorativo indicado al pc del jugador. R-E
0x4C takedecoration [decoración_id] Elimina el objeto decorativo indicado del pc del jugador. R-E
0x4D checkdecor [decoración_id] Comprueba si el jugador posee el objeto decorativo indicado. R-E
0x4E checkdecorspace - Comprueba si el jugador posee espacio suficiente en el pc para más objetos decorativos. En caso afirmativo (VAR_RESULT = 1), si no (VAR_RESULT = 0). R-E
0x4F applymovement [objeto_id] [movimientos] Aplica los movimientos indicados en el objeto (overworld) deseado. R-FR-E
0x50 applymovement [objeto_id] [movimientos] [mapa] En el 'applymovement' se puede indicar el mapa del que se cogerá el objeto (para coger un mini de otro mapa) R-FR-E
0x51 waitmovement [objeto_id] Pausa el script hasta que finaliza el movimiento del objeto indicado R-FR-E
0x52 waitmovement [objeto_id] [mapa] Al igual que en 'applymovement', se puede especificar el mapa del que se cogerá el objeto a mover. R-FR-E
0x53 removeobject [objeto_id] Oculta el objeto indicado, activando la flag de visibilidad asignada a dicho objeto (si no la tiene, eliminará el objeto hasta que se produzca un movimiento al acabar el script) R-FR-E
0x54 removeobject [objeto_id] [mapa] Se puede especificar el mapa del objeto a ocultar. R-FR-E
0x55 addobject [objeto_id] Limpia el flag de visibilidad del objeto indicado, mostrándolo (si no hay flag asignado, no hará nada) [pendiente de testeo] R-FR-E
0x56 addobject [objeto_id] [mapa] Se puede especificar el mapa en el que se encuentra el objeto. R-FR-E
0x57 setobjectxy [objeto_id] [pos_x] [pos_y] Establece la posición del objeto en las coordenadas X e Y indicadas. R-FR-E
0x58 showobjectat [objeto_id] [map] Activa la visibilidad del objeto seleccionado dando el id y el mapa. R-FR-E
0x59 hideobjectat [objeto_id] [map] Desactiva la visibilidad del objeto seleccionado dando el id y el mapa. R-FR-E
0x5A faceplayer - Si el script fue llamado por un objeto, este se orientará mirando al jugador. R-FR-E
0x5B turnobject [objeto_id] [dirección] Orienta el objeto seleccionado en la dirección indicada. R-FR-E
0x5C trainerbattle [tipo_combate] [entrenador_id] [arg0] [arg1] [arg2] [arg3] [arg4] Configura el combate contra un entrenador con varios parámetros que se almacenan en RAM. R-FR-E
0x5D trainerbattlebegin - Comienza el combate contra un entrenador usando los datos almacenados en RAM. R-FR-E
0x5E gotopostbattlescript - Continua con el script después del combate. Llamado internamente en 'battle_setup.c' R-FR-E
0x5F gotobeatenscript - Ejecuta el script correspondiente tras una derrota. Llamado internamente en 'battle_setup.c' R-FR-E
0x60 checktrainerflag [entrenador_id] Comprueba el valor del flag del entrenador indicado (si el valor es 1, el entrenador está marcado como derrotado) R-FR-E
0x61 settrainerflag [entrenador_id] Establece un entrenador como derrotado. R-FR-E
0x62 cleartrainerflag [entrenador_id] Establece un entrenador como NO derrotado. R-FR-E
0x63 setobjectxyperm [objeto_id] [pos_x] [pos_y] Establece la posición de un objeto de forma 'permanente' (hasta que se cambia del mapa, en otros comandos solo se mantiene hasta que sale de pantalla) R-FR-E
0x64 copyobjectxytoperm [objeto_id] Establece la posición actual de un objeto como su posición 'permanente'. Esta 'permanencia' es igual a la de 'setobjectxyperm' R-FR-E
0x65 setobjectmovementtype [4 bytes] [byte] R-FR-E
0x66 waitmessage - Pausa la ejecución del script hasta que termina de dibujarse el texto y/o el cuadro de texto. R-FR-E
0x67 message [texto] Muestra un texto en un cuadro de texto por defecto. El 'texto' debe ser un pointer al propio texto. R-FR-E
0x68 closemessage - Cierra la ventana de texto que se está mostrando actualmente R-FR-E
0x69 lockall - Bloquea el movimiento de todos los objetos en pantalla R-FR-E
0x6A lock - Si el script fue llamado por un objeto, bloquea el movimiento de dicho objeto R-FR-E
0x6B releaseall - Libera todos los objetos cuyo movimiento ha sido bloqueado R-FR-E
0x6C release - Si el script fue llamado por un objeto, desbloquea el movimiento de dicho objeto. R-FR-E
0x6D waitbuttonpress - Detiene la ejecución del script hasta que el jugador presiona una tecla. R-FR-E
0x6E yesnobox [pos_x] [pos_y] Muestra un cuadro de texto "Sí/No" en las coordenadas X e Y indicadas y bloquea la ejecución hasta que se seleccione una de las opciones. (las coordenadas son en tiles de 8x8) R-FR-E
0x6F multichoice [pos_x] [post_y] [multichoice_id] [bloquear_b] Muestra un cuadro de selección de opción múltiple en las coordenadas X e Y marcadas. [bloquear_b] puede ser 0 o 1, y permitirá o bloqueará la opción de cancelar el botón multichoice con el botón 'B'. R-FR-E
0x70 multichoicedefault [pos_x] [pos_y] [multichoice_id] [por_defecto] [permitir_b] Es igual a 'multichoice', pero permite seleccionar la opción marcada por defecto con [por_defecto] R-FR-E
0x71 multichoicegrid [pos_x] [pos_y] [multichoice_id] [por_fila] [permitir_b] Es igual a 'multichoice', pero permite seleccionar el número de opciones por fila. R-FR-E
0x72 drawbox [pos_x] [pos_y] [ancho] [alto] Dibuja una caja vacía (window) en la posición y con las dimensiones indicadas. R-FR
0x73 erasebox [pos_x] [pos_y] [ancho] [alto] Borra los tiles de caja (window) que haya en las posiciones indicadas. R-FR
0x74 drawboxtext [byte] [byte] [byte] [byte] R-FR
0x75 showmonpic [especie] [pos_x] [pos_y] Muestra un cuadro con el front sprite del pokémon seleccionado FR-E
0x75 drawmonpic [especie] [pos_x] [pos_y] Muestra un cuadro con el front sprite del pokémon seleccionado R
0x76 hidemonpic - Oculta todos los cuadros mostrados con 'showmonpic' FR-E
0x76 erasemonpic - Oculta todos los cuadros mostrados con 'showmonpic' R
0x77 showcontestwinner [id_ganador] Muestra el ganador del concurso pokémon R-E
0x77 drawcontestwinner [id_ganador] Muestra el ganador del concurso pokémon R
0x78 braillemessage [texto] Muestra un cuadro de texto braille. [texto] debe ser un puntero al propio texto. R-FR-E
0x79 givemon [especie_id] [nivel] [objeto_id] Da al jugador el Pokémon con el nivel y el objeto seleccionados. R-FR-E
0x7A giveegg [especie_id] Da al jugador un huevo del Pokémon elegido. R-FR-E
0x7B setmonmove [posición_pokemon] [casilla_movimiento] [ataque_id] Modifica el movimiento seleccionado de un Pokémon del equipo. R-FR-E
0x7C checkpartymove [ataque_id] Comprueba si al menos un Pokémon en el equipo conoce el ataque seleccionado. En VAR_RESULT se almacena la posición del Pokémon que lo conoce (6, si no lo tiene ninguno) y 0x8004 almacena la especie de dicho Pokémon. R-FR-E
0x7D bufferspeciesname [buffer_id] [especie_id] Almacena el nombre de la especie Pokémon seleccionada en un buffer. R-FR-E
0x7E bufferleadmonspeciesname [buffer_id] Almacena el nombre de la especie del Pokémon en el primer lugar del equipo. R-FR-E
0x7F bufferpartymonnick [buffer_id] [posición] Almacena el nombre o mote de un Pokémon del equipo en un buffer. R-FR-E
0x80 bufferitemname [buffer_id] [item_id] Almacena el nombre del objeto indicado en un buffer. R-FR-E
0x81 bufferdecorationname [buffer_id] [decoración_id] Almacena el nombre del objeto decorativo indicado en un buffer. R-E
0x82 buffermovename [buffer_id] [ataque_id] Almacena el nombre de un ataque en un buffer. R-FR-E
0x83 buffernumberstring [buffer_id] [numero] Convierte un número (hex) en una cadena de texto decimal y lo almacena en un buffer. R-FR-E
0x84 bufferstdstring [buffer_id] [función_std] Almacena el texto de una standard en un buffer R-FR-E
0x85 bufferstring [buffer_id] [dirección ROM] Almacena en un buffer la cadena de texto situada en una dirección ROM R-FR-E
0x86 pokemart [objetos_disponibles] Abre el menú de la tienda con los objetos marcados como disponibles. R-FR-E
0x87 pokemartdecoration [objetods_disponibles] Abre el menú de la tienda con los objetos decorativos marcados como disponibles. R-E
0x88 pokemartdecoration2 [objetos_disponibles] Clon del comando 'pokemartdecoration' R-E
0x89 playslotmachine [4 bytes] Inicia la máquina tragaperras. Parámetro desconocido. R-FR-E
0x8A setberrytree [árbol_id] [baya_id] [estado_crecimiento] Establece la baya y el estado de crecimiento de un árbol determinado. R-E
0x8B choosecontestmon - Abre un menú que permite al jugador escoger un Pokémon para usarlo en un concurso. R-FR-E
0x8C startcontest - Comienza un concurso Pokémon. R-E
0x8D showcontestresults - Muestra los resultados de un concurso Pokémon. R-E
0x8E contestlinktransfer - Comienza un concurso Pokémon con comunicación inalámbrica. R-E
0x8F random [máximo] Genera un número aleatorio entre 0 y el máximo escogido y lo almacena en VAR_RESULT. R-FR-E
0x90 givemoney [cantidad] [check] Si check es 0, da la cantidad de dinero especificada al jugador. R-FR-E
0x91 takemoney [cantidad] [check] Si check es 0, sustrae la cantidad de dinero especificada al jugador. R-FR-E
0x92 checkmoney [cantidad] [check] Si check es 0, comprueba que el jugador tenga al menos la cantidad de dinero especificada. Si es cierto (VAR_RESULT = 1), en caso contrario (VAR_RESULT = 0) R-FR-E
0x93 showmoneybox [pos_x] [pos_y] [check] Si check es 0, muestra un cuadro de texto en las coordenadas X e Y con la cantidad de dinero del jugador. R-FR-E
0x94 hidemoneybox - Oculta el cuadro de texto mostrado mediante el comando 'showmoneybox' R-FR-E
0x95 updatemoneybox [pos_x] [pos_y] Actualiza el valor del cuadro de texto mostrado mediante 'showmoneybox'. Requiere parámetros, pero no los utiliza. R-FR-E
0x96 getpricereduction [oferta_id] Aplica la reducción de precio de la ofertas seleccionada. (POKENEWS_SLATEPORT y POKENEWS_LILYCOVE en 'IsPriceDiscounted') R-E
0x97 fadescreen [modo] Desvanece la pantalla de: 0-{De negro a normal}, 1-{De normal a negro}, 2-{De blanco a normal}, 3-{De normal a blanco} R-FR-E
0x98 fadescreenspeed [modo] [velocidad] Igual a 'fadescreen', permite seleccionar la velocidad de la transición. R-FR-E
0x99 setflashradius [radio] R-FR-E
0x9A animateflash [byte] R-FR-E
0x9B messageautoscroll [texto] Cuadro de texto que se reproduce automáticamente, sin necesidad de input del jugador. R-FR-E
0x9C dofieldeffect [mo_id] Realiza la animación externa de un movimiento de MO. R-FR-E
0x9D setfieldeffectargument [argumento_fdleffect] [valor] Establece el valor del 'fieldargument' R-FR-E
0x9E waitfieldeffect - Pausa la ejecución del script hasta que termina la animación iniciada por 'dofieldeffect' R-FR-E
0x9F setrespawn [heal_location] Establece el heal location/ healing place al que retornará el jugador al morir. R-FR-E
0xA0 checkplayergender - Comprueba el sexo del jugador. Si es chico (VAR_RESULT = 0), si es chica (VAR_RESULT = 1) R-FR-E
0xA1 playmoncry [especie_id] [efecto(?)] Reproduce el grito del Pokémon indicado. Se puede bloquear la ejecución del script hasta que termine con waitmoncry. R-FR-E
0xA2 setmetatile [pos_x] [pos_y] [metatile_id] [colisión_id] Modifica el metatile y la colisión situado en las coordenadas X e Y del mapa actual. R-FR-E
0xA3 resetweather - Resetea el clima para volver al clima por defecto del mapa. (No ejecuta el cambio) R-FR-E
0xA4 setweather [clima_id] Establece el clima seleccionado. (No ejecuta el cambio) R-FR-E
0xA5 doweather - Ejecuta el clima configurado mediante 'setweather' o 'doweather'. R-FR-E
0xA6 setstepcallback [función_callback] Llamado en un script de nivel para controlar el comportamiento de tiles que cambian de estado al ser pisados (hielo quebradizo, hierba con ceniza, etc) R-FR-E
0xA7 setmaplayoutindex [valor] Modifica el layout del mapa (lo que viene a ser el mapeado en sí). Es utilizado para cargar el escenario en mapas cambiantes, como la ruta 130 (Isla Espejismo). R-FR-E
0xA8 setobjectpriority [objeto_id] [mapa_id] [prioridad] Modifica la prioridad del objeto indicado (un objeto de menor prioridad se mostrará por encima de otro con mayor prioridad) R-FR-E
0xA9 resetobjectpriority [objeto_id] [mapa_id] Resetea la prioridad del objeto indicado. R-FR-E
0xAA createvobject [sprite_id] [virtual_id] [pos_x] [pos_y] {elevación} {dirección} Crea un objeto virtual que desaparece al cambiar de mapa (usado en los concursos y en la torre batalla). Elevación y dirección son opcionales. Permite superar la limitación de 16 ObjectEvent en pantalla (es un sprite pelado, no un ObjectEvent). R-FR-E
0xAB turnvobject [virtual_id] [dirección] Gira un objeto virtual. (DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST). Único movimiento permitido en vobjects. R-FR-E
0xAC opendoor [pos_x] [pos_y] Reproduce la animación de abrir la puerta situada en (X,Y) R-FR-E
0xAD closedoor [pos_x] [pos_y] Reproduce la animación de cerrar la puerta situada en (X,Y) R-FR-E
0xAE waitdooranim - Detiene la ejecución del script hasta que terminan las animaciones de las puertas. R-FR-E
0xAF setdooropen [pos_x] [pos_y] Establece la puerta situada en (X,Y) como abierta, sin realizar animación. R-FR-E
0xB0 setdoorclosed [pos_x] [pos_y] Establece la puerta situada en (X,Y) como cerrada, sin realizar animación. R-FR-E
0xB1 addelevmenuitem [byte] [2 byte] [2 byte] [2 byte] No hace absolutamente nada. Código vacío. No es usado en los juegos. R-E
0xB2 showelevmenu - Muestra el menú del ascensor R
0xB3 checkcoins [buffer_id] Almacena en un bufffer la cantidad de monedas (casino) del jugador. R-FR-E
0xB4 givecoins [cantidad] Da al jugador la cantidad de monedas especificadas (casino). R-FR-E
0xB5 takecoins [cantidad] Le quita al jugador la cantidad de monedas especificadas (casino). R-FR-E
0xB6 setwildbattle [especie_id] [nivel] [item_id] Configura un combate contra un Pokémon salvaje, con la especie, el nivel y el objeto equipado escogidos. R-FR-E
0xB7 dowildbattle - Comienza el combate salvaje configurado mediante setwildbattle. R-FR-E
0xB8 setvaddress [script] R-FR-E
0xB9 vgoto [script] R-FR-E
0xBA vcall [script] R-FR-E
0xBB vgoto_if [byte] [pointer] R-FR-E
0xBC vcall_if [byte] [pointer] R-FR-E
0xBD vmessage [texto] R-FR-E
0xBE vloadptr [texto] R-FR-E
0xBF vbufferstring [buffer_id] [texto] R-FR-E
0xC0 showcoinsbox [pos_x] [pos_y] Muestra una caja de texto con las monedas disponibles (casino) en las coordenadas (X,Y). R-FR-E
0xC1 hidecoinsbox [pos_x] [pos_y] Oculta la caja de texto mostrada mediante el comando 'showcoinsbox'. (No usa los argumentos) R-FR-E
0xC2 updatecoinsbox [pos_x] [pos_y] Actualiza el valor de la caja de texto mostrada mediante el comando 'showcoinsbox'. (No usa los argumentos) R-FR-E
0xC3 incrementgamestat [estadistica] Aumenta en 1 el valor de la estadística del juego seleccionada (máximo 65 353). (Buscar fichero 'game_stat.h', para ver las estadísticas disponibles). R-FR-E
0xC4 setescapewarp map:req, warp:req, x:req, y:req [mapa_id] [warp_num] [pos_x] [pos_y] Establece la ubicación en la que se aparecerá al utilizar excavar o cuerda huida. R-FR-E
0xC5 waitmoncry - Bloquea la ejecución del script hasta que termina de reproducirse el grito de un Pokémon llamado con playmoncry. R-FR-E
0xC6 bufferboxname [buffer_id] [numero_caja] Coloca en un buffer el nombre de la caja del pc indicada. R-FR-E
0xC7 textcolor [color] Configura el color del texto mostrado en cuadros de texto por defecto. FR
0xC8 loadhelp [pointer_texto] Relacionado con el texto que aparece en el cuadro azul al pulsar start. FR
0xC9 unloadhelp - FR
0xCA signmsg - Una vez activado, todos los textos utilizarán el cuadro de texto de los postes/carteles. FR
0xCB normalmsg - Finaliza el efecto de 'signmsg' FR
0xCC comparehiddenvar [variable_oculta] [valor] Compara el valor de una variable oculta con el de un número dado. FR
0xCD setmonobedient [posición] Fuerza al Pokémon del equipo indicado a ser obediente. FR-E
0xCE checkmonobedience [posición] Comprueba si el Pokémon del equipo seleccionado es obediente. Si es obediente (VAR_RESULT = 0), si no lo es (VAR_RESULT = 1) FR-E
0xCF gotoram - FR-E
0xD0 setworldmapflag [flag_mapamundi] Activa el flag del mapa seleccionado. Esto marca el mapa como visitado y permitirá al jugador volar a este punto. FR
0xD1 warpteleport2 [mapa_id] [warp_id] [pos_x] [pos_y] Clon de 'warpteleport'. Es únicamente usado en FR/LG, y es llamado mediante specials. FR-E
0xD2 setmonmetlocation [posición] [localización] Modifica el lugar de captura del Pokémon seleccionado del equipo. FR-E
0xD3 moverotatingtileobjects [numero_puzzle] Controla la posición de los tiles usados en el 7º gimnasio de Esmeralda o 7ª prueba de la Casa Treta. (posiciones 0-4) E
0xD3 getbraillestringwidth [puntero_texto] FR
0xD4 turnrotatingtileobjects - Actualiza la posición de los tiles usados en el 7º gimnasio o en la 7ª prueba de la Casa Treta. E
0xD5 initrotatingtilepuzzle - Reserva memoria necesaria para los objetos del puzzle. 'isTrickHouse' se utiliza para determinar cual de los dos mapas se está usando. E
0xD6 freerotatingtilepuzzle - Libera la memoria reservada por 'initrotatingtilepuzzle' E
0xD7 warpmossdeepgym [mapa_id] [warp_id] [pos_x] [pos_y] Warp usado el el 7º gimnasio de Esmeralda. E
0xD8 cmdD8 - Relacionado con el entrenador que se te aproxima antes de un combate. Llamado internamente antes de iniciar un combate contra entrenador. E
0xD9 cmdD8 - Relacionado con los combates contra entrenadores. Llamado internamente antes de iniciar un combate contra un entrenador. E
0xDA closebraillemessage - Cierra un cuadro de texto que muestra un mensaje en braille. E
0xDB message3 [texto] Clon del comando 'message'. E
0xDC fadescreenswapbuffers [byte] E
0xDD buffertrainerclassname [buffer_id] [clase_entrenador] Almacena en un buffer el nombre de la clase de entrenador indicado. R-FR-E
0xDE buffertrainername [buffer_id] [entrenador_id] Almacena en un buffer el nombre del entrenador indicado. R-FR-E
0xDF pokenavcall [pointer_llamada] Realiza una llamada de pokenav. Se suele usar seguido de un waitmessage. E
0xE0 warp8 [map_id] [warp_id] [pos_x] [pos_y] Es igual a 'warp', pero hace un efecto de fade a blanco. Usado únicamente en el evento de Rayquaza en Sootopolis. E
0xE1 buffercontesttypestring [buffer_id] [2 bytes] Almacena en un buffer el nombre del tipo de concurso. El tipo de concurso debe estar almacenado en una variable. Solo se usa una vez en el ROM. E
0xE2 bufferitemnameplural [buffer_id] [item_id] [cantidad] Almacena en un buffer el nombre de un objeto, teniendo en cuenta el plural. (Aviso a navegantes, el plural en inglés siempre añade una s, no tiene mucho uso en castellano.). E

Comandos Suplementarios

Estos comandos contienen estructuras de control/decisión lógica para los script, así como otras utilidades construidas con los comandos regulares. No se encuentran dentro de la propia tabla de comandos.

Comando Parámetros Descripción
goto_if_unset [flag] [script] Realiza comando un 'goto' al script si el flag está apagado (0).
goto_if_set [flag] [script] Realiza un comando 'goto' al script si el flag está encendido (1).
goto_if_lt [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'menor que'.
goto_if_eq [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'igual'.
goto_if_gt [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'mayor que'.
goto_if_le [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'menor o igual que'.
goto_if_ge [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'mayor o igual que'.
goto_if_ne [script] Realiza un comando 'goto' al script si la comparación anterior devuelve 'distinto que'.
call_if_unset [flag] [script] Realiza un comando 'call' al script si el flag está apagado (0).
call_if_set [flag] [script] Realiza un comando 'call' al script si el flag está encendido (1).
call_if_lt [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'menor que'.
call_if_eq [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'igual que'.
call_if_gt [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'mayor que'.
call_if_le [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'menor o igual que'.
call_if_ge [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'mayor o igual que'.
call_if_ne [script] Realiza un comando 'call' al script si la comparación anterior devuelve 'distinto que'.
vgoto_if_eq [script] Realiza un comando 'vgoto' al script si la comparación anterior devuelve 'igual que'.
vgoto_if_ne [script] Realiza un comando 'vgoto' al script si la comparación anterior devuelve 'distinto que'.
switch [variable] Permite realizar una estructura de control switch en los scripts.
case [condición] [script] Casos de la estructura switch. Se compará el valor de la condición con el valor de la varible que se le pasa al switch. Si son iguales, hace un 'goto' al script.
msgbox [texto] {tipo_cuadro} Crea un cuadro de texto con el tipo de cuadro indicado. Tipo de cuadro por defecto (MSGBOX_DEFAULT).
giveitem_std [item_id] {cantidad} Da al jugador el objeto indicado, haciendo uso de funciones standard (incluye mensaje). Cantidad por defecto (1).
givedecoration_std [decoración_id] Da al jugador el objeto decorativo indicado, haciendo uso de funciones standard (incluye mensaje).
register_matchcall [entrenador_id] Registra un entrenador en el pokenav, haciendo uso de funciones standard (incluye texto).
dofieldeffectsparkle [pos_x] [pos_y] [prioridad] Reliza una animación de centelleo en las coordenadas (X,Y) con la prioridad indicada. (Nao Abandonado).

Información de utilidad para los script

Muchos de los comandos hacen uso de parámetros que modifican su comportamiento. Estos parámetros pueden tener un rango de valores/identificadores posibles, en este apartado encontrarás información sobre los valores que pueden tomar algunos parámetros importantes en los scripts.


Funciones Standard

Las funciones standard, son una serie de funcionalidades básicas utilizadas por los scripts de los juegos de tercera generación. En total son 11, y están contenidos dentro de gStdScripts en "./data/event_scripts.s".

Función Standard Descripción
Std_ObtainItem Mensaje de texto por defecto la obtener un objeto.
Std_FindItem Mensaje de texto por defecto al encontrar un objeto.
Std_MsgboxNPC Cuadro de texto mostrado al hablar con un npc.
Std_MsgboxSign Cuadro de texto mostrado al hablar con un poste.
Std_MsgboxDefault Cuadro de texto mostrado por defecto.
Std_MsgboxYesNo Cuadro de texto con opciones "Sí/No"
Std_MsgboxAutoclose Cuadro de texto que se cierra automáticamente
Std_ObtainDecoration Mensaje de texto mostrado por defecto al obtener una decoración de la base secreta.
Std_RegisteredInMatchCall Mensaje de texto mostrado por defecto al registrar alguien en el pokenav (solo ruby y emerald)
Std_MsgboxGetPoints Mensaje por defecto mostrado al recibir puntos de la torre batalla.
Std_10 Mensaje relacionado con el Pokenav.


Funciones Special

Las funciones special, son una serie de "funciones especiales" que pueden ser llamadas en los scripts haciendo uso del comando 'special'. Existen cerca de 500 special diferentes, contenidos en gSpecials, situado en "./data/specials.inc". Las funciones son diferentes dependiendo de la plataforma (ruby, firered, emerald).


Variables

Las variables permiten almacenar un valor, para poder realizar operaciones sobre el mismo. Existen variables "persistentes" (Se encuentran en la estructura del .sav y persisten al apagar la consola) y variables "volátiles" (Son aquellas cuyo valor se pierde tras apagar la consola y su propósito suele ser realizar operaciones). La lista de variables puede encontrarse en "./include/constants/vars.h". Las variables "volátiles" son aquellas que se encuentran a partir de 0x8000.


Flags

Los flags son variables booleanas que permiten almacenar dos valores (0 y 1). La lista completa de flags puede encontrarse en "./include/constants/flags.h".


Canciones, Melodías y Efectos de Sonido

Las canciones son las pistas de audio de mayor duración, y suelen contar con un loop o bucle que las permite sonar de forma indefinida. Las melodías son pistas de audio algo más cortas utilizadas cuando ocurre un evento (Ganas un concurso, se curan los Pokémon, etc). Los efectos de sonido son las pistas de audio más cortas. La lista completa de todas las canciones, melodías y efectos de sonido se encuentra en "./include/constants/songs.h".

Mapas

Los identificadores de los mapas se pueden encontrar en el fichero "./include/constants/map_groups.h"'.


Items

La lista completa de objetos se puede encontrar en el fichero "./include/constants/items.h".


Objetos Decorativos

La lista completa de objetos decorativos se puede encontrar en el fichero "./include/constants/decorations.h".


Movimientos

Existe una lista de movimientos que pueden llevarse acabo con los comandos 'applymovement'. Pueden ser consultados en la siguiente tabla. Información obtenida de './asm/macros/movements.inc'

Movimiento Efecto
face_down Mira hacia abajo
face_up Mira hacia arriba
face_left Mira hacia la izquierda
face_right Mira hacia la derecha
walk_slow_down Camina hacia abajo (despacio)
walk_slow_up Camina hacia arriba (despacio)
walk_slow_left Camina hacia la izquierda (despacio)
walk_slow_right Camina hacia la derecha (despacio)
walk_down Camina hacia abajo
walk_up Camina hacia arriba
walk_left Camina hacia la izquierda
walk_right Camina hacia la derecha
jump_2_down Salta hacia abajo (2 bloques)
jump_2_up Salta hacia arriba (2 bloques)
jump_2_left Salta hacia la izquierda (2 bloques)
jump_2_right Salta hacia la derecha (2 bloques)
delay_1 Pausa el movimiento (1 unidad)
delay_2 Pausa el movimiento (2 unidades)
delay_4 Pausa el movimiento (4 unidades)
delay_8 Pausa el movimiento (8 unidades)
delay_16 Pausa el movimiento (16 unidades)
walk_fast_down Camina hacia abajo (deprisa)
walk_fast_up Camina hacia arriba (deprisa)
walk_fast_left Camina hacia la izquierda (deprisa)
walk_fast_right Camina hacia la derecha (deprisa)
walk_in_place_slow_down Camina en el sitio hacia abajo (despacio)
walk_in_place_slow_up Camina en el sitio hacia arriba (despacio)
walk_in_place_slow_left Camina en el sitio hacia la izquierda (despacio)
walk_in_place_slow_right Camina en el sitio hacia la derecha (despacio)
walk_in_place_down Camina en el sitio hacia abajo
walk_in_place_up Camina en el sitio hacia arriba
walk_in_place_left Camina en el sitio hacia la izquierda
walk_in_place_right Camina en el sitio hacia la derecha
walk_in_place_fast_down Camina en el sitio hacia abajo (rápido)
walk_in_place_fast_up Camina en el sitio hacia arriba (rápido)
walk_in_place_fast_left Camina en el sitio hacia la izquierda (rápido)
walk_in_place_fast_right Camina en el sitio hacia la derecha (rápido)
walk_in_place_fastest_down Camina en el sitio hacia abajo (muy rápido)
walk_in_place_fastest_up Camina en el sitio hacia arriba (muy rápido)
walk_in_place_fastest_left Camina en el sitio hacia la izquierda (muy rápido)
walk_in_place_fastest_right Camina en el sitio hacia la derecha (muy rápido)
ride_water_current_down
ride_water_current_up
ride_water_current_left
ride_water_current_right
walk_fastest_down Camina hacia abajo (muy rápido)
walk_fastest_up Camina hacia arriba (muy rápido)
walk_fastest_left Camina hacia la izquierda (muy rápido)
walk_fastest_right Camina hacia la derecha (muy rápido)
slide_down Se desliza hacia abajo
slide_up Se desliza hacia arriba
slide_left Se desliza hacia la izquierda
slide_right Se desliza hacia la derecha
player_run_down Corre hacia abajo (con las botas)
player_run_up Corre hacia arriba (con las botas)
player_run_left Corre hacia la izquierda (con las botas)
player_run_right Corre hacia la derecha (con las botas)
start_anim_in_direction
jump_special_down
jump_special_up
jump_special_left
jump_special_right
face_player Se coloca mirando al jugador
face_away_player Se coloca de espaldas al jugador
lock_facing_direction Bloquea la dirección en la que mira
unlock_facing_direction Desbloquea la dirección en la que mira
jump_down Salta hacia abajo (1 cuadro)
jump_up Salta hacia arriba (1 cuadro)
jump_left Salta hacia la izquierda (1 cuadro)
jump_right Salta hacia la derecha (1 cuadro)
jump_in_place_down Salta en el sitio, mirando hacia abajo
jump_in_place_up Salta en el sitio, mirando hacia arriba
jump_in_place_left Salta en el sitio, mirando hacia la izquierda
jump_in_place_right Salta en el sitio, mirando hacia la derecha
jump_in_place_down_up Salta en el sitio, de abajo a arriba
jump_in_place_up_down Salta en el sitio, de arriba a abajo
jump_in_place_left_right Salta en el sitio, de izquierda a derecha
jump_in_place_right_left Salta en el sitio, de derecha a izquierda
face_original_direction Mira en la dirección original (establecida dentro del mapa)
nurse_joy_bow
enable_jump_landing_ground_effect
disable_jump_landing_ground_effect
disable_anim Bloquea las animaciones del objeto
restore_anim Desbloquea las animaciones del objeto
set_invisible Hace desaparecer el objeto
set_visible Hace que el objeto aparezca, si es invisible
emote_exclamation_mark Muestra el cuadro de exclamación
emote_question_mark Muestra el cuadro de interrogación
emote_heart Muestra el cuadro con un corazón.
reveal_trainer
rock_smash_break Animación de romper una piedra con golpe roca
cut_tree Animación de eliminar un árbol con corte
set_fixed_priority Modifica la prioridad del objeto (que se muestra encima de que)
clear_fixed_priority Resetea la prioridad del objeto
init_affine_anim Inicia la tabla de animaciones afines asignada al objeto
clear_affine_anim Resetea la tabla de animaciones afines asignada al objeto
hide_reflection Oculta el reflejo del objeto (en el agua u otras superficies)
show_reflection Muestra el reflejo del objeto (en el agua u otras superficies)
walk_down_start_affine Camina hacia abajo, comienza la animación afín asignada al objeto
walk_down_affine Camina hacia abajo mientras reproduce la animación afín.
walk_diag_northwest Camina diagonalmente (arriba + izquierda)
walk_diag_northeast Camina diagonalmente (arriba + derecha)
walk_diag_southwest Camina diagonalmente (abajo + izquierda)
walk_diag_southeast Camina diagonalmente (abajo + derecha)
walk_slow_diag_northwest Camina diagonalmente (arriba + izquierda) (despacio)
walk_slow_diag_northeast Camina diagonalmente (arriba + derecha) (despacio)
walk_slow_diag_southwest Camina diagonalmente (abajo+ izquierda) (despacio)
walk_slow_diag_southeast Camina diagonalmente (abajo+ derecha) (despacio)
store_lock_anim
free_unlock_anim
walk_left_affine
walk_right_affine
levitate Eleva el objeto, haciéndolo "levitar"
stop_levitate Detiene el efecto del movimiento 'levitate'
destroy_extra_task
figure_8
fly_up Eleva el objeto, haciéndolo "volar"
fly_down Detiene el efecto del movimiento 'fly_up'
step_end Finaliza la cadena de movimientos. Es necesario ponerlo al final.

Tipos de Combate

Existen distintos tipos de combates Pokémon, la lista de identificadores de cada tipo de combate puede encontrarse en "./include/constans/battle_setup".


Entrenadores

La lista de los entrenadores puede encontrarse en "./include/constants/opponents.h"


Tablas Multichoice

Las tablas multichoice permiten al jugador elegir una opción entre varias. Existen varias decenas de tablas multichoice predeterminadas, y estas varían de un juego a otro. Son llamadas mediante los comandos 'multichoice', 'multichoicedefault' y 'multichoicegrid'. Para ver las diferentes tablas multichoice, consultar sMultichoiceLists, en "./data/script_menu.h".


Especies de Pokémon

La lista completa de todos los Pokémon se encuentra en "./include/constants/species.h"


Ataques de Pokémon

La lista completa de todos los Movimientos se encuentra en "./include/constants/moves.h."


Sistema de bayas

El sistema de bayas se puede controlar haciendo uso del comando 'setberrytree'. La lista de bayas (alrededor de 50) se puede encontrar dentro de la lista de items en "./include/constants/items.h". Sin embargo, es importante saber que a la hora de utilizar los identificadores de las bayas con 'setberrytree' es necesario usar 'ITEM_TO_BERRY' sobre el identificador. Ejemplo: ITEM_TO_BERRY(ITEM_CHERI_BERRY).

Los árboles de bayas pueden encontrarse en los estados mostrados en esta tabla.

Estado Descripción
BERRY_STAGE_NO_BERRY No hay nada plantado.
BERRY_STAGE_PLANTED Se ha plantado la baya, pero aún no ha brotado.
BERRY_STAGE_SPROUTED El árbol ha brotado.
BERRY_STAGE_TALLER El arbol está empezando a crecer y ya se puede identificar la planta.
BERRY_STAGE_FLOWERING El árbol está floreciendo
BERRY_STAGE_BERRIES El árbol tiene bayas y se puede recoger.
BERRY_STAGE_SPARKLING


Climas

La lista de climas puede encontrarse en "./include/constants/weather.h"


Heal Locations

La lista de Heal Locations disponibles se puede encontrar en "./include/constants/heal_locations.h".


Estadísticas de la partida

La lista de las estadísticas almacenadas sobre la partida se encuentra en "./include/constant/game_stats.h".


Clases de entrenador

La lista de clases de entrenador puede encontrarse en "./include/constants/trainer.h"


Tipos de Msgbox

Tipo de cuadro de texto Descripción
MSGBOX_NPC Msgbox usado con los npc.
MSGBOX_SIGN Msgbox usado en los postes/carteles.
MSGBOX_DEFAULT Msgbox por defecto.
MSGBOX_YESNO Msgbox con cuadro de respuesta Sí/No.
MSGBOX_AUTOCLOSE Msgbox que se cierra automaticamente.
MSGBOX_GETPOINTS Muestra los puntos de batalla del Frente Batalla en Emerald.