Как вызывать
addon.Platform:GetRuneTypeObservation(index)
Доступен напрямую через addon; зависимость не нужна.
Что делает
Наблюдать одну точную встроенную ячейку руны через GetRuneType с единственным аргументом-индексом. Нужен читаемый конечный положительный целый тип; известные будущие числовые типы остаются отличными от выбранного, а «Смерть» — точный тип, а не подстановочный. Отсутствующие, неудачные, ограниченные или повреждённые наблюдения остаются недоступными. Запросы класса, юнита, количества или выведенной базовой руны не добавляются.
Аргументы
| Имя | Тип | Что делает |
|---|---|---|
self | RMPlatform | Адаптер платформы Rotation Master (неявно при вызове через двоеточие). |
index | number | Точная целочисленная встроенная ячейка руны от 1 до 6. |
Возвращает
| 1 | number | nil | Читаемый конечный положительный целый тип руны или nil, если недоступно. |
|---|---|---|
| 2 | string | nil | Причина по политике, проверке ячейки или недоступности обязательного наблюдения для типа nil. |
Издания
Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.
- Недоступно в этом издании (причина — во всплывающей подсказке)
- Только пока включены запасные реализации Blizzard для устаревших функций
| Игровой API | |||||
|---|---|---|---|---|---|
GetRuneType |
Секретные значения (Retail и Forever)
В Retail и Forever игра передаёт аддонам секретные значения. Этот помощник проверяет то, что читает (addon.Platform:CanReadValue), и вместо секретного значения, которое нельзя сравнить, возвращает nil с причиной, например restricted-value. Считайте nil недоступным значением, а не ложью.
Пример
local death = 0
for index = 1, 6 do
local runeType = addon.Platform:GetRuneTypeObservation(index)
if runeType == nil then return nil end
if runeType == 4 then death = death + 1 end -- 4 is a Death rune
end
return death >= 2Зависимости
numberField→Platform.runes.numberFieldvalidIndex→Platform.runes.validIndex
Исходный код
Platform/runes.lua, строка 48. В игре только для чтения; «Дублировать» создаёт редактируемую копию.
Platform.runes.GetRuneTypeObservation(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=GetRuneType
if type(api)~='function' then return nil,'missing-api' end
local ok,value=pcall(api,index)
if not ok then return nil,'api-error' end
local runeType,why=numberField(self,value,'rune-type-unavailable')
if runeType==nil then return nil,why end
if runeType<=0 or runeType%1~=0 then return nil,'invalid-api-result' end
return runeType




