Smart scripts: различия между версиями

Материал из Uwow
Перейти к навигации Перейти к поиску
Строка 85: Строка 85:
==== SMART_EVENT_ON_FIND_OBJECT_IN_RANGE    = 79, ====
==== SMART_EVENT_ON_FIND_OBJECT_IN_RANGE    = 79, ====
При обнаружении объекта в радиусе
При обнаружении объекта в радиусе
'''param1; // Радиус'''
'''param1; // Радиус'''
 
'''param2; // Тип(1 - игрок, 2 - НПЦ, 3 - ГО)'''


'''param2; // Тип(1 - игрок, 2 - НПЦ, 3 - ГО)'''
'''param3; // Энтри(НПЦ ИД, ИД ГО, 0 - если игрок)'''
'''param3; // Энтри(НПЦ ИД, ИД ГО, 0 - если игрок)'''


'''param4; // Время до повтора'''
'''param4; // Время до повтора'''


=== action_type ===
=== action_type ===

Версия от 01:31, 27 февраля 2019

smart_scripts - таблица всевозможных действий существ. (ниже только наши "специфические")

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; // Время до повтора

action_type

SMART_ACTION_MOVE_FORWARD = 46

Движение вперед

misc1 = Расстояние 
misc2 = 1 вкл бег, 0 выкл бег

SMART_ACTION_MOVE_TO_POS = 69

Движение в точку

misc1 = pointid(не обязательно)
misc2 = 1 вкл бег, 0 выкл бег

SMART_ACTION_RANDOM_MOVE = 89

Случайное передвижение

misc1 = расстояние
misc2 = 1 вкл бег, 0 выкл бег

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

Если в первом параметре выставить ид нужного сценария и использовать на игрока (таргет), то при попадании игроком в инст, где должен происходить указанный сценарий, сценарий запустится автоматически.

Как найти ИД сценарий?
  1. В снифах в пакете SMSG_SCENARIO_STATE идет его ИД
  2. В дбц 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 = значение


target_type

SMART_TARGET_INVOKER_OWNER = 130,

Пример использования: если призванный игроком нпц(Х) суммонит нпц(У) и необходимо, чтобы нпц(У) взаимодействовало напрямую с игроком-призывателем нпц(Х), то юзается этот таргет.