Как вызывать
addon.Platform:GetLossOfControlCount()
Доступен напрямую через addon; зависимость не нужна.
Что делает
Прочитать документированное число активных потерь контроля защищённым вызовом через точку без аргументов. Требуется читаемое конечное неотрицательное целое. Ноль — полное пустое сканирование, API строк не требуется. RM ограничивает сканирование 256 строками и сверх этого бюджета возвращает «недоступно»; это не заявленный встроенный максимум. Отсутствующие, неудачные, ограниченные или повреждённые обязательные наблюдения остаются недоступными.
Аргументы
| Имя | Тип | Что делает |
|---|---|---|
self | RMPlatform | Адаптер платформы Rotation Master (неявно при вызове через двоеточие). |
Возвращает
| 1 | number | nil | Известное число активных — от нуля до бюджета сканирования RM — или nil, если недоступно. |
|---|---|---|
| 2 | string | nil | Причина по боевой политике, возможности, наблюдению или бюджету сканирования для числа nil. |
Издания
Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.
- Недоступно в этом издании (причина — во всплывающей подсказке)
- Только пока включены запасные реализации Blizzard для устаревших функций
| Игровой API | |||||
|---|---|---|---|---|---|
C_LossOfControl | |||||
canaccessvalue |
Секретные значения (Retail и Forever)
В Retail и Forever игра передаёт аддонам секретные значения. Этот помощник проверяет то, что читает (addon.Platform:CanReadValue), и вместо секретного значения, которое нельзя сравнить, возвращает nil с причиной, например restricted-value. Считайте nil недоступным значением, а не ложью.
Пример
local count = addon.Platform:GetLossOfControlCount()
if count == nil then return nil end
return count > 0Исходный код
Platform/loss_of_control.lua, строка 16. В игре только для чтения; «Дублировать» создаёт редактируемую копию.
Platform.loss_of_control.GetLossOfControlCount(self)
local policy=self:GetCombatDataPolicy()
if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
local namespace=C_LossOfControl
if not self:CanReadValue(namespace) then return nil,'restricted-value' end
if type(namespace)~='table' then return nil,'missing-api' end
local methodOk,method=pcall(function() return namespace.GetActiveLossOfControlDataCount end)
if not methodOk then return nil,'api-error' end
if not self:CanReadValue(method) then return nil,'restricted-value' end
if type(method)~='function' then return nil,'missing-api' end
local ok,count=pcall(method)
if not ok then return nil,'api-error' end
if not self:CanReadValue(count) then return nil,'restricted-value' end
if canaccessvalue and not canaccessvalue(count) then return nil,'restricted-value' end
if count==nil then return nil,'loss-of-control-count-unavailable' end
if type(count)~='number' or count~=count or count==math.huge or count==-math.huge or count<0 or count%1~=0 then return nil,'invalid-api-result' end
if count>256 then return nil,'loss-of-control-budget-exceeded' end
return count




