Event scripts

De TimelessWoW
Ir a la navegación Ir a la búsqueda

La tablas `***_scripts`

Este formato de tabla se usa para 6 tablas diferentes:

  • spell_scripts: Contiene scripts activados por hechizos con el efecto SPELL_EFFECT_SCRIPT_EFFECT (77) o SPELL_EFFECT_DUMMY(3).
  • event_scripts: Contiene scripts activados cuando se activa un evento, bien por una entidad o por un hechizo con el efecto SPELL_EFFECT_SEND_EVENT (61).
  • waypoint_scripts: Contiene scripts usados en la tabla waypoint_data.

Notas:

  • Una entrada en esta tabla puede tener más de una fila si el script realiza más de una acción.
  • A pesar de la existencia de estas tablas, hay que evitar su uso en la medida de lo posible ya que con smart_scripts se pueden realizar la mayoría de las acciones contempladas aquí.


Estructura

Field Type Attributes Key Null Default Extra Comment
ID mediumint(8) unsigned NO 0
effIndex tinyint(3) unsigned NO 0
Delay int(11) unsigned NO 0
Command mediumint(8) unsigned NO 0
detalong mediumint(8) unsigned NO 0
detalong2 int(10) unsigned NO 0
dataint int(11) signed NO 0
x int(10) float NO 0
y int(10) float NO 0
z int(10) float NO 0
z float signed NO 0
Guid int(11) signed PRI NO 0

1 Presente sólo en la tabla spell_scripts.
2 Presente sólo en la tabla waypoint_scripts.

Descripción de los campos

ID

Para spell_scripts, es la ID del hechizo. Ver Spell.dbc
Para event_scripts, es la ID del evento. No existe una lista de eventos completa. En cualquier caso, las IDs de los eventos vienen del servidor oficial y no deben ser cambiadas.
Para waypoint_scripts, es la ID de action.

effIndex

El índice de efecto del hechizo que se aplica en el script (ver auras de creature_addon para más información sobre los índices de efecto de hechizos).

delay

Retraso en segundos para que se active la acción actual. 0 = instantáneo.

command

La acción que se llevará a cabo cuando se cumpla el tiempo de delay. Comandos posibles:

Comando Nombre Descripción
0 TALK La criatura habla.
1 EMOTE La criatura Realiza una emoción.
2 FIELD_SET Cambia el valor de un índice del jugador.
3 MOVE_TO Mueve la criatura a su destino.
4 FLAG_SET Activa bits de un flag para el jugador.
5 FLAG_REMOVE Desactiva bits de un flag para el jugador.
6 TELEPORT_TO Teletransporta al jugador a una localización.
7 QUEST_EXPLORED Satisface el requerimento de exploración de una misión.
8 KILL_CREDIT Da crédito de objetivo de una misión al jugador..
9 RESPAWN_GAMEOBJECT Spawnea una entidad despawneada.
10 TEMP_SUMMON_CREATURE Invoca temporalmente una críatura.
11 OPEN_DOOR Abre una entidad tipo puerta (type == 0).
12 CLOSE_DOOR Cierra una entidad tipo puerta (type == 0).
13 ACTIVATE_OBJECT Activa una entidad.
14 REMOVE_AURA Elimina un aura por un hechizo.
15 CAST_SPELL Lanza un hechizo.
16 PLAY_SOUND Reproduce un sonido.
17 CREATE_ITEM Crea una cantidad específica de items para el jugador.
18 DESPAWN_SELF Fuerza una criatura a despawnear.
20 LOAD_PATH Carga una ruta, creando movimiento de waypoint.
21 CALLSCRIPT_TO_UNIT Llama al script de una de las tablas *_scripts.
22 KILL Cambia el estado de la criatura a muerto y opcionalmente elimina su cadáver.
30 ORIENTATION Cambia la orientación de la unidad (usado en waypoint_scripts).
31 EQUIP Establece una equipación a la criatura.
32 MODEL Establece un modelo a la criatrura.
33 CLOSE_GOSSIP Cierra la ventana de gossip. Sólo para gossip_scripts.
34 PLAYMOVIE Reproduce una película.

Otros campos

