Возвращает информацию о требованиях к использованию заклинания.
-- библиотека 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