Вернуть информацию о контекстном действии. Контекстное действие может находится в списке контекстных действий аватара, но в то же время быть недоступным (например цель не в зоне действия или не в той полусфере игрока). Поле 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" - использовать предмет из сумки