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.
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 |
- Incremento de id ligad a cada 'entryorguid' y 'source_type' (0, 1, 2, ...).
- 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.
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 (?).
- 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.
EXPANDIR LA TABLA
| 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 | |||||||||
| SMART_ACTION_SET_UNIT_FLAG | 18 | Flags (may be more than one field OR'd together) | Target: Si es falso creature_template.unit_flags Si es verdadero creature_template.unit_flags | Se pueden establecer varias flag a la vez | ||||||||
| SMART_ACTION_REMOVE_UNIT_FLAG | 19 | Flags (may be more than one field OR'd together) | Target | |||||||||
| SMART_ACTION_AUTO_ATTACK | 20 | AllowAttackState (0 | stop attack | anything else means continue attacking) | ||||||||
| SMART_ACTION_ALLOW_COMBAT_MOVEMENT | 21 | AllowCombatMovement (0 | stop combat based movement | anything else continue attacking) | ||||||||
| SMART_ACTION_SET_EVENT_PHASE | 22 | Phase | ||||||||||
| SMART_ACTION_INC_EVENT_PHASE | 23 | Value (may be negative to decrement phase | should not be 0) | |||||||||
| SMART_ACTION_EVADE | 24 | No Params | ||||||||||
| SMART_ACTION_FLEE_FOR_ASSIST | 25 | With Emote | ||||||||||
| SMART_ACTION_CALL_GROUPEVENTHAPPENS | 26 | QuestID | ||||||||||
| SMART_ACTION_COMBAT_STOP | 27 | |||||||||||
| SMART_ACTION_REMOVEAURASFROMSPELL | 28 | Spellid | 0 removes all auras | |||||||||
| SMART_ACTION_FOLLOW | 29 | Distance (0 = default) | Angle (0 = default) | End CreatureEntry | credit | creditType (0monsterkill 1event) | Seguir al Target | |||||
| SMART_ACTION_RANDOM_PHASE | 30 | PhaseId1 | PhaseId2 | PhaseId3... | ||||||||
| SMART_ACTION_RANDOM_PHASE_RANGE | 31 | PhaseMin | PhaseMax | |||||||||
| SMART_ACTION_RESET_GOBJECT | 32 | |||||||||||
| SMART_ACTION_CALL_KILLEDMONSTER | 33 | CreatureId | ||||||||||
| SMART_ACTION_SET_INST_DATA | 34 | Field | Data | |||||||||
| SMART_ACTION_SET_INST_DATA64 | 35 | Field | ||||||||||
| SMART_ACTION_UPDATE_TEMPLATE | 36 | Entry | Team | |||||||||
| SMART_ACTION_DIE | 37 | No Params | ||||||||||
| SMART_ACTION_SET_IN_COMBAT_WITH_ZONE | 38 | No Params | ||||||||||
| SMART_ACTION_CALL_FOR_HELP | 39 | Radius | With Emote | |||||||||
| SMART_ACTION_SET_SHEATH | 40 | Sheath (0-unarmed | 1-melee | 2-ranged) | ||||||||
| SMART_ACTION_FORCE_DESPAWN | 41 | timer | ||||||||||
| SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL | 42 | MinHpValue(+pct | -flat) | |||||||||
| SMART_ACTION_MOUNT_TO_ENTRY_OR_MODEL | 43 | Creature_template entry(param1) OR ModelId (param2) (or 0 for both to dismount) | ||||||||||
| SMART_ACTION_SET_INGAME_PHASE_MASK | 44 | mask | ||||||||||
| SMART_ACTION_SET_DATA | 45 | Field | Data (only creature TODO) | |||||||||
| SMART_ACTION_UNUSED_46 | 46 | |||||||||||
| SMART_ACTION_SET_VISIBILITY | 47 | on/off | ||||||||||
| SMART_ACTION_SET_ACTIVE | 48 | No Params | ||||||||||
| SMART_ACTION_ATTACK_START | 49 | |||||||||||
| SMART_ACTION_SUMMON_GO | 50 | GameObjectID | DespawnTime in ms | |||||||||
| SMART_ACTION_KILL_UNIT | 51 | |||||||||||
| SMART_ACTION_ACTIVATE_TAXI | 52 | TaxiID | ||||||||||
| SMART_ACTION_WP_START | 53 | run/walk | pathID | canRepeat | quest | despawntime | reactState | |||||
| SMART_ACTION_WP_PAUSE | 54 | time | ||||||||||
| SMART_ACTION_WP_STOP | 55 | despawnTime | quest | fail? | ||||||||
| SMART_ACTION_ADD_ITEM | 56 | itemID | count | |||||||||
| SMART_ACTION_REMOVE_ITEM | 57 | itemID | count | |||||||||
| SMART_ACTION_INSTALL_AI_TEMPLATE | 58 | AITemplateID | ||||||||||
| SMART_ACTION_SET_RUN | 59 | 0/1 | ||||||||||
| SMART_ACTION_SET_FLY | 60 | 0/1 | ||||||||||
| SMART_ACTION_SET_SWIM | 61 | 0/1 | ||||||||||
| SMART_ACTION_TELEPORT | 62 | mapID | ||||||||||
| SMART_ACTION_SET_COUNTER | 63 | id | value | reset (0/1) | ||||||||
| SMART_ACTION_STORE_TARGET_LIST | 64 | varID | ||||||||||
| SMART_ACTION_WP_RESUME | 65 | none | ||||||||||
| SMART_ACTION_SET_ORIENTATION | 66 | |||||||||||
| SMART_ACTION_CREATE_TIMED_EVENT | 67 | id | InitialMin | InitialMax | RepeatMin(only if it repeats) | RepeatMax(only if it repeats) | chance | |||||
| SMART_ACTION_PLAYMOVIE | 68 | entry | ||||||||||
| SMART_ACTION_MOVE_TO_POS | 69 | PointId | xyz | |||||||||
| SMART_ACTION_RESPAWN_TARGET | 70 | |||||||||||
| SMART_ACTION_EQUIP | 71 | entry | slotmask slot1 | slot2 | slot3 | only slots with mask set will be sent to client | bits are 1 | 2 | 4 | leaving mask 0 is defaulted to mask 7 (send all) | slots1-3 are only used if no entry is set | |
| SMART_ACTION_CLOSE_GOSSIP | 72 | none | ||||||||||
| SMART_ACTION_TRIGGER_TIMED_EVENT | 73 | id(>1) | ||||||||||
| SMART_ACTION_REMOVE_TIMED_EVENT | 74 | id(>1) | ||||||||||
| SMART_ACTION_ADD_AURA | 75 | spellid | targets | |||||||||
| SMART_ACTION_OVERRIDE_SCRIPT_BASE_OBJECT | 76 | WARNING: CAN CRASH CORE | do not use if you dont know what you are doing | |||||||||
| SMART_ACTION_RESET_SCRIPT_BASE_OBJECT | 77 | none | ||||||||||
| SMART_ACTION_CALL_SCRIPT_RESET | 78 | none | ||||||||||
| SMART_ACTION_SET_RANGED_MOVEMENT | 79 | Distance | angle | |||||||||
| SMART_ACTION_CALL_TIMED_ACTIONLIST | 80 | ID (overwrites already running actionlist) | stop after combat?(0/1) | timer update type(0-OOC | 1-IC | 2-ALWAYS) | ||||||
| SMART_ACTION_SET_NPC_FLAG | 81 | Flags | ||||||||||
| SMART_ACTION_ADD_NPC_FLAG | 82 | Flags | ||||||||||
| SMART_ACTION_REMOVE_NPC_FLAG | 83 | Flags | ||||||||||
| SMART_ACTION_SIMPLE_TALK | 84 | groupID | can be used to make players say groupID | Text_over event is not triggered | whisper can not be used (Target units will say the text) | |||||||
| SMART_ACTION_INVOKER_CAST | 85 | spellID | castFlags | if avaliable | last used invoker will cast spellId with castFlags on targets | |||||||
| SMART_ACTION_CROSS_CAST | 86 | spellID | castFlags | CasterTargetType | CasterTarget param1 | CasterTarget param2 | CasterTarget param3 | ( + the origonal target fields as Destination target) | CasterTargets will cast spellID on all Targets (use with caution if targeting multiple * multiple units) | |||
| SMART_ACTION_CALL_RANDOM_TIMED_ACTIONLIST | 87 | script9 ids 1-9 | ||||||||||
| SMART_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST | 88 | script9 id min | max | |||||||||
| SMART_ACTION_RANDOM_MOVE | 89 | maxDist | ||||||||||
| SMART_ACTION_SET_UNIT_FIELD_BYTES_1 | 90 | bytes | target | |||||||||
| SMART_ACTION_REMOVE_UNIT_FIELD_BYTES_1 | 91 | bytes | target | |||||||||
| SMART_ACTION_INTERRUPT_SPELL | 92 | |||||||||||
| SMART_ACTION_SEND_GO_CUSTOM_ANIM | 93 | anim id | ||||||||||
| SMART_ACTION_SET_DYNAMIC_FLAG | 94 | Flags | ||||||||||
| SMART_ACTION_ADD_DYNAMIC_FLAG | 95 | Flags | ||||||||||
| SMART_ACTION_REMOVE_DYNAMIC_FLAG | 96 | Flags | ||||||||||
| SMART_ACTION_JUMP_TO_POS | 97 | speedXY | speedZ | targetX | targetY | targetZ | ||||||
| SMART_ACTION_SEND_GOSSIP_MENU | 98 | menuId | optionId | |||||||||
| SMART_ACTION_GO_SET_LOOT_STATE | 99 | state | ||||||||||
| SMART_ACTION_SEND_TARGET_TO_TARGET | 100 | id | ||||||||||
| SMART_ACTION_SET_HOME_POS | 101 | none | ||||||||||
| SMART_ACTION_SET_HEALTH_REGEN | 102 | 0/1 | ||||||||||
| SMART_ACTION_SET_ROOT | 103 | NYI | ||||||||||
| SMART_ACTION_SET_GO_FLAG | 104 | NYI | ||||||||||
| SMART_ACTION_ADD_GO_FLAG | 105 | NYI | ||||||||||
| SMART_ACTION_REMOVE_GO_FLAG | 106 | NYI | ||||||||||
| SMART_ACTION_SUMMON_CREATURE_GROUP | 107 | NYI | ||||||||||
| SMART_ACTION_SET_POWER | 108 | NYI | ||||||||||
| SMART_ACTION_ADD_POWER | 109 | NYI | ||||||||||
| SMART_ACTION_REMOVE_POWER | 110 | NYI | ||||||||||
| SMART_ACTION_GAME_EVENT_STOP | 111 | NYI | ||||||||||
| SMART_ACTION_GAME_EVENT_START | 112 | NYI | ||||||||||
| SMART_ACTION_START_CLOSEST_WAYPOINT | 113 | NYI | ||||||||||
| SMART_ACTION_MOVE_OFFSET | 114 | PointId (Is better that MOVE_FOWARD | movement via target fields x | y | z.) | |||||||
| SMART_ACTION_RANDOM_SOUND | 115 | NYI | ||||||||||
| SMART_ACTION_SET_CORPSE_DELAY | 116 | NYI | ||||||||||
| SMART_ACTION_DISABLE_EVADE | 117 | NYI | ||||||||||
| SMART_ACTION_GO_SET_GO_STATE | 118 | NYI | ||||||||||
| SMART_ACTION_SET_CAN_FLY | 119 | NYI | ||||||||||
| SMART_ACTION_REMOVE_AURAS_BY_TYPE | 120 | NYI | ||||||||||
| SMART_ACTION_SET_SIGHT_DIST | 121 | NYI | ||||||||||
| SMART_ACTION_FLEE | 122 | NYI | ||||||||||
| SMART_ACTION_ADD_THREAT | 123 | NYI | ||||||||||
| SMART_ACTION_LOAD_EQUIPMENT | 124 | NYI | ||||||||||
| SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT | 125 | NYI | ||||||||||
| SMART_ACTION_REMOVE_ALL_GAMEOBJECTS | 126 | NYI | ||||||||||
| SMART_ACTION_PAUSE_MOVEMENT | 127 | NYI | ||||||||||
| SMART_ACTION_PLAY_ANIMKIT | 128 | NYI | ||||||||||
| SMART_ACTION_SCENE_PLAY | 129 | NYI | ||||||||||
| SMART_ACTION_SCENE_CANCEL | 130 | NYI | ||||||||||
| SMART_ACTION_DESPAWN_SPAWNGROUP | 132 | NYI | ||||||||||
| SMART_ACTION_RESPAWN_BY_SPAWNID | 133 | NYI | ||||||||||
| SMART_ACTION_INVOKER_CAST_ | 134 | NYI | ||||||||||
| SMART_ACTION_PLAY_CINEMATIC | 135 | NYI | ||||||||||
| SMART_ACTION_SET_MOVEMENT_SPEED | 136 | NYI | ||||||||||
| SMART_ACTION_PLAY_SPELL_VISUAL_KIT | 137 | NYI | ||||||||||
| SMART_ACTION_OVERRIDE_LIGHT | 138 | NYI | ||||||||||
| SMART_ACTION_OVERRIDE_WEATHER | 139 | NYI | ||||||||||
| SMART_ACTION_SET_AI_ANIM_KIT | 140 | NYI | ||||||||||
| SMART_ACTION_SET_HOVER | 141 | NYI | ||||||||||
| SMART_ACTION_SET_HEALTH_PCT | 142 | NYI | ||||||||||
| SMART_ACTION_CREATE_CONVERSATION | 143 | NYI | ||||||||||
| SMART_ACTION_SET_IMMUNE_PC | 144 | Inmune a Players | ||||||||||
| SMART_ACTION_SET_IMMUNE_NPC | 145 | Inmune a NPCs | ||||||||||
| SMART_ACTION_SET_UNINTERACTIBLE | 146 | NYI | ||||||||||
| SMART_ACTION_ACTIVATE_GAMEOBJECT | 147 | NYI | ||||||||||
| SMART_ACTION_ADD_TO_STORED_TARGET_LIST | 148 | NYI | ||||||||||
| SMART_ACTION_BECOME_PERSONAL_CLONE_FOR_PLAYER | 149 | NYI | ||||||||||
| SMART_ACTION_TRIGGER_GAME_EVENT | 150 | NYI | ||||||||||
| SMART_ACTION_DO_ACTION | 151 | NYI | ||||||||||
| SMART_ACTION_COMPLETE_QUEST | 152 | NYI | ||||||||||
| SMART_ACTION_CREDIT_QUEST_OBJECTIVE_TALK_TO | 153 | NYI | ||||||||||
| SMART_ACTION_SEND_QUEST_EVENT | 160 | Any SAI have this acion | we should keep them? | |||||||||
| SMART_ACTION_MOVE_TO_POS_FIXED_ORIENTATION | 161 | Only one SAI have this |
- Acción que se usará si el evento es desencadenado.
- 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 |
- 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.).