Smart scripts

De TimelessWoW
Revisión del 11:37 29 may 2025 de Raul (discusión | contribs.) (Página creada con «<strong><big>La tabla `smart_scripts`</big></strong> ''Con este sistema podremos programar eventos bastante complejos sin la necesidad de recurrir a scripts.<br> Dado las grandes posibilidades que presenta sustituye completamente a los eventos programados por Event AI,<br> así que este último sistema ha quedado obsoleto y ya no se usa.''<br><br> == Estructura == {| class="wikitable" ! Field !! Type !! Attributes !! KEY !! NULL !! Default !! Extra !! Comment |-…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
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.

source_type

  • Fuente del evento: criatura, gameobect, spell.

id

  • 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 (?).

event_chance

  • Probabilidad de que el evento tenga lugar, en porcentaje (0-100%).

event_flags

  • 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.

action_type

  • Acción que se usará si el evento es desencadenado.

target_type

  • Define el target del evento y/o la acción.

comment

  • 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.).