De Whack a Hack Wiki!
Revisión del 20:53 31 may 2023 de Jack Johnson (discusión | contribuciones) (Página creada con «Un script es una secuencia de comandos programados que controla eventos en el juego. Estos scripts permiten crear diálogos, desencadenar batallas, activar eventos especial…»)
Un script es una secuencia de comandos programados que controla eventos en el juego. Estos scripts permiten crear diálogos, desencadenar batallas, activar eventos especiales y personalizar la experiencia del jugador dentro del mundo Pokémon modificado en el juego.
Lista de comandos para scripts
Comando | Byte equivalente | Descripción |
---|---|---|
nop | 00 | No hace nada. |
nop1 | 01 | No hace nada |
end | 02 | Acaba la ejecución del script. |
return | 03 | Vuelve al último call ejecutado. |
call | 04 | Conduce la ejecución a otro script. Permite volver con return. |
goto | 05 | Conduce la ejecución a otro script. |
if1 | 06 | Salta a otro script si una condición se cumple. |
if2 | 07 | Salta a otro script si una condición se cumple. Permite volver con return. |
gotostd | 08 | Salta a una función incluída. |
callstd | 09 | Salta a una función incluída. Permite volver con return. |
gotostdif | 0A | Salta a una función incluída si se cumple una condición. |
callstdif | 0B | Salta a una función incluída si se cumple una condición. Permite volver con return. |
jumpram | 0C | Salta a una localización por defecto de la RAM, ejecutando el script allí almacenado. |
killscript | 0D | Finaliza el script y vacía la RAM de scripts. |
setbyte | 0E | Almacena un byte en una dirección predefinida. |
loadpointer | 0F | Carga un puntero en la RAM de scripts para que otros comandos lo puedan usar. |
setbyte2 | 10 | Almacena un byte en un banco especificado. |
writebytetooffset | 11 | Cambia el byte en la dirección especificada a un valor definido por el usuario. |
loadbytefrompointer | 12 | Carga el valor del byte encontrado en el puntero especificado. |
setfarbyte | 13 | |
copyscriptbanks | 14 | Copia el valor de un banco en otro banco |
copybyte | 15 | Copia un byte de una dirección de memoria (pointer) en otra dirección (el destino debe ser EWRAM) |
setvar | 16 | Establece el valor de una variable. |
addvar | 17 | Suma un número a una variable. |
subvar | 18 | Resta un número a una variable. |
copyvar | 19 | Copia el valor de una variable a otra. |
copyvarifnotzero | 1A | Copia el valor de una variable a otra si esta tiene un valor mayor que cero. |
comparebanks | 1B | Compara el valor de dos bancos o buffers |
comparebanktobyte | 1C | Compara el valor de un banco con el byte indicado. |
comparefarbanktofarbyte | 1D | Compara el valor de un banco con el valor del byte presente en el pointer indicado. |
comparefarbytetobank | 1E | Compara el valor del byte de la dirección o pointer indicada con un banco o buffer. |
comparefarbytetobyte | 1F | Compara el valor del byte de la dirección o pointer indicada con el byte dado. |
comparefarbytes | 20 | Compara el valor del byte de la dirección o pointer indicada con el valor del byte contenido en otra dirección. |
compare | 21 | Compara una variable con un valor determinado por el usuario. |
comparevars | 22 | Compara dos variables. |
callasm (callnative) | 23 | Ejecuta una rutina ASM personalizada. |
cmd24 (gotonative) | 24 | Similar al callasm, pero la ejecución no volverá al script tras terminar el ASM (a no ser que así este indicado en el propio código). |
special | 25 | Ejecuta una acción especial. |
special2 | 26 | Ejecuta una acción especial y devuelve un valor. |
waitstate | 27 | Pausa el curso del script mientras hay un comando en ejecución. |
pause | 28 | Pausa el curso del script durante una cantidad de segundos establecida por el usuario. |
setflag | 29 | Activa una flag. |
clearflag | 2A | Desactiva una flag. |
checkflag | 2B | Devuelve el valor de una flag. |
cmd2c (initclock) | 2C | Inicializa el reloj del juego. Parámetros: (hora, minutos) |
checkdailyflags | 2D | Devuelve el valor de una flag diaria (solo Rubí, Zafiro y Esmeralda). |
resetvars | 2E | Pone a cero las variables del sistema (0x8000, 0x8001 y 0x8002). |
sound | 2F | Reproduce un sonido. |
checksound | 30 | Comprueba si se está reproduciento, un sonido, una canción o un fanfare. |
fanfare | 31 | Reproduce un fanfare. |
waitfanfare | 32 | Pausa el script hasta que finalice el fanfare. |
playsong | 33 | Cambia la canción actual. |
playsong2 | 34 | Cambia la canción actual. |
fadedefault | 35 | Cambia a la canción del mapa gradualmente. |
fadesong | 36 | Cambia la canción actual gradualmente. |
fadeout | 37 | Acaba la canción actual gradualmente. |
fadein | 38 | Reanuda la canción actual gradualmente. |
warp | 39 | Cambia al jugador a otro mapa. |
warpmuted | 3A | Cambia al jugador a otro mapa sin efecto de sonido. |
warpwalk | 3B | Cambia al jugador a otro mapa con efecto de caminar. |
warphole | 3C | Cambia al jugador a otro mapa cayendo por un agujero. |
warpteleport | 3D | Teletransporta al jugador a otro mapa. |
warp3 | 3E | Cambia al jugador a otro mapa. |
setwarpplace | 3F | Cambia el destino del Warp 127. |
warp4 | 40 | Cambia al jugador a otro mapa. |
warp5 | 41 | Cambia al jugador a otro mapa. |
getplayerpos | 42 | Almacena la posición actual (respecto la esquina superior izquierda) del jugador en dos variables distintas. |
countpokemon | 43 | Almacena en una variable el número de Pokémon que hay en el equipo. |
additem | 44 | Añade un objeto a la mochila sin ningún tipo de aviso. |
removeitem | 45 | Elimina un objeto de la mochila sin ningún tipo de aviso. |
checkitemroom | 46 | Comprueba que el jugador va a tener espacio para un nuevo objeto. |
checkitem | 47 | Comprueba que el jugador tiene un objeto en concreto. |
checkitemtype | 48 | Comprueba el tipo del último objeto que el jugador usó. |
addpcitem | 49 | Añade un objeto al PC. |
checkpcitem | 4A | Comprueba que hay un objeto en concreto en el PC. |
adddecoration | 4B | Añade el objeto decorativo indicado al pc del jugador (base secreta). |
removedecoration | 4C | Elimina el objeto decorativo indicado del pc del jugador. |
testdecoration | 4D | Comprueba si hay suficiente espacio para almacenar la decoración indicada. |
checkdecoration | 4E | Comprueba si el jugador posee actualmente el objeto decorativo. |
applymovement | 4F | Ejecuta un movimiento a un personaje del mapa. |
applymovementpos | 50 | Ejecuta un movimiento a un personaje del mapa y luego le asigna unas coordenadas. |
waitmovement | 51 | Pausa el script hasta que acabe el movimiento. |
waitmovementpos | 52 | Pausa el script hasta que acabe el movimiento y luego le asigna unas coordenadas.. |
hidesprite | 53 | Oculta un personaje del mapa. |
hidespritepos | 54 | Oculta un personaje del mapa y luego le asigna unas coordenadas. |
showsprite | 55 | Muestra un personaje del mapa. |
showspritepos | 56 | Muestra un personaje del mapa y luego le asigna unas coordenadas. |
movesprite | 57 | Mueve un personaje del mapa a una posición. |
spritevisible | 58 | Muestra el overworld escogido en el mapa y banco indicados. |
spriteinvisible | 59 | Oculta el overworld escodigo en el mapa y banco indicados. |
faceplayer | 5A | Hace que el personaje con el que se habla mire hacia el jugador. |
spriteface | 5B | Hace que un personaje del mapa mire hacia una dirección en concreto. |
trainerbattle | 5C | Inicia una batalla contra un entrenador. |
repeattrainerbattle | 5D | Repite la última batalla realizada contra un entrenador |
endtrainerbattle | 5E | Vuelve desde la pantalla de combate sin mostrar un mensaje al comienzo. |
endtrainerbattle2 | 5F | Vuelve desde la pantalla de combate sin mostrar un mensaje al finalizar. |
checktrainerflag | 60 | Comprueba el valor del trainerflag del entrenador indicado. |
cleartrainerflag | 61 | Resetea el valor del trainerflag del entrenador indicado. |
settrainerflag | 62 | Activa el trainerflag del entrenador indicado. |
movesprite2 | 63 | Mueve el un overworld a la posición indicada de forma permanente. |
moveoffscreen | 64 | Mueve un overworld fuera de la pantalla. |
spritebehave | 65 | Cambia el comportamiento (tipo de movimiento) de un overworld. |
waitmsg | 66 | Detiene la ejecución hasta que se termina de mostrar el texto. |
preparemsg | 67 | Coloca un puntero hacia el texto que ha de mostrarse por pantalla. |
closeonkeypress | 68 | Mantiene abierto un msgbox para cerrarlo al pulsar una tecla. |
lockall | 69 | Bloquea el movimiento de todos los overworld. |
lock | 6A | Bloquea el movimiento del avatar. |
releaseall | 6B | Libera el movimiento de todos los overworld. |
release | 6C | Libera el movimiento del avatar. |
waitkeypress | 6D | Pausa la ejecución del script hasta que se pulsa una tecla. |
yesnobox | 6E | Muestra una caja de elección "Sí/No" en las coordinadas designadas. |
multichoice | 6F | Muestra la caja de elección múltiple indicada en las coordinadas designadas. |
mutlichoice2 | 70 | Muestra la caja de elección múltiple indicada en las coordinadas designadas. Adicionalmente, puede elegirse la opción por defecto. |
multichoice3 | 71 | Muestra la caja de elección múltiple indicada en las coordinadas designadas. Pueden elegirse el número de opciones por fila. |
showbox | 72 | Muestra una ventana con las dimensiones y posición dadas. |
hidebox | 73 | Oculta una ventana. |
clearbox | 74 | Elimina una ventana. |
showpokepic | 75 | Muestra el sprite de un pokemon en una ventana. |
hidepokepic | 76 | Oculta un pokepic anteriormente creado. |
showcontestwinner | 77 | Muestra el sprite del ganador del concurso |
braille | 78 | Muestra una caja de texto braille. |
givepokemon | 79 | Da un Pokémon al jugador. |
giveegg | 7A | Da un huevo de un Pokémon al jugador. |
setpkmnpp | 7B | Establece el número de pp del ataque y el pokemon seleccionado en el equipo del jugador. |
checkattack | 7C | Comprueba si al menos un pokemon del equipo tiene un ataque en concreto. |
bufferpokemon | 7D | Almacena el nombre de una especie pokemon en un buffer. |
bufferfirstpokemon | 7E | Almacena el nombre del primer pokemon del equipo en un buffer. |
bufferpartypokemon | 7F | Almacena el nombre de un pokemon del equipo en un buffer. |
bufferitem | 80 | Almacena el nombre de un item en un buffer. |
bufferdecoration | 81 | Almacena el nombre de un objeto decorativo en un buffer. |
bufferattack | 82 | Almacena el nombre de un ataque en un buffer. |
buffernumber | 83 | Almacena el valor de una variable en un buffer. |
bufferstd | 84 | Alacena un texto "estándar" en un buffer. |
bufferstring | 85 | Almacena un texto en un buffer. |
pokemart | 86 | Abre la ventana de la tienda pokemon que se encuentra en el pointer indicado. |
pokemart2 (decoration) | 87 | Abre la ventana de la tienda de decoración que se encuentra en el pointer indicado. (tipo 1) |
pokemart3 (decoration) | 88 | Abre la ventana de la tienda de decoración que se encuentra en el pointer indicado. (tipo 2) |
pokecasino | 89 | Abre el sistema del casino. |
cmd8a (setberrytree) | 8A | Establece el estado de un árbol de bayas. Parámetros: (id_arbol, tipo_baya, estado_crecimiento) |
choosecontestpkmn | 8B | Abre un menú para escoger el pokémon que participará en un concurso. |
startcontest | 8C | Da comienzo a un concurso pokémon. |
showcontestresults | 8D | Muestra los resultados de un concurso. |
contestlinktransfer | 8E | Establece una conexión para intercambiar datos de los record de concursos (emerald). |
random | 8F | Genera un número aleatorio (0-65535) y almacena el resultado en la variable LASTRESULT (0x800D). |
givemoney | 90 | Da al jugador la cantidad indicada de dinero. |
paymoney | 91 | Elimina la cantidad de dinero indicada del jugador. |
checkmoney | 92 | Comprueba si el jugador tiene la cantidad indicada de dinero. |
showmoney | 93 | Muestra un cuadro con el dinero del jugador en las coordenadas indicadas. |
hidemoney | 94 | Oculta el cuadro que muestra el dinero. |
updatemoney | 95 | Actualiza la cantidad de dinero mostrada en el contador. |
cmd96 (getpricereduction) | 96 | Obtiene una reducción de precio o descuento. |
fadescreen | 97 | Realiza efectos de desvanecimiento de la pantalla (transiciones). |
fadescreendelay | 98 | Realiza efectos de desvanecimiento de la pantalla con un retraso (delay) dado. |
darken | 99 | Llama a una animación que oscurece el área (debe llamarse desde un script de nivel) |
lighten | 9A | Llama a una animación que ilumina el área. |
preparemsg2 | 9B | |
doanimation | 9C | |
setanimation | 9D | |
checkanimation | 9E | |
sethealingplace | 9F | |
checkgender | A0 | Chequea el género/sexo del jugador |
cry | A1 | |
setmaptile | A2 | Coloca un tile en un mapa |
resetweather | A3 | |
setweather | A4 | |
doweather | A5 | |
cmda6 | A6 | |
setmapfooter | A7 | |
spritelevelup | A8 | |
restorespritelevelup | A9 | |
createsprite | AA | |
spriteface2 | AB | |
setdooropened | AC | |
setdoorclosed | AD | |
doorchange | AE | |
setdooropened2 | AF | |
setdoorclosed2 | B0 | |
cmdb1 | B1 | |
cmdb2 | B2 | |
checkcoins | B3 | |
givecoins | B4 | |
removecoins | B5 | |
setwildbattle | B6 | |
dowildbattle | B7 | |
setvirtualaddress | B8 | |
virtualgoto | B9 | |
virtualcall | BA | |
virtualgotoif | BB | |
virtualcallif | BC | |
virtualmsgbox | BD | |
virtualloadpointer | BE | |
virtualbuffer | BF | |
showcoins | C0 | |
hidecoins | C1 | |
updatecoins | C2 | |
cmdc3 | C3 | |
warp6 | C4 | |
waitcry | C5 | |
bufferboxname | C6 | |
textcolor | C7 | |
cmdc8 | C8 | |
cmdc9 | C9 | |
signmsg | CA | |
normalmsg | CB | |
comparehiddenvar | CC | |
setobedience | CD | |
checkobedience | CE | |
executeram | CF | |
setworldmapflag | D0 | |
warpteleport2 | D1 | |
setcatchlocation | D2 | |
braille2 | D3 | |
bufferitems | D4 | |
cmdd5 | D5 | |
cmdd6 | D6 | |
warp7 | D7 | |
cmdd8 | D8 | |
cmdd9 | D9 | |
hidebox2 | DA | |
preparemsg3 | DB | |
fadescreen3 | DC | |
buffertrainerclass | DD | |
buffertrainername | DE | |
pokenavcall | DF | |
warp8 | E0 | |
buffercontestype | E1 | |
bufferitems2 | E2 |