Dependiendo del comando que se use, el significado de estos campos cambia.

  • SCRIPT_COMMAND_TALK = 0
    • Fuente: Criatura.
    • Objetivo: Cualquier jugador (para susurro).
    • datalong: 12=decir, 14=gritar, 16=emoción, 41=emoción de boss, 15=susurro, 42=susurro de boss
    • dataint: Referencia al entry de db_script_string. Los valores deben empezar en 2000000000 y terminar en 2000010000.
  • SCRIPT_COMMAND_EMOTE = 1
    • Fuente u objetivo: Criatura.
    • datalong: ID de la emoción.
    • datalong2: Si este valor es > 0 el NPC realizará la emoción perpetuamente en lugar de solo una vez.
  • SCRIPT_COMMAND_FIELD_SET = 2
    • Fuente u objetivo: Criatura.
    • datalong: Índice del campo.
    • datalong2: Valor que poner al índice.

  • SCRIPT_COMMAND_CAST_SPELL = 15
    • Fuente: Unidad.
    • Objetivo: Unidad.
    • datalong: ID del hechizo.
    • datalong2:
      • 0 - Fuente->Objetivo
      • 1 - Fuente->Fuente (autolanzamiento, para dummy spells)
      • 2 - Objetivo->Objetivo
      • 3 - Objetivo->Fuente
      • 4 - Fuente->Entrada más cercana a dataint.
    • dataint: Entry de la criatura que tomará como objetivo si datalong2 es 4, o atributo disparado para el método CastSpell en otros casos.
    • x: Rango de búsqueda de la criatura de dataint si datalong2 es 4.

  • SCRIPT_COMMAND_PLAY_SOUND = 16
    • Fuente: Objeto del mundo
    • Objetivo: Ninguno (datalong2 & 1 == 0) o Jugador (datalong2 & 1 != 0).
    • datalong: ID del sonido.
    • datalong2:
      • 0 - Reproducir el sonido directo a todos.
      • 1 - Reproducir el sonido directo al objetivo (debe ser un jugador).
      • 2 - Reproducir el sonido dependiente de la distancia a todo el mundo.
      • 3 - Reproducir el sonido dependiente de la distancia al objetivo (debe ser un jugador).
  • SCRIPT_COMMAND_CREATE_ITEM = 17
    • Objetivo o Fuente: Jugador.
    • datalong: ID del item para crear. Ver entry de item_template.
    • datalong2: Cantidad de items que se crean.
  • SCRIPT_COMMAND_DESPAWN_SELF = 18
    • Objetivo: Criatura.
    • datalong: Retraso del despawn.
  • SCRIPT_COMMAND_LOAD_PATH = 20
    • Fuente: Unidad.
    • datalong: ID de la ruta. Ver id de waypoint_data.
    • datalong2: Si es valor > 0, significa que el movimiento de waypoint es repetible.
  • SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21
    • Fuente: Si está presente, se usa como centro de búsqueda.
    • datalong: ID de la criatura buscada, si existe la fuente, si no, el guid de la criatura.
    • datalong2: ID of the script from *_scripts table.
    • dataint:
      • 1 - Usa la tabla quest_end_scripts;
      • 2 - Usa la tabla quest_start_scripts;
      • 3 - Usa la tabla spell_scripts;
      • 4 - Usa la tabla gameobject_scripts;
      • 5 - Usa la tabla se event_scripts;
      • 6 - Usa la tabla waypoint_scripts.
  • SCRIPT_COMMAND_KILL = 22
    • Fuente: Criatura.
    • dataint: Si el valor == 1, elimina el cadáver.
  • SCRIPT_COMMAND_ORIENTATION = 30
    • Fuente: Unidad.
    • Objetivo: Unidad(datalong != 0).
    • datalong: Si el valor  != 0, entonces se gira hacia el objetivo; si no, se gira con la orientación o.
    • o: Establece la orientación.
  • SCRIPT_COMMAND_EQUIP = 31
    • Fuente: Criatura.
    • datalong: ID del equipamiento. Ver entry de creature_equip_template.
  • SCRIPT_COMMAND_MODEL = 32
    • Fuente: Criatura.
    • datalong: ID del modelo.
  • SCRIPT_COMMAND_CLOSE_GOSSIP = 33
    • Fuente: Jugador.
  • SCRIPT_COMMAND_PLAYMOVIE = 34
    • Fuente: Jugador.
    • datalong: ID de la película.

guid

Para scripts de waypoints, guid de la criatura.