Как вызывать
Conditions.hero_talent.listedSpec(spec)
Запишите зависимость Conditions.hero_talent.listedSpec и вызывайте её по этому имени. Вызов через пространство имён не передаёт self: используйте вызов через двоеточие или передайте объект сами.
Что делает
Returns the specialization ID when it is one of the player's own class's specializations, which are the only ones whose hero talent trees the game can list. Reads the class from UnitClass and the choices from Platform:GetClassSpecializationChoices.
Аргументы
| Имя | Тип | Что делает |
|---|---|---|
spec | number | nil | Specialization ID of the rotation being edited. |
Возвращает
| 1 | number | nil | The same ID when the player's class has it; nil otherwise, or when the class or the list cannot be read. |
|---|
Издания
Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.
- Недоступно в этом издании (причина — во всплывающей подсказке)
- Только пока включены запасные реализации Blizzard для устаревших функций
| Игровой API | |||||
|---|---|---|---|---|---|
UnitClass |
Секретные значения (Retail и Forever)
В Retail и Forever игра передаёт аддонам секретные значения. Этот помощник проверяет то, что читает (addon.Platform:CanReadValue), и вместо секретного значения, которое нельзя сравнить, возвращает nil с причиной, например restricted-value. Считайте nil недоступным значением, а не ложью.
Как его вызывает аддон
- Древо талантов героя (widget)
local listed = type(platform.GetHeroTreeChoices) == "function" and platform:GetHeroTreeChoices(listedSpec(spec))
Исходный код
Conditions/hero_talent.lua, строка 54. В игре только для чтения; «Дублировать» создаёт редактируемую копию.
Conditions.hero_talent.listedSpec(spec)
local platform = addon.Platform
if type(spec) ~= "number" or type(platform.GetClassSpecializationChoices) ~= "function" then return nil end
local ok, _, _, classID = pcall(UnitClass, "player")
if not ok or not platform:CanReadValue(classID) then return nil end
for _, choice in ipairs(platform:GetClassSpecializationChoices(classID) or {}) do
if choice.id == spec then return spec end
end




