Справочник › Справочник функций › Platform

Platform.loss_of_control.GetLossOfControlCount

общедоступный

Как вызывать

addon.Platform:GetLossOfControlCount()

Доступен напрямую через addon; зависимость не нужна.

Что делает

Прочитать документированное число активных потерь контроля защищённым вызовом через точку без аргументов. Требуется читаемое конечное неотрицательное целое. Ноль — полное пустое сканирование, API строк не требуется. RM ограничивает сканирование 256 строками и сверх этого бюджета возвращает «недоступно»; это не заявленный встроенный максимум. Отсутствующие, неудачные, ограниченные или повреждённые обязательные наблюдения остаются недоступными.

Аргументы

ИмяТипЧто делает
selfRMPlatformАдаптер платформы Rotation Master (неявно при вызове через двоеточие).

Возвращает

1number | nilИзвестное число активных — от нуля до бюджета сканирования RM — или nil, если недоступно.
2string | nilПричина по боевой политике, возможности, наблюдению или бюджету сканирования для числа nil.

Издания

Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.

  • Недоступно в этом издании (причина — во всплывающей подсказке)
  • Только пока включены запасные реализации Blizzard для устаревших функций
Игровой APIClassic EraTBC AnniversaryClassic ProgressionForeverRetail
C_LossOfControlClassic EraTBC AnniversaryClassic ProgressionForeverRetail
canaccessvalueClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Секретные значения (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

Назад: Справочник функций