Diferencia entre revisiones de «Event scripts»

De TimelessWoW
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 134: Línea 134:
<sup>1</sup> Presente sólo en la tabla spell_scripts.<br>
<sup>1</sup> Presente sólo en la tabla spell_scripts.<br>
<sup>2</sup> Presente sólo en la tabla waypoint_scripts.<br>
<sup>2</sup> Presente sólo en la tabla waypoint_scripts.<br>
=== Descripción de los campos ===
=== ID ===
Para '''spell_scripts''', es la ID del hechizo. Ver Spell.dbc<br>
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.<br>
Para '''waypoint_scripts''', es la ID de action.<br>
=== 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:
{| class="wikitable"
! 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.<br>
*'''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.<br><br>
*'''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.<br><br>
*'''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.

Revisión del 04:39 17 may 2025

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.