Пользовательские дополнения

На главную


avatar.GetContextActionInfo( id )

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

Search: "CategoryLuaApi" "CategoryContextActions"

CategoryContextActions
EventContextActionPointStarted
EventContextActionsChanged
FunctionAvatarGetContextActionCooldown
FunctionAvatarGetContextActionInfo
FunctionAvatarGetContextActionShortInfo
FunctionMountGetActiveContextActions


CategoryLuaApi CategoryFunction CategoryContextActions CategoryAvatar

На главную