Smart scripts
smart_scripts - таблица всевозможных действий существ. (ниже только наши "специфические")
action_delay
Задержка для запуска экшена(в мс)
event_type
SMART_EVENT_ACCEPTED_QUEST = 19,
При принятии задания игроком. Так же добавлена возможность установки кулдауна для срабатывания ивента.
questID - id задания
repeatMin;
repeatMax; Минимальное и максимальное время до повтора.
SMART_EVENT_REWARD_QUEST = 20,
При завершении задания игроком. Так же добавлена возможность установки кулдауна для срабатывания ивента.
questID - id задания
repeatMin;
repeatMax; Минимальное и максимальное время до повтора.
SMART_EVENT_GOSSIP_SELECT = 62,
При использовнии госсип меню
menuID - id меню
optionID - id опции
repeatMin;
repeatMax; Минимальное и максимальное время до повтора.
SMART_EVENT_ON_SPELLCLICK = 73,
При спеллклике
repeatMin;
repeatMax; Минимальное и максимальное время до повтора.
SMART_EVENT_CHECK_DIST_TO_HOME = 74,
Проверяет расстояние до позиции "спауна" (home). Если находится в пределах расстояния, указанного в maxDist, то делает действие.
maxDist - Максимальная дистанция, при которой будет срабатывать смарт
param 2; // пустое значение
repeatMin;
repeatMax;
Минимальное и максимальное время до повтора.
SMART_EVENT_EVENTOBJECT_ONTRIGGER = 75,
При достижении ивент объекта
param1; // пустое значение
repeatMin;
repeatMax;
Минимальное и максимальное время до повтора.
SMART_EVENT_EVENTOBJECT_OFFTRIGGER = 77,
При выходе из ивент объекта
param1; // пустое значение
repeatMin;
repeatMax;
Минимальное и максимальное время до повтора.
SMART_EVENT_ON_APPLY_OR_REMOVE_AURA = 78,
При наложении или снятии ауры с нпц
param1; // SpellId
param2; // режим снятия ауры(AURA_REMOVE_NONE = 0, AURA_REMOVE_BY_DEFAULT = 1, AURA_REMOVE_BY_CANCEL= 2,AURA_REMOVE_BY_ENEMY_SPELL, AURA_REMOVE_BY_EXPIRE, AURA_REMOVE_BY_DEATH,AURA_REMOVE_BY_MECHANIC,AURA_REMOVE_BY_DROP_CHARGERS, AURA_REMOVE_BY_INTERRUPT
param3; // при наложении = 1, при удалении = 0
param4; // КД на возможность повтора в мс
SMART_EVENT_ON_FIND_OBJECT_IN_RANGE = 79,
При обнаружении объекта в радиусе
param1; // Радиус
param2; // Тип(1 - игрок, 2 - НПЦ, 3 - ГО) param3; // Энтри(НПЦ ИД, ИД ГО, 0 - если игрок) Если игрок, то тут можно указать ид квеста и ивент будет срабатывать только если у найденного игрока взят этот квест
param4; // Время до повторной проверки
param5; // Время до повторного срабатывания, если объект был найден
SMART_EVENT_ON_SPECIAL_DATA = 80,
При получении кастом даты. Пример использования: если по квесту суммонит волны аддов и необходимо чтобы только после убийства всех мобов первой волны суммонило следующую, то используйте этот ивент вместе с экшеном SMART_ACTION_SET_SPECIAL_DATA. Когда нпц из волны аддов погибает, то кидается кастом дата мобу, далее при накоплении нужного кол-ва дат происходит нужное вам действие.
param1; // Значение param2; // Повторная проверка в мс
SMART_EVENT_ON_OWNER_HAS_QUEST = 81,
При наличии(отсутствии) квеста у призывателя(овнера). Проверяется по указанному таймеру.
param1; // Id квеста param2; // Негатив. То есть если указанный квест отсутствует у игрока param3; // Таймер. Интервал с которым будет идти проверка. По дефолту выставлено в ядре 1500 мс(меньше не поставить, чтобы избежать фризов) param4; // Время до повторного срабатывания
SMART_EVENT_ON_SPECIAL_DATA_SET = 82,
При получении спешл даты
SMART_EVENT_ON_OWNER_HAS_COMPLETED_QUEST = 83,
Если у владельца выполнен квест
парам1 = квест ид парам2 = обжектива парам3 = кол-во обжектив парам4 = таймер проверки в мс парам5 = повторная проверка при срабатывании в мс
SMART_EVENT_ON_ENTER_VEHICLE = 84,
При входе в вехикл
SMART_EVENT_ON_EXIT_VEHICLE = 85,
При выходе из вехикла
SMART_EVENT_ON_RANDOM_DATA = 86,
При случайной дате парам1 - значение, полученное при 239 экшине
SMART_EVENT_ON_LAST_HIT = 87,
При получении смертельного удара. Упрощает использование таргетов: все цели в аггро-листе, 1 цель в аггро-листе и тд. - так как запускается перед киллом нпц
event_type
SMART_EVENT_UPDATE_IC = 0, // InitialMin, InitialMax, RepeatMin, RepeatMax SMART_EVENT_UPDATE_OOC = 1, // InitialMin, InitialMax, RepeatMin, RepeatMax SMART_EVENT_HEALT_PCT = 2, // HPMin%, HPMax%, RepeatMin, RepeatMax SMART_EVENT_MANA_PCT = 3, // ManaMin%, ManaMax%, RepeatMin, RepeatMax SMART_EVENT_AGGRO = 4, // NONE SMART_EVENT_KILL = 5, // CooldownMin0, CooldownMax1, playerOnly2, else creature entry3 SMART_EVENT_DEATH = 6, // NONE SMART_EVENT_EVADE = 7, // NONE SMART_EVENT_SPELLHIT = 8, // SpellID, School, CooldownMin, CooldownMax SMART_EVENT_RANGE = 9, // MinDist, MaxDist, RepeatMin, RepeatMax SMART_EVENT_OOC_LOS = 10, // NoHostile, MaxRnage, CooldownMin, CooldownMax SMART_EVENT_RESPAWN = 11, // type, MapId, ZoneId SMART_EVENT_TARGET_HEALTH_PCT = 12, // HPMin%, HPMax%, RepeatMin, RepeatMax SMART_EVENT_TARGET_CASTING = 13, // RepeatMin, RepeatMax SMART_EVENT_FRIENDLY_HEALTH = 14, // HPDeficit, Radius, RepeatMin, RepeatMax SMART_EVENT_FRIENDLY_IS_CC = 15, // Radius, RepeatMin, RepeatMax SMART_EVENT_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax SMART_EVENT_SUMMONED_UNIT = 17, // CreatureId(0 all), CooldownMin, CooldownMax SMART_EVENT_TARGET_MANA_PCT = 18, // ManaMin%, ManaMax%, RepeatMin, RepeatMax SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID(0any), RepeatMin, RepeatMax SMART_EVENT_REWARD_QUEST = 20, // QuestID(0any) SMART_EVENT_REACHED_HOME = 21, // NONE SMART_EVENT_RECEIVE_EMOTE = 22, // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3 SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax SMART_EVENT_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax SMART_EVENT_RESET = 25, // Called after combat, when the creature respawn and spawn. SMART_EVENT_IC_LOS = 26, // NoHostile, MaxRnage, CooldownMin, CooldownMax SMART_EVENT_PASSENGER_BOARDED = 27, // CooldownMin, CooldownMax SMART_EVENT_PASSENGER_REMOVED = 28, // CooldownMin, CooldownMax SMART_EVENT_CHARMED = 29, // NONE SMART_EVENT_CHARMED_TARGET = 30, // NONE SMART_EVENT_SPELLHIT_TARGET = 31, // SpellID, School, CooldownMin, CooldownMax SMART_EVENT_DAMAGED = 32, // MinDmg, MaxDmg, CooldownMin, CooldownMax SMART_EVENT_DAMAGED_TARGET = 33, // MinDmg, MaxDmg, CooldownMin, CooldownMax SMART_EVENT_MOVEMENTINFORM = 34, // MovementType(any), PointID SMART_EVENT_SUMMON_DESPAWNED = 35, // Entry, CooldownMin, CooldownMax SMART_EVENT_CORPSE_REMOVED = 36, // NONE SMART_EVENT_AI_INIT = 37, // NONE SMART_EVENT_DATA_SET = 38, // Id, Value, CooldownMin, CooldownMax SMART_EVENT_WAYPOINT_START = 39, // PointId(0any), pathID(0any) SMART_EVENT_WAYPOINT_REACHED = 40, // PointId(0any), pathID(0any) SMART_EVENT_TRANSPORT_ADDPLAYER = 41, // NONE SMART_EVENT_TRANSPORT_ADDCREATURE = 42, // Entry (0 any) SMART_EVENT_TRANSPORT_REMOVE_PLAYER = 43, // NONE SMART_EVENT_TRANSPORT_RELOCATE = 44, // PointId SMART_EVENT_INSTANCE_PLAYER_ENTER = 45, // Team (0 any), CooldownMin, CooldownMax SMART_EVENT_AREATRIGGER_ONTRIGGER = 46, // TriggerId(0 any), CooldownMin, CooldownMax SMART_EVENT_QUEST_ACCEPTED = 47, // none SMART_EVENT_QUEST_OBJ_COPLETETION = 48, // none SMART_EVENT_QUEST_COMPLETION = 49, // none SMART_EVENT_QUEST_REWARDED = 50, // none SMART_EVENT_QUEST_FAIL = 51, // none SMART_EVENT_TEXT_OVER = 52, // GroupId from creature_text, creature entry who talks (0 any) SMART_EVENT_RECEIVE_HEAL = 53, // MinHeal, MaxHeal, CooldownMin, CooldownMax SMART_EVENT_JUST_SUMMONED = 54, // none SMART_EVENT_WAYPOINT_PAUSED = 55, // PointId(0any), pathID(0any) SMART_EVENT_WAYPOINT_RESUMED = 56, // PointId(0any), pathID(0any) SMART_EVENT_WAYPOINT_STOPPED = 57, // PointId(0any), pathID(0any) SMART_EVENT_WAYPOINT_ENDED = 58, // PointId(0any), pathID(0any) SMART_EVENT_TIMED_EVENT_TRIGGERED = 59, // id SMART_EVENT_UPDATE = 60, // InitialMin, InitialMax, RepeatMin, RepeatMax SMART_EVENT_LINK = 61, // INTERNAL USAGE, no params, used to link together multiple events, does not use any extra resources to iterate event lists needlessly SMART_EVENT_GOSSIP_SELECT = 62, // menuID, actionID, cooldown min, cooldown max SMART_EVENT_JUST_CREATED = 63, // none SMART_EVENT_GOSSIP_HELLO = 64, // none SMART_EVENT_FOLLOW_COMPLETED = 65, // none SMART_EVENT_DUMMY_EFFECT = 66, // spellId, effectIndex SMART_EVENT_IS_BEHIND_TARGET = 67, // cooldownMin, CooldownMax 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, // eventId SMART_EVENT_ACTION_DONE = 72, // eventId (SharedDefines.EventId) SMART_EVENT_ON_SPELLCLICK = 73, // cooldown min, cooldown max, IsPlayer( 0 / 1) if clicker is player SMART_EVENT_CHECK_DIST_TO_HOME = 74, // clicker (unit) SMART_EVENT_EVENTOBJECT_ONTRIGGER = 75, // EventObject(0 any), CooldownMin, CooldownMax SMART_EVENT_ON_TAXIPATHTO = 76, // clicker (unit) SMART_EVENT_EVENTOBJECT_OFFTRIGGER = 77, // EventObject(0 any), CooldownMin, CooldownMax SMART_EVENT_ON_APPLY_OR_REMOVE_AURA = 78, // SpellId, Mode, ApplyOrRemove(1/0), Cooldown SMART_EVENT_ON_FIND_OBJECT_IN_RANGE = 79, // On find nearest object in range. Distance, Type(1 - player, 2 - NPC, 3 - GO), Entry(npcId, goId), RepeatTimer SMART_EVENT_ON_SPECIAL_DATA = 80, // On received special data and repeat it on timer SMART_EVENT_ON_OWNER_HAS_QUEST = 81, // Misc1 = QuestId, Misc2 = Negative(if owner doesn't have quest), Misc3 = CheckTimer SMART_EVENT_ON_SPECIAL_DATA_SET = 82, // On just set special data SMART_EVENT_ON_OWNER_HAS_COMPLETED_QUEST = 83, // If owner has completed quest. QuestId, Check timer, Next check timer SMART_EVENT_ON_ENTER_VEHICLE = 84, // On enter vehicle SMART_EVENT_ON_EXIT_VEHICLE = 85, // On exit vehicle SMART_EVENT_ON_RANDOM_DATA = 86, // On random data value. Misc1 - value SMART_EVENT_ON_LAST_HIT = 87, // Handle after npc take >= dmg of his health SMART_EVENT_ON_SPELL_FINISH_CAST = 88, // Call after finish cast
action_type
SMART_ACTION_TALK = 1, // misc1 - groupID из creature_text, misc2 - задержка до срабатывания TEXT_OVER ивента, misc3 - 1 - персональный текст, текст будет виден только таргету(игроку)
SMART_ACTION_SET_FACTION = 2, // FactionId (or 0 for default)
SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL = 3, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to demorph)
SMART_ACTION_SOUND = 4, // SoundId, TextRange
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...
SMART_ACTION_CAST = 11, // SpellId, CastFlags
SMART_ACTION_SUMMON_CREATURE = 12
misc1 = id npc misc2 = тип суммона misc3 = длительность(мс) misc4 = добавить в лист суммонов misc5 = атаковать призывателя misc6 = взять фазы цели
SMART_ACTION_THREAT_SINGLE_PCT = 13, // Threat%
SMART_ACTION_THREAT_ALL_PCT = 14, // Threat%
SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS = 15, // QuestID
SMART_ACTION_SEND_CASTCREATUREORGO = 16, // QuestID, SpellId
SMART_ACTION_SET_EMOTE_STATE = 17, // emoteID
SMART_ACTION_SET_UNIT_FLAG = 18, // Flags (may be more than one field OR'd together), Target
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_PLAY_SPELL_VISUAL_KIT = 27, // KitType
SMART_ACTION_REMOVEAURASFROMSPELL = 28, // Spellid, 0 removes all auras
SMART_ACTION_FOLLOW = 29, // Distance (0 = default), Angle (0 = default), EndCreatureEntry, credit, creditType (0monsterkill, 1event)
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
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)
misc1 = data misc2 = value misc3 = передать инвокера цели(целью инвокера станет существо или го, которое кидает дату)
SMART_ACTION_MOVE_FORWARD = 46
Движение вперед
misc1 = Расстояние misc2 = 1 вкл бег, 0 выкл бег
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_STORE_VARIABLE_DECIMAL = 63, // varID, number
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_PLAYMOVIE = 68, // entry
SMART_ACTION_MOVE_TO_POS = 69
Движение в точку
misc1 = pointid(не обязательно) misc2 = 1 вкл бег, 0 выкл бег
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
Случайное передвижение
misc1 = расстояние misc2 = 1 вкл бег, 0 выкл бег НЕ РАБОТАЕТ. ЮЗАТЬ МИСК 3 misc3 = Random Move Type - RANDOM_MOVE_DEFAULT = 0, RANDOM_MOVE_WALK_AND_RUN = 1, RANDOM_MOVE_WALK_ONLY = 2, RANDOM_MOVE_RUN_ONLY = 3
SMART_ACTION_SET_UNIT_FIELD_BYTES_1 = 90, // bytes, type (UNIT_BYTES_1_OFFSET_STAND_STATE = 1, UNIT_BYTES_1_OFFSET_PET_TALENTS, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_BYTES_1_OFFSET_ANIM_TIER)
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_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, // off/on
SMART_ACTION_SET_GO_FLAG = 104, // Flags
SMART_ACTION_ADD_GO_FLAG = 105, // Flags
SMART_ACTION_REMOVE_GO_FLAG = 106, // Flags
SMART_ACTION_SUMMON_CREATURE_GROUP = 107, // Group, attackInvoker
SMART_ACTION_SET_POWER = 108, // PowerType, newPower
SMART_ACTION_ADD_POWER = 109, // PowerType, newPower
SMART_ACTION_REMOVE_POWER = 110, // PowerType, newPower
SMART_ACTION_GAME_EVENT_STOP = 111, // GameEventId
SMART_ACTION_GAME_EVENT_START = 112, // GameEventId
SMART_ACTION_START_CLOSEST_WAYPOINT = 113, // wp1, wp2, wp3, wp4, wp5, wp6, wp7
SMART_ACTION_RISE_UP = 114, // distance
SMART_ACTION_DISABLE_EVADE = 117, // 0/1 (1 = disabled, 0 = enabled)
SMART_ACTION_SET_CAN_FLY = 119, // 0/1 (0 = disabled, 1 = enabled)
SMART_ACTION_PLAY_ANIMKIT = 128, // id, type (0 = oneShot, 1 = aiAnim, 2 = meleeAnim, 3 = movementAnim)
SMART_ACTION_DESPAWN_SUMMONS = 129, // timerMs, byEntry
SMART_ACTION_SET_CONTROLLED = 130, // state, apply|remove
SMART_ACTION_MOVE_TO_POS_TARGET = 131, // pointId
SMART_ACTION_EXIT_VEHICLE = 132, // none
SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS = 133, // flags
SMART_ACTION_SET_COMBAT_DISTANCE = 134, // combatDistance
SMART_ACTION_SET_CASTER_COMBAT_DIST = 135, // followDistance, resetToMax
SMART_ACTION_SET_LOOT_MODE = 136, // mode mask
SMART_ACTION_SET_HOVER = 141, // 0/1
SMART_ACTION_ADD_IMMUNITY = 142, // type, id, value
SMART_ACTION_REMOVE_IMMUNITY = 143, // type, id, value
SMART_ACTION_FALL = 144, //
SMART_ACTION_SET_EVENT_FLAG_RESET = 145, // 0/1
SMART_ACTION_ZONE_UNDER_ATTACK = 149,
SMART_ACTION_LOAD_GRID = 150,
SMART_ACTION_STOP_MOVING = 151,
SMART_ACTION_BOSS_EVADE = 200
Заставляет босса эвейднуться. Не имеет параметров.
SMART_ACTION_BOSS_ANOUNCE = 201
Делает анонс от лица босса в указанной локации указанного текста
tesxid - ид текста из trinity_strings, который будет заанонсен
area - арея, в которой будет анонс (по желанию). Если босс не в той арее, то анонса не будет
local - локализация
idsample - то, что будет указано перед самим текстом, так сказать, автор. Напрмер, если 3, то будет [SERVER]: {текст из tesxid}, если 4, то [Event Message]: {текст из tesxid}
SMART_ACTION_MOVE_Z = 202
Своего рода передвижение "по воздуху", то есть, полёт или движение в указанную точку
target X
target Y
target Z
Координаты, куда переместится моб
flymode если 1 - полетит, если 0 - побежит.
SMART_ACTION_SET_KD = 203
"Вручает" игрокам в инсте, где происходят событие, КД на этот инст. Не имеет параметров
SMART_ACTION_SET_SCENATIO_ID = 204
Если в первом параметре выставить ид нужного сценария и использовать на игрока (таргет), то при попадании игроком в инст, где должен происходить указанный сценарий, сценарий запустится автоматически.
Как найти ИД сценарий?
- В снифах в пакете SMSG_SCENARIO_STATE идет его ИД
- В дбц LfgDungeons.db2(но тут сложнее так как там их много)
SMART_ACTION_UPDATE_ACHIEVEMENT_CRITERIA = 205
Активирует обновление критерия ачивки. Эту штуку можно использовать посути вообще для всего: как засчет шагов в сценарии, так и комплит каких-либо других критериев.
Параметры:
uint32 type; - тип критерия
- ACHIEVEMENT_CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING = 168,
- ACHIEVEMENT_CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING = 169,
- ACHIEVEMENT_CRITERIA_TYPE_UPGRADE_GARRISON = 170,
- ACHIEVEMENT_CRITERIA_TYPE_START_GARRISON_MISSION = 171,
Или которые используются иногда для сценариев, если там нету засчета по килу моба или касту спела
- ACHIEVEMENT_CRITERIA_TYPE_SCRIPT_EVENT = 73
- ACHIEVEMENT_CRITERIA_TYPE_SCRIPT_EVENT_2 = 92
uint32 misc1;
uint32 misc2;
uint32 misc3;
Это всевозможные параметры засчета. В основном misc1 - это количество, например убито мобов 1, 2 или 3
SMART_ACTION_SUMMON_CONVERSATION = 206
Принудительно-кастомный сумон конверсейшина. Как показала практика, не все они сумонятся из спелов.
Параметры:
uint32 id; ид конверсейшина. Берется только из снифов
Координаты, куда суммонить конверсейшин. Если они не указаны, то суммон идет под игрока (таргет).
int32 targetX;
int32 targetY;
int32 targetZ;
Зачем координаты?
В инсте суммон идет строго в одну точку. (вдруг близы забыли про спелл))) Если это всплывающая табличка, то координаты лучше не указывать, тогда будет суммон под игрока.
SMART_ACTION_SUMMON_ADD_PLR_PERSONNAL_VISIBILE = 207
добавляет игрока в персональную фазу для этого моба. Иначе говоря, если использовать этот смарт на игрока, то ТОЛЬКО этот игрок сможет видеть данного моба.
SMART_ACTION_SUMMON_ARIATRIGGER = 208
Параметры такие же, что и в 206 (конверсатион)
SMART_ACTION_JOIN_LFG = 209
Присоеденить игрока к лфг
SMART_ACTION_IGNORE_PATHFINDING = 219,
Вкл/откл игнорирование поиска путей
SMART_ACTION_SUMMON_CREATURE_IN_PERS_VISIBILITY = 220
Суммон моба с инстантным добавлением игрока(суммонера) в персональную видимость. Важно! Таргет у данного смарта всегда 7(т.е. игрок). Моб суммонится строго по координатам из данных - targetX, targetY, targetZ, targetO.
Параметры:
uint32 misc1; id npc
uint32 misc2; тип призыва. пример: TEMPSUMMON_TIMED_DESPAWN
uint32 misc3; таймер(в мс).
uint32 misc4; добавить в лист суммонов
uint32 misc5; взять фазы призывателя при суммоне. вряд ли пригодится, так как суммон находится в персональной фазе с игроком.
uint32 misc6; 1 - суммонить в точку где стоит нпц. 0 - будут браться координаты из 7 таргета
SMART_ACTION_START_TIMED_ACHIEVEMENT = 221,
Запуск таймера у ачивмента
misc1 = Тип таймед критерии
misc2 - id критерии
SMART_ACTION_SEND_GO_VISUAL_ID = 222,
Отправка GO визуала по ид
misc1 = visual id
misc1 - misc6 = quest ID's
SMART_ACTION_COMPLETE_QUEST = 223,
Выполнить квест(условия). Больше нужно для комплита хайден квестов.
misc1 - misc6 = quest ID's
SMART_ACTION_SET_HEALTH_IN_PERCENT = 224,
Установить значение ХП от максимального в процентах
misc1 = значение
SMART_ACTION_UPDATE_PLAYER_PHASES = 225,
Принудительное обновление фаз у игрока. Например для применение кондишена для какой-то фазы, которая еще не применена у игрока, но условия(например есть аура) для ее применения выполнены.
SMART_ACTION_SET_SPECIAL_DATA = 226,
Описание в 80 ивенте
misc1; // значение misc2; // добавить +1 к текущему значению кастом даты у таргета
SMART_ACTION_SEND_LAST_INVOKER = 227,
отправить последнего инвокера указанной цели. пример: вы берете квест у нпц Х и вам необходимо, чтобы нпц У мог юзать вас в качестве таргета #7. Соответственно вы юзаете 227 экшн при взятии квеста у нпц Х и указываете в качестве таргета нпц У.
SMART_ACTION_KILLCREDIT_GO = 228,
Засчитать в квест использование ГО. Пример квеста: q38934
misc1; // ИД ГО
SMART_ACTION_MAKE_CASTER_AND_CAST_SPELL = 229,
на данный момент бесполезен
SMART_ACTION_MEET_QUEST_OBJECTIVE_AREATRIGGER = 230,
Использовать вместо устаревшего 15 экшена.
misc1; // Id квеста
SMART_ACTION_SUMMON_GO_IN_PERSONAL_VISIBILITY = 231,
суммон го в персональную видимость
misc1; // Id GO misc2; // despawn timer
SMART_ACTION_SET_PET_MODE = 232,
Set pet mode. Movement speed like player speed and creature can assist in fight
SMART_ACTION_ADD_PHASE_ID = 233,
Добавить фазу PhaseId.
misc1; // PhaseId
SMART_ACTION_REMOVE_PHASE_ID = 234,
Удалить фазу PhaseId.
misc1; // PhaseId
SMART_ACTION_EJECT_PASSENGER = 235,
Высадить пассажира.
misc1; // Ид пассажирского места
SMART_ACTION_MOVE_FALL = 236,
Начать падение
SMART_ACTION_HIDE_FOR_PLAYER = 237,
Исчезнуть для игрока
misc1; // Время до появления в мс
SMART_ACTION_SET_SCENARIO_STEP = 238,
Перейти на этап сценария
misc1; // ид этапа
SMART_ACTION_RUN_RANDOM_DATA = 239,
Отправить случайную дату от 1 до ...
misc1; // значение 1 misc2; // значение 2
SMART_ACTION_SET_QUEST_COMPLETITION_PHASE = 240,
Вкл\выкл опцию для применения CONDITION_QUEST_COMPLETITION для фазировок квестов. При отмене квеста автоматически сбрасывает эту опцию.
misc1; // квест ид misc2; // 1 - вкл, 0 - выкл
SMART_ACTION_RESET_DELAYED_ACTIONS = 241,
Сброс всех дэлэй операций
SMART_ACTION_RESET_TIMED_ACTIONLIST = 242,
Выполнить сброс time action листов
SMART_ACTION_SET_ESCORT_MODE = 243,
misc1; // радиус
Включить эскорт режим. Нпц будет делать паузу на вэйпоинтах до тех пор, пока игрока нет в установленном радиусе.
SMART_ACTION_SET_UPD_NON_AUTOMATIC_PHASE_TIMER = 244,
misc1; // таймер в мс
Смотреть описание 128 флага в Phase_definitions
SMART_ACTION_SET_IGNORE_PHASE_QUEST_UPDATE_MASK = 245,
misc1; // 1 вкл - 0 выкл
Вкл выкл игнорирование изменения статуса задания при обновлении фаз. Например: включаете этот параметр, у фазы 1234 условием является выполненный квест 9000, выполняете задание и фаза 1000 не наложится пока включен параметр. Если необходимо применить фазы, то отключаем параметр и принудительно обновляем фазы в ядре, смарт экшеном или спеллом.
SMART_ACTION_GO_TO_POINT_NEAR_OBJECT = 246,
// Go to point near object. Range, Walk(0 walk, 1 run)
target_type
SMART_TARGET_NONE = 0, // NONE, defaulting to invoket SMART_TARGET_SELF = 1, // Self cast SMART_TARGET_VICTIM = 2, // Our current target (ie: highest aggro) SMART_TARGET_HOSTILE_SECOND_AGGRO = 3, // Second highest aggro SMART_TARGET_HOSTILE_LAST_AGGRO = 4, // Dead last on aggro SMART_TARGET_HOSTILE_RANDOM = 5, // Just any random target on our threat list SMART_TARGET_HOSTILE_RANDOM_NOT_TOP = 6, // Any random target except top threat SMART_TARGET_ACTION_INVOKER = 7, // Unit who caused this Event to occur SMART_TARGET_POSITION = 8, // use xyz from event params SMART_TARGET_CREATURE_RANGE = 9, // CreatureEntry(0any), minDist, maxDist SMART_TARGET_CREATURE_GUID = 10, // guid, entry SMART_TARGET_CREATURE_DISTANCE = 11, // CreatureEntry(0any), maxDist SMART_TARGET_STORED = 12, // id, uses pre-stored target(list) SMART_TARGET_GAMEOBJECT_RANGE = 13, // entry(0any), min, max SMART_TARGET_GAMEOBJECT_GUID = 14, // guid, entry SMART_TARGET_GAMEOBJECT_DISTANCE = 15, // entry(0any), maxDist SMART_TARGET_INVOKER_PARTY = 16, // invoker's party members SMART_TARGET_PLAYER_RANGE = 17, // min, max SMART_TARGET_PLAYER_DISTANCE = 18, // maxDist SMART_TARGET_CLOSEST_CREATURE = 19, // CreatureEntry(0any), maxDist, dead? SMART_TARGET_CLOSEST_GAMEOBJECT = 20, // entry(0any), maxDist SMART_TARGET_CLOSEST_PLAYER = 21, // maxDist SMART_TARGET_ACTION_INVOKER_VEHICLE = 22, // Unit's vehicle who caused this Event to occur SMART_TARGET_OWNER_OR_SUMMONER = 23, // Unit's owner or summoner SMART_TARGET_THREAT_LIST = 24, // All units on creature's threat list SMART_TARGET_CLOSEST_ENEMY = 25, // maxDist SMART_TARGET_CLOSEST_FRIENDLY = 26, // maxDist SMART_TARGET_HOSTILE_RANDOM_PLAYER = 125, // Just any random target on our threat list player SMART_TARGET_HOSTILE_RANDOM_NOT_TOP_PLAYER = 126, // Any random target except top threat player SMART_TARGET_HOSTILE_RANDOM_AURA = 127, // Any random target with aura (entry, dist, topornot) SMART_TARGET_RANDOM_POSITION = 128, // Any random position (range, angle, distance) SMART_TARGET_TARGETUNIT = 129, // Target unit by GetTargetUnit() SMART_TARGET_INVOKERS_OWNER = 130, // Owner of unit who caused this event to occur SMART_TARGET_INVOKERS_SUMMON_WITH_ENTRY = 131, // NPC Id. Invokers summon with entry SMART_TARGET_INVOKERS_PASSENGER = 132, // SeatId. SMART_TARGET_SUMMONERS_SUMMON_WITH_ENTRY = 133, // NPC Id. Summoners summon with entry SMART_TARGET_SUMMON_WITH_ENTRY = 134, // NPC Id. Target summon with entry SMART_TARGET_VEHICLE_ACCESSORY = 135, // Seat id SMART_TARGET_ALL_PLAYERS_IN_MAP = 136, // All players in map SMART_TARGET_RANDOM_CREATURE_BY_ENTRY = 137, // Select random creature by entry in range. entry, distance, searchType( SEARCH_ALL = 0, SEARCH_ALIVE = 1, SEARCH_DEAD = 2)
SMART_TARGET_INVOKER_OWNER = 130,
Пример использования: если призванный игроком нпц(Х) суммонит нпц(У) и необходимо, чтобы нпц(У) взаимодействовало напрямую с игроком-призывателем нпц(Х), то юзается этот таргет.
SMART_TARGET_INVOKERS_SUMMON_WITH_ENTRY = 131,
Таргет суммон инвокера по энтри(ид нпц) target_param1 = id NPC
SMART_TARGET_INVOKERS_PASSENGER = 132,
Таргет пассажир инвокера target_param1 = id сиденья
SMART_TARGET_SUMMONERS_SUMMON_WITH_ENTRY = 133,
Таргет нпц-суммон призывателя по энтри target_param1 = id нпц
SMART_TARGET_SUMMON_WITH_ENTRY = 134,
Таргет нпц-суммон по энтри target_param1 = id нпц