Вернуть информацию о контекстном действии. Контекстное действие может находится в списке контекстных действий аватара, но в то же время быть недоступным (например цель не в зоне действия или не в той полусфере игрока). Поле enabled принимает значение true, если действие доступно и false, если не доступно. В случае изменения поля, на клиент приходит EVENT_CONTEXT_ACTIONS_CHANGED.
Внимание! Есть более оптимииованный вариант: avatar.GetContextActionShortInfo( id ) и avatar.GetContextActionCooldown( id ).
-- система:
UIState/GameState
функция имеет основную реализация в логике и расширенную реализацию в UI
-- библиотека
avatar
-- объявление:
function GetContextActionInfo( id )
-- параметры
id: ObjectId - идентификатор контекстного действия
-- возвращаемые значения
nil, если контекстного действия нет
table, если действие есть - информация по действию
id: ObjectId - идентификатор контекстного действия
priority: number (int) - приоритет действия
name: WString - название
description: ValuedText or nil - описание с подставленными текущими значениями параметров
--{ часть таблицы, реализованная только для UI
image: TextureId - идентификатор текстуры для иконки
--}
enabled: boolean - true, если действие доступно
sysType: string (строковый enum "ENUM_CONTEXT_ACTION_TYPE_XXX") - название типа контекстного действия
objectId: ObjectId or nil - идентификатор объекта, если он есть, к которому применяется контекстное действие
spellId: SpellId or nil - идентификатор ресурса заклинания, которое запустится при использовании этого действия
itemId: ObjectId or nil - идентификатор предмета, который будет использован
cooldown: Table or nil - информация о кулдауне, если доступна. Таблица с полями:
durationMs: number(integer) - длительность кулдауна в миллисекундах
remainingMs: number(integer) - сколько осталось кулдауна в миллисекундах
pointInfo: table or nil - если это контекстное действие требует точку установки, то таблица с полями:
range: number (float) - максимальное растояние до цели, на котором действует (0, если не указано)
minRange: number (float) - минимальное растояние до цели, на котором действует (0, если не указано)
radius: number (float) - радиус действия AOE от точки применения (0, если не указано)
sysNameAEMark: string or nil - для АЕ спеллов имя текстуры AEMark, которую нужно визуализировать (nil, если не указана)
-- пример использования
local actionInfo = avatar.GetContextActionInfo( id )
if actionInfo then
local enabled = actionInfo.enabled
end
Типы контекстных действий:
"ENUM_CONTEXT_ACTION_TYPE_UNKNOWN" - тип не известен "ENUM_CONTEXT_ACTION_TYPE_SPELL" - запустить заклинание "ENUM_CONTEXT_ACTION_TYPE_EXPLOIT" - использовать устройство "ENUM_CONTEXT_ACTION_TYPE_LOOT" - собрать лут "ENUM_CONTEXT_ACTION_TYPE_NPC_TALK" - поговорить с NPC "ENUM_CONTEXT_ACTION_TYPE_ITEM" - использовать предмет из сумки