Diferencia entre revisiones de «Smart scripts»

De TimelessWoW
Ir a la navegación Ir a la búsqueda
Línea 144: Línea 144:
| SMART_EVENT_MANA_PCT|| 3|| ManaMin%|| ManaMax%|| RepeatMin|| RepeatMax|| || Porcentage de maná
| SMART_EVENT_MANA_PCT|| 3|| ManaMin%|| ManaMax%|| RepeatMin|| RepeatMax|| || Porcentage de maná
|-
|-
| SMART_EVENT_AGGRO|| 4|| ||||||||||NONE
| SMART_EVENT_AGGRO|| 4|| ||||||||||Al entrar en combate
|-
|-
| SMART_EVENT_KILL|| 5|| CooldownMin0|| CooldownMax1|| playerOnly (0/1)|| Enttry (Si el parámetro 3 es 0)|| || Sobre la muerte de criaturas  
| SMART_EVENT_KILL|| 5|| CooldownMin0|| CooldownMax1|| playerOnly (0/1)|| Enttry (Si el parámetro 3 es 0)|| || Sobre la muerte de criaturas  

Revisión del 07:57 10 oct 2025

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.

Consultar la tabla.

Nombre Valor
SMART_SCRIPT_TYPE_CREATURE 0
SMART_SCRIPT_TYPE_GAMEOBJECT 1
SMART_SCRIPT_TYPE_AREATRIGGER 2
SMART_SCRIPT_TYPE_EVENT 3
SMART_SCRIPT_TYPE_GOSSIP 4
SMART_SCRIPT_TYPE_QUEST 5
SMART_SCRIPT_TYPE_SPELL 6
SMART_SCRIPT_TYPE_TRANSPORT 7
SMART_SCRIPT_TYPE_INSTANCE 8
SMART_SCRIPT_TYPE_TIMED_ACTIONLIST 9
SMART_SCRIPT_TYPE_SCENE 10
SMART_SCRIPT_TYPE_AREATRIGGER_ENTITY 11
SMART_SCRIPT_TYPE_AREATRIGGER_ENTITY_SERVERSIDE 12

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

EXPANDIR LA TABLA

