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

На главную


avatar.GetSpellRequirements( id )

Возвращает информацию о требованиях к использованию заклинания.

-- библиотека
avatar

-- объявление:
function GetSpellRequirements( id )

-- параметры
id: SpellId - Id умения

-- возвращаемые значения
table or nil, если заклинание есть, таблица с полями:
  casterConditions: table of tables (requirements) - список условий на кастующем
  casterResources: table of tables (requirements) - список ресурсов (условий присутствия ресурса) на кастующем
  targetConditions: table of tables (requirements) - список условий на цели
  targetResources: table of tables (requirements) - список ресурсов (условий присутствия ресурса) на цели

table of tables (requirements) - индексированный с 0 список таблиц - описаний требований.

Каждое требование предстовляет собой таблицу с полями:

  type: number (enum AFCT_...) or nil - Если требование составное, то значение перечисления enum AFCT_..., у простых требований это поле отсутствует.

  Остальные поля в зависимости от type:

Составные требования:
  type: number (enum AFCT_...) - Если требование составное, то значение перечисления enum AFCT_.... У таких требований есть список дочерних требований.
  childs: table of requirements - список дочерних требований, если есть

Простые требования:
  type: nil - у простых требований это поле отсутствует.
  cause: number (int) - код ошибки.
  sysCause: string (enum "ENUM_ActionFailCause_...") - строковый код ошибки.
  дополнительные параметры см. в EVENT_ACTION_FAILED_SPELL

Описание требований: "ENUM_ActionFailCause_...".

Дополнительные параметры как в EVENT_ACTION_FAILED_SPELL.

enum AFCT_...:

AFCT_Or - любое из требований может выполниться,
AFCT_And - все требования должны выполняться,
AFCT_Not - дочернее требование не должно выполняться

-- пример использования
local spellbook = avatar.GetSpellBook()
local reqs = avatar.GetSpellRequirements( spellbook[0] )

local firstRequirement = nil

if reqs then
  local req = reqs.casterConditions[0]
  if req then

    if req.type then

      req = req.childs[ 0 ]
      if req then
        firstRequirement = req.sysCause
      end

    else
      firstRequirement = req.sysCause
    end
  end
end

Search: "CategoryLuaApi" "CategorySpellbook"

AbilityId
EnumSubElement
EventAbilitiesElementAdded
EventSpellbookChanged
EventSpellbookElementAdded
EventSpellbookElementChanged
EventSpellbookElementEffect
FunctionAvatarGetAbilities
FunctionAvatarGetAbilityInfo
FunctionAvatarGetBuffLinkedSpell
FunctionAvatarGetSpellBook
FunctionAvatarGetSpellInfo
FunctionAvatarGetSpellObjectInfo
FunctionAvatarGetSpellRequirements
FunctionAvatarRunAESpell
FunctionAvatarRunSpell
FunctionAvatarRunTargetSpell
SpellId


CategoryLuaApi CategoryFunction CategorySpellbook CategoryAvatar

На главную