Smart scripts
Ir a la navegación
Ir a la búsqueda
La tabla `smart_scripts`
Con este sistema podremos programar eventos bastante complejos sin la necesidad de recurrir a scripts.
Dado las grandes posibilidades que presenta sustituye completamente a los eventos programados por Event AI,
así que este último sistema ha quedado obsoleto y ya no se usa.
Estructura
Field | Type | Attributes | KEY | NULL | Default | Extra | Comment |
---|---|---|---|---|---|---|---|
entryorguid | int(11) | signed | PRI | NO | None | ||
source_type | tinyint(3) | unsigned | PRI | NO | 0 | ||
id | smallint(5) | unsigned | PRI | NO | 0 | ||
link | smallint(5) | unsigned | PRI | NO | 0 | ||
event_type | tinyint(3) | unsigned | NO | 0 | |||
event_phase_mask | tinyint(3) | unsigned | NO | 0 | |||
event_chance | tinyint(3) | unsigned | NO | 100 | |||
event_flags | tinyint(3) | unsigned | NO | 0 | |||
event_param1 | int(10) | unsigned | NO | 0 | |||
event_param2 | int(10) | unsigned | NO | 0 | |||
event_param3 | int(10) | unsigned | NO | 0 | |||
event_param4 | int(10) | unsigned | NO | 0 | |||
action_type | tinyint(3) | unsigned | NO | 0 | |||
action_param1 | int(10) | unsigned | NO | 0 | |||
action_param2 | int(10) | unsigned | NO | 0 | |||
action_param3 | int(10) | unsigned | NO | 0 | |||
action_param4 | int(10) | unsigned | NO | 0 | |||
action_param5 | int(10) | unsigned | NO | 0 | |||
action_param6 | int(10) | unsigned | NO | 0 | |||
target_type | tinyint(3) | unsigned | NO | 0 | |||
target_param1 | int(10) | unsigned | NO | 0 | |||
target_param2 | int(10) | unsigned | NO | 0 | |||
target_param3 | int(10) | unsigned | NO | 0 | |||
target_x | float | signed | NO | 0 | |||
target_y | float | signed | NO | 0 | |||
target_z | float | signed | NO | 0 | |||
target_o | float | signed | NO | 0 | |||
comment | text | signed | NO | Event Comment |
Descripción de los campos
Nótese que significa que esa característica/opción no está (aún) implementada.
entryorguid
- EntryOrGuid > 0: entry de la criatura/ gameobject / etc.
- EntryOrGuid < 0: guid de la criatura/ gameobject / etc.
- Depende del valor tomado en source_type.
- Fuente del evento: criatura, gameobect, spell.
- Incremento de id ligad a cada 'entryorguid' y 'source_type' (0, 1, 2, ...).
[[link
- Método simple para enlazar eventos.
- Ejemplo: Tenemos un evento (con un entryorguid y un source_type definidos) con id = 0 y link = 1; el evento (que tiene el mismo entryorguid y source_type) con id = 1 sólo podrá ocurrir si el evento con id = 0 ha sido desencadenado.
- Cuando se usa este método, hay que seleccionar el event_type 61 (SMART_EVENT_LINK).
Volver a smart_scripts.
event_type Smart_event a utilizar. event_phase_mask
- El evento sólo podrá ocurrir si la criatura/gameobject está en esta fase.
- El 0 engloba todas las fases (?).
- Probabilidad de que el evento tenga lugar, en porcentaje (0-100%).
- Establece si el evento no debería repetirse o sólo debería ocurrir en una determinada dificultad de instancia/mazmorra (si corresponde).
- Los valores se pueden sumar.
- Acción que se usará si el evento es desencadenado.
- Define el target del evento y/o la acción.
- Al comentar en Smart AI se usa una plantilla como la siguiente:
"Nombre de la criatura - Evento - Acción
"Minion of Gurok - On spawn - Set Random Movement"
Notas:
- Actualiza siempre la tabla creature_template o gameobject_template(dependiendo de a quien afecta el evento) con:
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=XXXXX;
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=XXXXX;
- Si la criatura o gameobject está dentro de una mazmorra, establece event_flags de acuerdo a la dificultad de la estancia (heroica, banda 10j., etc.).