Nombre Valor Parametro 1 Parametro 2 Parametro 3 Parametro 4 Parametro 5 Comentario
SMART_EVENT_UPDATE_IC 0 Inicio/Mínimo Inicio/Máximo Repite/Mínimo Repite/Máximo En combate
SMART_EVENT_UPDATE_OOC 1 Inicio/Mínimo Inicio/Máximo Repite/Mínimo Repite/Máximo Fuera de combate
SMART_EVENT_HEALT_PCT 2 HPMin% HPMax% RepeatMin RepeatMax Porcentage de salud
SMART_EVENT_MANA_PCT 3 ManaMin% ManaMax% RepeatMin RepeatMax Porcentage de maná
SMART_EVENT_AGGRO 4 Al entrar en combate
SMART_EVENT_KILL 5 CooldownMin0 CooldownMax1 playerOnly (0/1) Enttry (Si el parámetro 3 es 0) Sobre la muerte de criaturas
SMART_EVENT_DEATH 6 NONE
SMART_EVENT_EVADE 7 NONE
SMART_EVENT_SPELLHIT 8 SpellID School CooldownMin CooldownMax Al golpear com un hechizo a creatura/objeto
SMART_EVENT_RANGE 9 MinDist MaxDist RepeatMin RepeatMax Al objeto dentro del rango
SMART_EVENT_OOC_LOS 10 Ignorar hostilidad - target (0/1) Max Distancia al target CooldownMin CooldownMax Distancia cuando está fuera de combate
SMART_EVENT_RESPAWN 11 Condición del respawn Condicion del MapId Condición de la ZoneId Sobre la reaparición de objetos/criaturas
SMART_EVENT_TARGET_HEALTH_PCT 12 HPMin% HPMax% RepeatMin RepeatMax Porcentage de salud del objetivo
SMART_EVENT_TARGET_CASTING 13 Repeticion Min. Repetición Max. id del hechizo Hechizo al objetivo
SMART_EVENT_FRIENDLY_HEALTH 14 Déficit de HP(salud) Rádio Repetición Min. Repetición Max. Déficit de salud - amistoso
SMART_EVENT_FRIENDLY_IS_CC 15 Radio Repetición Min. Repetición Max. cuando una unidad amiga dentro de un cierto rango está bajo el efecto de un hechizo de control de masas
SMART_EVENT_FRIENDLY_MISSING_BUFF 16 Id del hechizo Radio Repetición Min. Repetición Max. Unidad amistosa, perdida de Buff
SMART_EVENT_SUMMONED_UNIT 17 Criatura Id, para ninguno dejar en 0 Repatición Min. Repatición Max. Unidad invocada por criatura/objeto
SMART_EVENT_TARGET_MANA_PCT 18 Mana Maz.% Mana Min.% Repetición Min. Repetición Max. Porcentaje de maná del objetivo
SMART_EVENT_ACCEPTED_QUEST 19 ID de la misión (0 ninguna) Tiempo Min. Tiempo Max. Misión aceptada
SMART_EVENT_REWARD_QUEST 20 ID de la misión (0 ninguna) Tiempo Min. Tiempo Max. Mision Recompensada
SMART_EVENT_REACHED_HOME 21 Sobre la criatura que llega a casa
SMART_EVENT_RECEIVE_EMOTE 22 EmoteId Tiempo Min. Tiempo Max. Recibe el emote
SMART_EVENT_HAS_AURA 23 Id del hechizo Numero de STacked Repetición Min. Repetición Max. Sobre el aura de la criatura
SMART_EVENT_TARGET_BUFFED 24 Id del hechizo Numero de STacked Repetición Min. Repetición Max. Buff de spell sobre el objetivo
SMART_EVENT_RESET 25 Aparecer o reaparecer despues del combate
SMART_EVENT_IC_LOS 26 Ignora criatura hostil (0/1) Rango (distancia) Max. Tiempo Min. Tiempo Max. Objetivo a distancia en combate
SMART_EVENT_PASSENGER_BOARDED 27 Tiempo Min. Tiempo Max. Cuando la criatura se sube al vehiculo
SMART_EVENT_PASSENGER_REMOVED 28 Tiempo Min. Tiempo Max. Cuando la criatura se baja al vehiculo
SMART_EVENT_CHARMED 29 0 (al aplicar el encanto) / 1 (al quitar el encanto) Criatura encantada
SMART_EVENT_CHARMED_TARGET 30 Criatura encantada al objetivo
SMART_EVENT_SPELLHIT_TARGET 31 Id del hechizo Escuela Tiempo Min. Tiempo Max. Hechizo sobre el objetivo
SMART_EVENT_DAMAGED 32 Daño Min. Daño Max. Tiempo Min. Tiempo Max. Daño sobre la criatura
SMART_EVENT_DAMAGED_TARGET 33 Daño Min. Daño Max. Tiempo Min. Tiempo Max. Daño al objetivo
SMART_EVENT_MOVEMENTINFORM 34 MovementType(any) PointID MovemenType
SMART_EVENT_SUMMON_DESPAWNED 35 Creature Id (Ninguno-0) Tiempo Min. Tiempo Max. Invocada/Desaparecida
SMART_EVENT_CORPSE_REMOVED 36 Cadaver de la criatura eliminado
SMART_EVENT_AI_INIT 37
SMART_EVENT_DATA_SET 38 Id Value Tiempo Min. Tiempo Max. Conjunto de datos criatura/objetivo. Se puede utilizar con SMART_ACTION_SET_DATA
SMART_EVENT_WAYPOINT_START 39 Id del punto(0-ninguno) pathID(0-ninguno) La criatura comienza los waipoints
SMART_EVENT_WAYPOINT_REACHED 40 Id del punto(0-ninguno) pathID(0-ninguno) Cuando la criatura llega al punto dado
SMART_EVENT_TRANSPORT_ADDPLAYER 41
SMART_EVENT_TRANSPORT_ADDCREATURE 42 ID (0- ninguno)
SMART_EVENT_TRANSPORT_REMOVE_PLAYER 43
SMART_EVENT_TRANSPORT_RELOCATE 44 Id del punto
SMART_EVENT_INSTANCE_PLAYER_ENTER 45 Equipo (0-ninguno) Tiempo Min. Tiempo Max.
SMART_EVENT_AREATRIGGER_ONTRIGGER 46 Id del Trigger(0-ninguno)
SMART_EVENT_QUEST_ACCEPTED 47 Cuando se acepta la misión
SMART_EVENT_QUEST_OBJ_COPLETETION 48 Objetivo de la misión completado
SMART_EVENT_QUEST_COMPLETION 49 Misión completada
SMART_EVENT_QUEST_REWARDED 50 Misión premiada
SMART_EVENT_QUEST_FAIL 51 Misión fallida
SMART_EVENT_TEXT_OVER 52 GroupId de creature_text Id de la criatura que habla (0-ninguno) Se activa despues de SMART_ACTION_TALK Para una acción después
SMART_EVENT_RECEIVE_HEAL 53 MinHeal MaxHeal Tiempo Min. Tiempo Max. Criatura que recibe la curación
SMART_EVENT_JUST_SUMMONED 54 Justo cuando la criatura aparece por summon
SMART_EVENT_WAYPOINT_PAUSED 55 Id del punto(0-ninguno) pathID(0-ninguno) Pausa en el camino
SMART_EVENT_WAYPOINT_RESUMED 56 Id del punto(0-ninguno) pathID(0-ninguno) Criatura reanuda el camino
SMART_EVENT_WAYPOINT_STOPPED 57 Id del punto(0-ninguno) pathID(0-ninguno) Parada en el camino
SMART_EVENT_WAYPOINT_ENDED 58 Id del punto(0-ninguno) pathID(0-ninguno) Finalización del camino
SMART_EVENT_TIMED_EVENT_TRIGGERED 59 id
SMART_EVENT_UPDATE 60 Inicio Min. Inicio Max. Repetición Min. Repetición Max.
SMART_EVENT_LINK 61 Uso interno no hay parametros Se utiliza para encadenar varios eventos
SMART_EVENT_GOSSIP_SELECT 62 menuID actionID Al hacer click en el menu Gossip
SMART_EVENT_JUST_CREATED 63
SMART_EVENT_GOSSIP_HELLO 64 Al hacer click con el boton del raton Criatura/Objeto. Tiene que tener el Gossip activo
SMART_EVENT_FOLLOW_COMPLETED 65
SMART_EVENT_DUMMY_EFFECT 66 Id del hechizo effectIndex
SMART_EVENT_IS_BEHIND_TARGET 67 Tiempo Min. Tiempo Max. Criatura detrás del objetivo. Usado en 3.3.5
SMART_EVENT_GAME_EVENT_START 68 game_event.Entry
SMART_EVENT_GAME_EVENT_END 69 game_event.Entry
SMART_EVENT_GO_STATE_CHANGED 70 go state
SMART_EVENT_GO_EVENT_INFORM 71 Id del evento
SMART_EVENT_ACTION_DONE 72 Id del evento (SharedDefines.EventId)
SMART_EVENT_ON_SPELLCLICK 73 clicker (unit) Necesita entrada en npc_spellclick_spells de la base de datos
SMART_EVENT_FRIENDLY_HEALTH_PCT 74 minHpPct maxHpPct repeatMin repeatMax
SMART_EVENT_DISTANCE_CREATURE 75 guid entry distance repeat Criatura dento de la distancia
SMART_EVENT_DISTANCE_GAMEOBJECT 76 guid entry distance repeat Objeto dentro de distancia, por guid
SMART_EVENT_COUNTER_SET 77 id value Tiempo Min. Tiempo Max. Evento que se activa cuando un objeto del juego se acerca a una distancia determinada.
SMART_EVENT_SCENE_START 78 (NYI) No implementado
SMART_EVENT_SCENE_TRIGGER 79 (NYI) No implementado
SMART_EVENT_SCENE_CANCEL 80 (NYI) No implementado
SMART_EVENT_SCENE_COMPLETE 81 (NYI) No implementado
SMART_EVENT_SUMMONED_UNIT_DIES 82 (NYI) No implementado
SMART_EVENT_ON_SPELL_CAST 83 (NYI) No implementado
SMART_EVENT_ON_SPELL_FAILED 84 (NYI) No implementado
SMART_EVENT_ON_SPELL_START 85 (NYI) No implementado
SMART_EVENT_ON_DESPAWN 86 (NYI) No implementado
SMART_EVENT_SEND_EVENT_TRIGGER 87 (NYI) No implementado
SMART_EVENT_AREATRIGGER_EXIT 88 (NYI) No implementado
SMART_EVENT_DISTANCE_PLAYER 100 range aura ispresent repeat
  • El evento sólo podrá ocurrir si la criatura/gameobject está en esta fase.
  • El 0 engloba todas las fases (?).

