Whack a Hack!

Todo sobre scripts

Todo sobre scripts

Lo que debes saber...

    Esta guía está separada en tres partes para que sea más fácil manejarla:
  1. Diccionario, con la explicación de las palabras básicas
  2. Empezar, que explica donde escribir el script y que escribir al principio del script.
  3. Comandos, que dice como escribir los comandos que más dudas originan:

    Applymove, givepokemon, wildbattle, recibir un huevo y manejar flags

Los comandos requieren saber los códigos o índices de los pokemon, objetos y movimientos que están contenidos en la sección de códigos.

Diccionario:

Comandos:
Son simples acciones que se ejecutan en el juego cuando haces funcionar el  script donde estos comandos están escritos. Para conocerlos lee el archivo Commands.html que hay en tu carpeta donde está el EliteMap o consulta la traducción de este archivo que hizo Baro para Wah. Los comandos se escriben en hexadecimal en la rom.
Script:
Está formado por comandos. Lo puedes ejecutar de muchas maneras distintas: como un evento, como una comportamiento que le das a un bloque, como un script de mapa, etc.
Evento:
En los mapeados es lo que ejecuta un script.
Puede ser un muñeco(people, le pinchas y se ejecuta el script), un poste (signpost, le pinchas y se ejecuta el script), una gatillo (script, solo con pasar encima se ejecuta el script) o una salida (warp, pasas por encima y te lleva a otro lugar)puedes ejecutar el mismo script desde muchos eventos.Diccionario Hex
Byte:
Dos números hexadecimales (0123456789ABCDEF) por ejemplo 6C, la rom está escrita con bytes, en total tiene FF FF FF bytes desde el 00 00 00 hasta el FF FF FF.
Dirección(Offset):
En el rom cada byte va numerado, así es la dirección es la posición del primer byte de un script, texto, sprite, casillero, paleta, etc.
Flag:
Son dos bytes por ejemplo 20 4D, que actúan como un interruptor guardando un número. Puedes hacer que al hablar con cierta persona el interruptor se encienda (setflag 0x204C) y que otra persona cuando ese interruptor esté encendido (checkflag 0x204C 0x1) te dé un pokemon (givepokemon).

Empezar

Y tras haber leído esto ya tendréis una idea de cómo empezar, lo más “fácil” de usar es scripted, pero no por ello es un programa “para tontos”.

Para hacer un script tienes, básicamente, que escribir una serie de comandos ordenados en una parte del rom, que puedes ser en una parte vacía o sobre un script ya existente (algo más fácil):

    Sobre otro script:
  1. Abre elitemap y mientras pulsas control, pincha en el evento que quieras modificar (un evento puede incluir varios scripts encadenados).
  2. Se te abrirá scripted mostrando el script. Si no se te muestra, puede ser por problemas de extensión; para resolverlo tienes que abrir el explorador de windows (tecla windows+E), ir herramientas, opciones de carpeta y ir a la pestaña ver y quitar esta opción que esta casi al final: ...
  3. Antes (sin extensión):
    Después (con extensión):
  4. Una vez que puedas ver el script te falta lo importante, poner tus propios comandos. Los más básicos están explicados más adelante.
    Poner el script sobre un espacio vacío
  1. Abre el rom con thingy y busca un espacio vacío (lleno de 'FF' o de '00'):
  2. Entonces pincha en algún punto, pulsa espacio, pulsa la tecla de la derecha para moverte un byte hacia adelante, y vuelve a pulsar espacio.
  3. En la ventana q te sale haz como si pusieses una arroba (alt+cntrol+2), te saldrá un cuadrito blanco en el que tienes q escribir '02'. Pulsa intro y el 02 se verá en thingy:
  4. ahora ponte el cursor en la primera línea de thingy, el puntero que te sale donde pone dirección escríbelo en scripted para abrirlo:
  5. y ahora borra todos los raws y pon los comandos que quieras tu.
Iniciar el script
#org 0x(dirección) end SIEMPRE se comienza dirigiendo donde compilar: Y se acaba con un comando de cierre (return o end)

El comando de cierre es el que indica que el script ha acabado, si en vez de poner ‘end’, pones ‘return’; el juego volverá al script que había llamado al que contenía el return, siempre que lo hubiese llamado con ‘call’ y no con ‘go to’

Comandos

Applymovement

Sirve para animar los minisprites en el juego.

Es simple: tienes que cargar una serie de movimientos para un minisprite, esta serie la tienes que guardar aparte con thingy.

Ejemplo:
'----------------------- #org 0x6b1010 checkflag 0x____ if 0x1 call 0x004253 msgbox 0x816D51A callstd 0x6 applymovement 0x2 0x81A0841 setflag 0x____ end Dirección del script Comprobar flag Si ya está activada  dirigirse a otro script "¡El barco se va ahora!"  mensaje de texto Comando Applymovement Activar flag Fin

Se escribe así:

applymovement 0xMinisprite 0xDirección

