De Whack a Hack Wiki!
m (→Funciones Special) |
m (→Multichoice) |
||
Línea 1931: | Línea 1931: | ||
=== '''Multichoice''' === | === '''Multichoice''' === | ||
− | Los multichoice permiten al jugador elegir una opción entre varias. Existen varias decenas de multichoice predeterminados, y estos varían de un juego a otro. Para ver los diferentes multichoice, consultar sMultichoiceLists, en './data/script_menu.h'. | + | Los multichoice permiten al jugador elegir una opción entre varias. Existen varias decenas de multichoice predeterminados, y estos varían de un juego a otro. Son llamados mediante el comando 'multichoice'. Para ver los diferentes multichoice, consultar sMultichoiceLists, en './data/script_menu.h'. |
Revisión del 00:03 16 dic 2019
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, pero hay varias excepciones.
Sumario
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 |
0x1B | compare_local_to_local | [buffer_id1] [buffer_id2] | Compara el valor de dos buffers de scripts. | R-FR-E |
0x1C | compare_local_to_value | [buffer_id] [byte] | Compara el valor de un buffer con el valor indicado. | 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. | 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. | 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. | 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. | R-FR-E |
0x21 | compare_var_to_value | [var_id] [byte] | Compara el valor de una variable con el valor indicado. | R-FR-E |
0x22 | compare_var_to_var | [var_id1] [var_id2] | Compara el valor de una variable con el de otra variable. | 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 (LASTRESULT). | R-FR-E |
0x44 | giveitem | [item_id] [cantidad] | Intenta añadir la cantidad del objeto indicado a la mochila. Si lo consigue LASTRESULT será 1, en caso contrario LASTRESULT 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 (LASTRESULT = 1), si no lo hay (LASTRESULT = 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 (LASTRESULT = 1), si no (LASTRESULT = 0) | R-FR-E |
0x48 | checkitemtype | [item_id] | Almacena el tipo de objeto (curativo, ball, etc) del objeto indicado en LASTRESULT. 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 (LASTRESULT = 1), si no (LASTRESULT = 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, no hará nada) | 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) | 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] [permitir_b] | Muestra un cuadro de selección de opción múltiple en las coordenadas X e Y marcadas. [permitir_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 LASTRESULT 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 LASTRESULT. | 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 (LASTRESULT = 1), en caso contrario (LASTRESULT = 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 | [puntero_texto] | 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 (LASTRESULT = 0), si es chica (LASTRESULT = 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. | R-FR-E |
0xAB | turnvobject | [virtual_id] [dirección] | Gira un objeto virtual. (DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST). | 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 | [specie_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 (LASTRESULT = 0), si no lo es (LASTRESULT = 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. | 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).
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 |
jump_2_up | Salta hacia arriba |
jump_2_left | Salta hacia la izquierda |
jump_2_right | Salta hacia la derecha |
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. |
Multichoice
Los multichoice permiten al jugador elegir una opción entre varias. Existen varias decenas de multichoice predeterminados, y estos varían de un juego a otro. Son llamados mediante el comando 'multichoice'. Para ver los diferentes multichoice, consultar sMultichoiceLists, en './data/script_menu.h'.