event_phase_mask


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

Nombre Valor Param 1 Param 2 Param 3 Param 4 Param 5 Param 6 Comentario Limitación del Branch 9
SMART_ACTION_NONE 0 No action
SMART_ACTION_TALK 1 groupID from creature_text Duracion de la espera antes que se active - TEXT_OVER
SMART_ACTION_SET_FACTION 2 FactionId (or 0 for default)
SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL 3 Creature_template entry(param1) ModelId (param2) (or 0 for both to demorph)
SMART_ACTION_SOUND 4 SoundId onlySelf
SMART_ACTION_PLAY_EMOTE 5 EmoteId
SMART_ACTION_FAIL_QUEST 6 QuestID
SMART_ACTION_ADD_QUEST 7 QuestID
SMART_ACTION_SET_REACT_STATE 8 state
SMART_ACTION_ACTIVATE_GOBJECT 9
SMART_ACTION_RANDOM_EMOTE 10 EmoteId1 EmoteId2 EmoteId3 EmoteId4
SMART_ACTION_CAST 11 Id de la spell CastFlags
SMART_ACTION_SUMMON_CREATURE 12 CreatureID summonType duration in ms attackInvoker SmartActionSummonCreatureFlags: PersonalSpawn = 1 PreferUnit = 2 Summon Unit
SMART_ACTION_THREAT_SINGLE_PCT 13 Threat% Cambiar porcentage de amenaza para un objetivo
SMART_ACTION_THREAT_ALL_PCT 14 Threat% Cambiar porcentage de amenaza para varios objetivo
SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS 15 QuestID
SMART_ACTION_UNUSED_16 16 Solo para la 4.3.4
SMART_ACTION_SET_EMOTE_STATE 17 emoteID Reproduce el emote continuamente
  • Acción que se usará si el evento es desencadenado.

