Référence › Référence des fonctions › Platform

Platform.runes.GetRuneCooldownObservation

publique

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

NomTypeCe qu'elle fait
selfRMPlatformAdaptateur de plateforme Rotation Master (implicite avec un appel par deux-points).
indexnumberEmplacement de rune natif exact, entier de 1 à 6.

Retours

1table | nilEnregistrement partiel contenant ready ou readyReason, start ou startReason, et duration ou durationReason ; nil uniquement si la requête elle-même est indisponible.
2string | nilMotif 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 jeuClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GetRuneCooldownClassic EraTBC AnniversaryClassic ProgressionForeverRetail

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.ready

Dépendances

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

Retour à Référence des fonctions