Appel
addon.Platform:GetRuneCooldownObservation(index)
Disponible directement via addon ; aucune dépendance n'est nécessaire.
Ce qu'elle fait
Lit un tuple protégé GetRuneCooldown pour un emplacement natif exact. Normalise ready, start et duration indépendamment : ready exige un booléen lisible, tandis que chaque durée exige un nombre lisible et fini et conserve les valeurs signées, fractionnaires et nulles. Chaque champ indisponible porte son propre motif. Un tuple vide réussi donne un enregistrement partiel ; une capacité manquante, une politique ou un échec de l'appel natif donne nil. Ne déduit jamais ready des durées ni les durées de ready. Mettez cet enregistrement complet en cache côté appelant pour partager une seule observation entre les prédicats de nombre de runes et de temps de recharge.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
self | RMPlatform | Adaptateur de plateforme Rotation Master (implicite avec un appel par deux-points). |
index | number | Emplacement de rune natif exact, entier de 1 à 6. |
Retours
| 1 | table | nil | Enregistrement partiel contenant ready ou readyReason, start ou startReason, et duration ou durationReason ; nil uniquement si la requête elle-même est indisponible. |
|---|---|---|
| 2 | string | nil | Motif de politique, de validation de l'emplacement, de capacité ou de disponibilité de l'appel natif pour un enregistrement nil. |
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
- Indisponible sur cette édition (la raison figure dans l'infobulle)
- Uniquement tant que les solutions de repli de Blizzard pour les fonctions obsolètes sont actives
| API du jeu | |||||
|---|---|---|---|---|---|
GetRuneCooldown |
Valeurs secrètes (Retail et Forever)
Sur Retail et Forever, le jeu transmet aux addons des valeurs secrètes. Cette fonction utilitaire vérifie ce qu'elle lit (addon.Platform:CanReadValue) et renvoie nil avec une raison telle que restricted-value au lieu d'une valeur secrète qu'elle ne peut pas comparer. Traitez nil comme indisponible, pas comme false.
Exemple
local rune = addon.Platform:GetRuneCooldownObservation(1)
if not rune or rune.ready == nil then return nil end
return rune.readyDépendances
numberField→Platform.runes.numberFieldvalidIndex→Platform.runes.validIndex
Source
Platform/runes.lua, ligne 72. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
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