target_type

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

EXPANDIR LA TABLA

Nombre Valor Target Parametro 1 Target Parametro 2 Target Parametro 3 Target Parametro 4 Target X Target Y Target Z Target O Comentario
SMART_TARGET_NONE 0 Ninguno. Por defecto es el invocador
SMART_TARGET_SELF 1 Auto casteo (así mismo)
SMART_TARGET_VICTIM 2 Nuestro objetivo, con mayor aggro
SMART_TARGET_HOSTILE_SECOND_AGGRO 3 Máxima distancia Solo jugador (0/1) Potencia +1 Segundo con mayor aggro
SMART_TARGET_HOSTILE_LAST_AGGRO 4 Última muerte
SMART_TARGET_HOSTILE_RANDOM 5 Cualquier objetio aleatorio, en nuestra lista de amenazas
SMART_TARGET_HOSTILE_RANDOM_NOT_TOP 6 Cualquier objetio aleatorio, excepto la amenaza superior
SMART_TARGET_ACTION_INVOKER 7 Unidad que provoca que ocurra el evento. (Habitualente player)
SMART_TARGET_POSITION 8 X Y Z Se usan las coordenadas en xyz como parámetros del evento
SMART_TARGET_CREATURE_RANGE 9 Id de la criatira (Para ninguna dejar a 0) Distancia Min. Distancia Max. Criatura con ID específica, dentro de un rango específico
SMART_TARGET_CREATURE_GUID 10 Guid Entry Criatura con GUID específica
SMART_TARGET_CREATURE_DISTANCE 11 Id de la criatura (Para ninguna, dejar en 0) Distancia Max. Criatura con Id específica dentro de rango
SMART_TARGET_STORED 12 id Utiliza objetivos prealmacenados (lista)
SMART_TARGET_GAMEOBJECT_RANGE 13 Id del Go (Para ningino, dejar en 0) Distancia Min. Distancia Max Objeto con id específica dento de un rango específico
SMART_TARGET_GAMEOBJECT_GUID 14 Guid el Objeto Id del Objeto Objeto con Guid específica
SMART_TARGET_GAMEOBJECT_DISTANCE 15 Id del Objeto(Para ninguno, dejar en 0) Distancia Max Objeto con Id específico, dentro de la distancia
SMART_TARGET_INVOKER_PARTY 16 Miembros del grupo del invocador
SMART_TARGET_PLAYER_RANGE 17 Distancia Min. Distancia Max. Jugador denteo de un rango específico
SMART_TARGET_PLAYER_DISTANCE 18 Distancia Max. Jugador dentro de una máxima distancia
SMART_TARGET_CLOSEST_CREATURE 19 Id de la criatura (Para ninguna, dejar en 0) Distancia Max. Muerte (0/1) Cierra la criatura mas cercana dento del rango máximo
SMART_TARGET_CLOSEST_GAMEOBJECT 20 Id del Objeto (Para ninguno, dejar en 0) Distancia Max. Cierra el objeto mas cercano dentro de la distancia
SMART_TARGET_CLOSEST_PLAYER 21 Distancia Max. Cierra el jugador dentro del rango especificado
SMART_TARGET_ACTION_INVOKER_VEHICLE 22 Vehículo de la unidad que provoca la distancia
SMART_TARGET_OWNER_OR_SUMMONER 23 Invocador o propietario
SMART_TARGET_THREAT_LIST 24 Distancia Max. Todas las criaturas de la lista
SMART_TARGET_CLOSEST_ENEMY 25 (NYI) Aun no está implementado
SMART_TARGET_CLOSEST_FRIENDLY 26 (NYI) Aun no está implementado
SMART_TARGET_LOOT_RECIPIENTS 27 (NYI) Aun no está implementado
SMART_TARGET_FARTHEST 28 Distancia Max. Solo Jugador (0/1) isInLos (0/1) Unidad mas alejada de la lista de amenazas
SMART_TARGET_VEHICLE_PASSENGER 29 (NYI) Aun no está implementado
SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT 30 (NYI) Aun no está implementado
SMART_TARGET_RANDOM_POSITION 40 (NYI) Aun no está implementado
SMART_TARGET_INVOKER_SUMMON 41 (NYI) Aun no está implementado
SMART_TARGET_HOSTILE_RANDOM_PLAYER 42 (NYI) Aun no está implementado
SMART_TARGET_HOSTILE_RANDOM_NOT_TOP_PLAYER 43 (NYI) Aun no está implementado
SMART_TARGET_HOSTILE_RANDOM_AURA 44 (NYI) Aun no está implementado

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