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

Platform.runes.GetRuneCooldownObservation

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

Как вызывать

addon.Platform:GetRuneCooldownObservation(index)

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

Что делает

Прочитать один защищённый кортеж GetRuneCooldown для точной встроенной ячейки. ready, start и duration нормализуются независимо: для ready нужен читаемый логический тип, для каждого времени — читаемое конечное число с сохранением знаковых, дробных и нулевых значений. У каждого недоступного поля своя причина. Успешный пустой кортеж даёт частичную запись; отсутствие возможности, политика или сбой встроенного вызова дают nil. ready никогда не выводится из времени, а время — из ready. Кэшируйте эту полную запись у вызывающего, чтобы одно наблюдение разделялось предикатами числа рун и восстановления.

Аргументы

ИмяТипЧто делает
selfRMPlatformАдаптер платформы Rotation Master (неявно при вызове через двоеточие).
indexnumberТочная целочисленная встроенная ячейка руны от 1 до 6.

Возвращает

1table | nilЧастичная запись с ready или readyReason, start или startReason и duration или durationReason; nil только если сам запрос недоступен.
2string | nilПричина по политике, проверке ячейки, возможности или недоступности встроенного вызова для записи nil.

Издания

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

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

Секретные значения (Retail и Forever)

В Retail и Forever игра передаёт аддонам секретные значения. Этот помощник проверяет то, что читает (addon.Platform:CanReadValue), и вместо секретного значения, которое нельзя сравнить, возвращает nil с причиной, например restricted-value. Считайте nil недоступным значением, а не ложью.

Пример

local rune = addon.Platform:GetRuneCooldownObservation(1)
if not rune or rune.ready == nil then return nil end
return rune.ready

Зависимости

Исходный код

Platform/runes.lua, строка 72. В игре только для чтения; «Дублировать» создаёт редактируемую копию.

Platform.runes.GetRuneCooldownObservation(self, index)
    local policy=self:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    local valid,reason=validIndex(self,index)
    if not valid then return nil,reason end
    local api=GetRuneCooldown
    if type(api)~='function' then return nil,'missing-api' end
    local ok,tuple=pcall(function() return {api(index)} end)
    if not ok then return nil,'api-error' end
    local record={}
    record.start,record.startReason=numberField(self,tuple[1],'rune-start-unavailable')
    record.duration,record.durationReason=numberField(self,tuple[2],'rune-duration-unavailable')
    local ready=tuple[3]
    if not self:CanReadValue(ready) then record.readyReason='restricted-value'
    elseif ready==nil then record.readyReason='rune-ready-unavailable'
    elseif type(ready)~='boolean' then record.readyReason='invalid-api-result'
    else record.ready=ready end
    return record

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