Esto significaría animar al minisprite 2 con el movimiento que empieza en 081A0841

¿El minisprite 2? Para saber el nº de mini en AM, mira la imagen de la derecha

En la dirección que hayas puesto tienes que poner los bytes del movimiento, por orden y en hexadecimal.

Para hacerlo con THINGY sigue estos pasos:

En la ventana de escribir texto haz como si pusieses una arroba (alt+cntrol+2), te saldrá un cuadrito blanco en el que tienes q escribir por orden los bytes del movimiento. Pulsa intro y el byte se verá ya escrito en la rom.

    Notas:
  1. Si pones FF como nº de mini, el movimiento lo realizará el protagonista.
  2. En la serie de movimientos que insertas debes indicar el final con el byte FE
  3. Para saber los bytes de cada movimiento descárgate la tabla de thingy
Givepokemon

Sirve para que se te añada el pokemon que quieras a tu equipo

Tienes que especificar el índice (número del pokemon), nivel y si lleva algún objeto.

Ejemplo:
givepokemon 0x0177 0x1E 0x118 Recibir un Gorebyss (01 77) de nivel 30 que lleva un Meteorito.

Se escribe así: givepokemon 0xPk 0xNivel 0xObjeto

Pk- Los dos bytes del pokemon que quieras

Nivel- El nivel en hexadecimal del pokemon que te dan

Objeto- Los dos bytes del objeto que te lleva el pokemon, si no lleva ninguno sólo pon 0

Wildbattle

Sirve para que el pokemon que quieras comience un combate.

En realidad más que un comando es la combinación de varios comandos, pero para escribirlo puedes usar esta fórmula simplificada.

Ejemplo:
wildbattle 0x0027 0x05 0x0 Luchar contra un Jigglipuff (00 27) de nivel 5

Se escribe así:

wildbattle 0xPk 0xNivel 0xEscenario

Pk- Los dos bytes del pokemon que quieras combatir

Nivel- El nivel en hexadecimal del pokemon con el que vas a luchar

Escenario- El byte del escenario en el que combates:0 Normal 1 Fuego (Groundon) 2 Hierba 3 Remolino

Recibir un huevo

Sirve para que un huevo del pokemon que quieras se añada a tu equipo.

Este comando no está codificado por scripted, pero lo puede escribir fácilmente.

Es muy simple, solo tienes que insertar esta serie de comandos en tu script (con scripted o con un editor hex):

Ejemplo:
#binary 7A E7 00 Recibir un huevo de Phanpy (00 E7)

Se escribe así:

#binary 7A Pk2 Pk1

Pk1- El primer byte del embrión

Pk2- El segundo byte del embrión

Para saber Pk1 y Pk2 consulta la sección de códigos.

Encadenar scripts

Esto es simplemente un comando que ejecuta otro script:

Ejemplo:
Goto 0x6B20D2 Cuando llegue aquí se ejecutará el script que comienza en 6B20D2

Se puede escribir:

goto 0xDirecciónDirección- El script que comenzará. Desde ese script no puedes volver a este

call 0xDirecciónDirección- El script que comenzará. Si ese script acaba en un ‘return’, entonces al llegar allí continuarás el script original donde lo habías dejado.

Usar flags

Se necesita insertar un comando que compruebe si la flag esta o no activada, para que no se repitan los mismos scripts una y otra vez.

Se escribe:

setflag 0xFlag

Para activar la flag

clearflag 0xFlag

Para desactivar la flag

checkflag 0xFlag

if 0xValor jump 0xDirección

Comprobar la flag para elegir camino

Flag- La flag a la que te refierasValor- Puede ser 0 (falso) para desactivado ó 1 (verdadero) para activadoDirección- Camino al que te diriges si el valor de esa flag se cumple.

Ejemplo:
'----------------------- #org 0x15FC29 faceplayer checkflag 0x800 if 0x1 call 0x004253 givepokemon 0x9B 0x5 0x0 setflag 0x800 El mini que ejecuta el script te mira a la cara. Comprobar la flag 800 Si la flag 800 ya está activada, ir al  script 004253 para que no se repita. Si no lo está, continúa. Recibir un pokemon Activarse la flag 800

Este script hace que te den un pokemon solo una vez. Primero comprueba que la flag esté desactivada. Si lo está te da el Pokémon y activa la flag para que cuando se vuelva a ejecutar compruebe que está activada y te mande a otra dirección.

Redactado por Serg!o

send mail english version

Bienvenido a Whack a Hack

Novedades

  • [19-02-08] ¡Advamce Map 1.90!
  • [12-02-08] Nuevos Tiles por Man
  • [04-02-08] Ruby Destiny en WAH
  • [03-02-08] Omega b1 Versión Ingles
  • [01-01-08] ¡Shiny Gold beta 5!
  • [24-12-07] ¡Pokémon Omega beta 1!
  • [12-12-07] ¡Pokémon Crystal Shards beta 1!