Таблица, представляющая описание требований (например к использованию заклинания). Содержит список таблиц:
RequirementsTable: table of tables (requirements) - индексированный с 0 список таблиц - описаний требований. Каждое требование представляет собой таблицу с полями: type: number (enum AFCT_...) or nil - Если требование составное, то значение перечисления enum AFCT_..., у простых требований это поле отсутствует. Остальные поля в зависимости от type: Составные требования: type: number (enum AFCT_...) - Если требование составное, то значение перечисления enum AFCT_.... У таких требований есть список дочерних требований. isInNotPredicate: boolean - находимся ли мы сейчас в требовании Not - выполнение текущего требования инвертировано success: boolean - выполняется ли это требование childs: table of requirements - список дочерних требований, если есть Простые требования: type: nil - у простых требований это поле отсутствует. success: boolean - выполняется ли это требование cause: number (int) - код ошибки. sysCause: string (enum "ENUM_ActionFailCause_...") - строковый код ошибки. isInNotPredicate: boolean - находимся ли мы сейчас в требовании Not - выполнение текущего требования инвертировано text: WString or nil - требования определенное в виде простой строки дополнительные параметры см. в EVENT_ACTION_FAILED_SPELL number: number or nil number2: number or nil money: number or nil - количество денег в меди name: WString or nil rank: number or nil - ранг заклинания или умения, если он больше 1 dress: number or nil itemClass: WString or nil sysRace: string or nil sysPsionicContactType: string or nil reputationLevel: number or nil
Описание требований: "ENUM_ActionFailCause_...".
Дополнительные параметры как в EVENT_ACTION_FAILED_SPELL.
enum AFCT_...:
AFCT_Or - любое из требований может выполниться AFCT_And - все требования должны выполняться AFCT_Pet - все требования должны выполняться на ПИТОМЦЕ 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