Appel
addon.Platform:IsSpellReady(spell, now)
Disponible directement via addon ; aucune dépendance n'est nécessaire.
Ce qu'elle fait
Vérifie si un sort peut être recommandé maintenant, en acceptant un sort dont le temps de recharge restant se termine avec le temps de recharge global actuel. Sur Retail et Forever, où les durées de recharge sont secrètes en combat, la disponibilité provient plutôt des indicateurs isEnabled, isActive et isOnGCD, qui ne sont jamais secrets. Seule la disponibilité du temps de recharge est vérifiée ; ni l'apprentissage, ni la portée, ni la ressource ne sont vérifiés. Passez le temps d'évaluation depuis evalStart ou GetTime().
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
self | RMPlatform | Adaptateur de plateforme Rotation Master. Une référence par point exige addon.Platform comme premier argument ; un appel par deux-points le fournit implicitement. |
spell | number | string | ID de sort, ou nom de sort reconnu par le client, dont le temps de recharge doit être vérifié. |
now | number | Temps d'évaluation actuel en secondes, issu de GetTime(), normalement evalStart. |
Retours
| 1 | boolean | nil | true si le sort est prêt d'ici la fin du temps de recharge global ; false si son propre temps de recharge empêche la recommandation ; nil si le client ne peut pas fournir de résultat lisible. |
|---|---|---|
| 2 | string | nil | Motif de disponibilité ou de validation lorsque le résultat est 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 | |||||
|---|---|---|---|---|---|
GetTime |
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 ready = addon.Platform:IsSpellReady(value.spell, evalStart)
if ready == nil then return nil end
return readyDépendances
cooldownValues→Platform.spells.cooldownValuesflagReadiness→Platform.spells.flagReadinessgcdSpell(builtin:Platform/spells.lua:gcdSpell)
Source
Platform/spells.lua, ligne 575. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
Platform.spells.IsSpellReady(self, spell, now)
if not self:CanReadValue(now) then return nil, "restricted-value" end
if type(now)~="number" or now~=now or now==math.huge or now==-math.huge then
return nil, "invalid-time"
end
local start,duration,enabled,reason,active,onGCD=cooldownValues(self,spell)
if start==nil then
if active==nil then return nil,reason end
return flagReadiness(self,enabled,active,onGCD,now)
end
if not enabled then return false end
local expires=start+duration
if duration==0 or expires<=now then return true end
if not gcdSpell then self:GetGlobalCooldown() end
local gcdStart,gcdDuration,gcdEnabled,why,gcdActive=cooldownValues(self,gcdSpell)
if gcdStart==nil then
-- The GCD's times are hidden: one known not to be running cannot
-- cover this spell's own, still running, cooldown.
if gcdActive~=nil and (not gcdEnabled or not gcdActive) then return false end
return nil,why
end
if not gcdEnabled or gcdDuration==0 then return false end
-- modRate controls cooldown animation; API timestamps/duration already
-- describe expiration in GetTime seconds, so do not divide them by it.
local gcdExpires=gcdStart+gcdDuration
return gcdExpires>now and expires<=gcdExpires+0.001




