Diferencia entre revisiones de «Event scripts»
Sin resumen de edición |
Sin resumen de edición |
||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 271: | Línea 271: | ||
**'''datalong:''' 12=decir, 14=gritar, 16=emoción, 41=emoción de boss, 15=susurro, 42=susurro de boss | **'''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. | **dataint:''' Referencia al entry de db_script_string. Los valores deben empezar en 2000000000 y terminar en 2000010000. | ||
*'''SCRIPT_COMMAND_EMOTE = 1''' | *'''SCRIPT_COMMAND_EMOTE = 1''' | ||
Línea 276: | Línea 277: | ||
**'''datalong:''' ID de la emoción. | **'''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. | **'''datalong2:''' Si este valor es > 0 el NPC realizará la emoción perpetuamente en lugar de solo una vez. | ||
*'''SCRIPT_COMMAND_FIELD_SET = 2''' | *'''SCRIPT_COMMAND_FIELD_SET = 2''' | ||
Línea 281: | Línea 283: | ||
**'''datalong:''' Índice del campo. | **'''datalong:''' Índice del campo. | ||
**'''datalong2:''' Valor que poner al índice.<br><br> | **'''datalong2:''' Valor que poner al índice.<br><br> | ||
*'''SCRIPT_COMMAND_MOVE_TO = 3''' | |||
Fuente: Criatura. | |||
**'''datalong2:''' Duración (en tiempo) del movimiento. | |||
**'''x:''' Posición X a la que moverse. | |||
**'''y:''' Posición Y a la que moverse. | |||
**'''z:''' Posición Z a la que mmoverse. | |||
*'''SCRIPT_COMMAND_FLAG_SET = 4''' | |||
**Fuente u objetivo: Criatura. | |||
**'''datalong:''' Índice del campo a ser establecido. | |||
**'''datalong2:''' Bit(s) que se establecen. | |||
*'''SCRIPT_COMMAND_FLAG_REMOVE = 5''' | |||
**Fuente u objetivo: Criatura. | |||
**'''datalong:''' Índice del campo a ser cambiado. | |||
**'''datalong2:''' Bit(s) que se borran. | |||
*'''SCRIPT_COMMAND_TELEPORT_TO = 6''' | |||
**Fuente u objetivo: Jugador ('''datalong2''' == 0) o Criatura ('''datalong2''' == 1). | |||
**'''datalong:''' ID del mapa objetivo. Ver Maps.dbc. | |||
**'''x:''' Coordenada X del teletransporte. | |||
**'''y:''' Coordenada Y del teletransporte. | |||
**'''z:''' Coordenada Z del teletransporte. | |||
**'''o:''' Orientación del teletransporte. | |||
*'''SCRIPT_COMMAND_QUEST_EXPLORED = 7''' | |||
**Fuente u objetivo: Jugador. | |||
**Objetivo o fuente: Objeto del mundo. | |||
**'''datalong:''' ID de la misión cuyo estatus externo será satisfecho. Ver id de quest_template. | |||
**'''datalong2:''' Distancia máxima a la que el jugador debe estar del NPC/entidad para que el script tenga efeto (valor mínimo 5). | |||
*'''SCRIPT_COMMAND_KILL_CREDIT = 8''' | |||
**Objetivo o fuente: Jugador. | |||
**'''datalong:''' ID de la criatura objetivo del crédito de misión. Ver entry de creature_template y RequiredNpcOrGo de quest_template. | |||
**'''datalong2:''' Si el valor es > 0 da crédito a todos los miembros del grupo, si no, sólo al jugador. | |||
*'''SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9''' | |||
**Fuente: Objeto del mundo (invocador). | |||
**'''datalong:''' Guid de la entidad que respawneará. Ver guid de gameobject. | |||
**'''datalong2:''' Tiempo de despawn en segundos. Si es vale es < 5 seconds: usa 5 en su lugar. | |||
*'''SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10''' | |||
**Fuente: Objeto del mundo (invocador). | |||
**'''datalong:''' ID de la criatura invocada. Ver entry de creature_template. | |||
**'''datalong2:''' Tiempo de despawn en milisegundos. | |||
**'''x:''' Coordenada X del invocado. | |||
**'''y:''' Coordenada Y del invocado. | |||
**'''z:''' Coordenada Z del invocado. | |||
**'''o:''' Orientacion del invocado. | |||
*'''SCRIPT_COMMAND_OPEN_DOOR = 11''' | |||
Fuente: Objeto del mundo. | |||
'''datalong:''' Guid de la puerta activada. Ver guid de gameobject. | |||
'''datalong2:''' Tiempo hasta que la puerta se vuelve a cerrar. Si el valor es < 15 segundos, usa 15 en su lugar. | |||
*'''SCRIPT_COMMAND_CLOSE_DOOR = 12''' | |||
Fuente: Objeto del mundo. | |||
'''datalong:''' Guid de la puerta activada. Ver guid de gameobject. | |||
'''datalong2:''' Tiempo hasta que la puerta se vuelve a abrir. Si el valor es < 15 segundos, usa 15 en su lugar. | |||
*'''SCRIPT_COMMAND_ACTIVATE_OBJECT = 13''' | |||
Fuente: Unidad. | |||
Objetivo: Entidad. | |||
*'''SCRIPT_COMMAND_REMOVE_AURA = 14''' | |||
Fuente(datalong2 != 0) u objetivo (datalong2 == 0): Unidad. | |||
'''datalong:''' ID del hechizo. | |||
'''datalong2:''' Si el valor > 0, entonces la elimina de la fuente, si no, la elimina del objetivo. | |||
*'''SCRIPT_COMMAND_CAST_SPELL = 15''' | *'''SCRIPT_COMMAND_CAST_SPELL = 15''' | ||
Línea 294: | Línea 378: | ||
**dataint: Entry de la criatura que tomará como objetivo si datalong2 es 4, o atributo disparado para el método CastSpell en otros casos. | **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> | **'''x:''' Rango de búsqueda de la criatura de dataint si datalong2 es 4.<br><br> | ||
*'''SCRIPT_COMMAND_PLAY_SOUND = 16''' | *'''SCRIPT_COMMAND_PLAY_SOUND = 16''' | ||
Línea 304: | Línea 389: | ||
***2 - Reproducir el sonido dependiente de la distancia a todo el mundo. | ***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). | ***3 - Reproducir el sonido dependiente de la distancia al objetivo (debe ser un jugador). | ||
*'''SCRIPT_COMMAND_CREATE_ITEM = 17''' | *'''SCRIPT_COMMAND_CREATE_ITEM = 17''' | ||
Línea 313: | Línea 399: | ||
**Objetivo: Criatura. | **Objetivo: Criatura. | ||
**'''datalong:''' Retraso del despawn. | **'''datalong:''' Retraso del despawn. | ||
*'''SCRIPT_COMMAND_LOAD_PATH = 20''' | *'''SCRIPT_COMMAND_LOAD_PATH = 20''' | ||
Línea 330: | Línea 417: | ||
***5 - Usa la tabla se event_scripts; | ***5 - Usa la tabla se event_scripts; | ||
***6 - Usa la tabla waypoint_scripts. | ***6 - Usa la tabla waypoint_scripts. | ||
*'''SCRIPT_COMMAND_KILL = 22''' | *'''SCRIPT_COMMAND_KILL = 22''' | ||
**Fuente: Criatura. | **Fuente: Criatura. | ||
**'''dataint:''' Si el valor == 1, elimina el cadáver. | **'''dataint:''' Si el valor == 1, elimina el cadáver. | ||
*'''SCRIPT_COMMAND_ORIENTATION = 30''' | *'''SCRIPT_COMMAND_ORIENTATION = 30''' | ||
Línea 340: | Línea 429: | ||
**'''datalong:''' Si el valor != 0, entonces se gira hacia el objetivo; si no, se gira con la orientación o. | **'''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. | **'''o''': Establece la orientación. | ||
*'''SCRIPT_COMMAND_EQUIP = 31''' | *'''SCRIPT_COMMAND_EQUIP = 31''' | ||
**Fuente: Criatura. | **Fuente: Criatura. | ||
**'''datalong:''' ID del equipamiento. Ver entry de creature_equip_template. | **'''datalong:''' ID del equipamiento. Ver entry de creature_equip_template. | ||
*'''SCRIPT_COMMAND_MODEL = 32''' | *'''SCRIPT_COMMAND_MODEL = 32''' | ||
**Fuente: Criatura. | **Fuente: Criatura. | ||
**'''datalong:''' ID del modelo. | **'''datalong:''' ID del modelo. | ||
*'''SCRIPT_COMMAND_CLOSE_GOSSIP = 33''' | *'''SCRIPT_COMMAND_CLOSE_GOSSIP = 33''' | ||
**Fuente: Jugador. | **Fuente: Jugador. | ||
*'''SCRIPT_COMMAND_PLAYMOVIE = 34''' | *'''SCRIPT_COMMAND_PLAYMOVIE = 34''' | ||
**Fuente: Jugador. | **Fuente: Jugador. | ||
**'''datalong:''' ID de la película. | **'''datalong:''' ID de la película. | ||
=== guid === | === guid === | ||
Para scripts de waypoints, guid de la criatura. | Para scripts de waypoints, guid de la criatura. |
Revisión actual - 04:47 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_MOVE_TO = 3
Fuente: Criatura.
- datalong2: Duración (en tiempo) del movimiento.
- x: Posición X a la que moverse.
- y: Posición Y a la que moverse.
- z: Posición Z a la que mmoverse.
- SCRIPT_COMMAND_FLAG_SET = 4
- Fuente u objetivo: Criatura.
- datalong: Índice del campo a ser establecido.
- datalong2: Bit(s) que se establecen.
- SCRIPT_COMMAND_FLAG_REMOVE = 5
- Fuente u objetivo: Criatura.
- datalong: Índice del campo a ser cambiado.
- datalong2: Bit(s) que se borran.
- SCRIPT_COMMAND_TELEPORT_TO = 6
- Fuente u objetivo: Jugador (datalong2 == 0) o Criatura (datalong2 == 1).
- datalong: ID del mapa objetivo. Ver Maps.dbc.
- x: Coordenada X del teletransporte.
- y: Coordenada Y del teletransporte.
- z: Coordenada Z del teletransporte.
- o: Orientación del teletransporte.
- SCRIPT_COMMAND_QUEST_EXPLORED = 7
- Fuente u objetivo: Jugador.
- Objetivo o fuente: Objeto del mundo.
- datalong: ID de la misión cuyo estatus externo será satisfecho. Ver id de quest_template.
- datalong2: Distancia máxima a la que el jugador debe estar del NPC/entidad para que el script tenga efeto (valor mínimo 5).
- SCRIPT_COMMAND_KILL_CREDIT = 8
- Objetivo o fuente: Jugador.
- datalong: ID de la criatura objetivo del crédito de misión. Ver entry de creature_template y RequiredNpcOrGo de quest_template.
- datalong2: Si el valor es > 0 da crédito a todos los miembros del grupo, si no, sólo al jugador.
- SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9
- Fuente: Objeto del mundo (invocador).
- datalong: Guid de la entidad que respawneará. Ver guid de gameobject.
- datalong2: Tiempo de despawn en segundos. Si es vale es < 5 seconds: usa 5 en su lugar.
- SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10
- Fuente: Objeto del mundo (invocador).
- datalong: ID de la criatura invocada. Ver entry de creature_template.
- datalong2: Tiempo de despawn en milisegundos.
- x: Coordenada X del invocado.
- y: Coordenada Y del invocado.
- z: Coordenada Z del invocado.
- o: Orientacion del invocado.
- SCRIPT_COMMAND_OPEN_DOOR = 11
Fuente: Objeto del mundo. datalong: Guid de la puerta activada. Ver guid de gameobject. datalong2: Tiempo hasta que la puerta se vuelve a cerrar. Si el valor es < 15 segundos, usa 15 en su lugar.
- SCRIPT_COMMAND_CLOSE_DOOR = 12
Fuente: Objeto del mundo. datalong: Guid de la puerta activada. Ver guid de gameobject. datalong2: Tiempo hasta que la puerta se vuelve a abrir. Si el valor es < 15 segundos, usa 15 en su lugar.
- SCRIPT_COMMAND_ACTIVATE_OBJECT = 13
Fuente: Unidad. Objetivo: Entidad.
- SCRIPT_COMMAND_REMOVE_AURA = 14
Fuente(datalong2 != 0) u objetivo (datalong2 == 0): Unidad. datalong: ID del hechizo. datalong2: Si el valor > 0, entonces la elimina de la fuente, si no, la elimina del objetivo.
- 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.