Chiamala come
addon.Platform:IsSpellReady(spell, now)
Disponibile direttamente tramite addon; non serve alcuna dipendenza.
Cosa fa
Verifica se un incantesimo può essere consigliato ora, ammettendo un incantesimo il cui tempo di recupero residuo termina con il tempo di recupero globale in corso. Su Retail e Forever, dove i tempi di recupero sono segreti in combattimento, la disponibilità deriva invece dai flag isEnabled, isActive e isOnGCD, che non sono mai segreti. Verifica solo la disponibilità rispetto al tempo di recupero; non verifica se l'incantesimo è appreso, la portata o la disponibilità di risorse. Passa il tempo di valutazione da evalStart o GetTime().
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
self | RMPlatform | Adattatore di piattaforma di Rotation Master. Un riferimento con punto richiede addon.Platform come primo argomento; una chiamata con due punti lo fornisce implicitamente. |
spell | number | string | ID dell'incantesimo o nome riconosciuto dal client di cui controllare il tempo di recupero. |
now | number | Tempo di valutazione attuale in secondi da GetTime(), di norma evalStart. |
Valori restituiti
| 1 | boolean | nil | True quando è pronto entro la fine del tempo di recupero globale; false quando il suo tempo di recupero ne impedisce la raccomandazione; nil quando il client non può fornire un risultato leggibile. |
|---|---|---|
| 2 | string | nil | Motivo di indisponibilità o di convalida quando il risultato è nil. |
Edizioni
Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.
- Non disponibile su quell'edizione (il motivo è nel suggerimento)
- Solo mentre sono attivi i ripieghi di Blizzard per le API deprecate
| API di gioco | |||||
|---|---|---|---|---|---|
GetTime |
Valori segreti (Retail e Forever)
Su Retail e Forever il gioco fornisce agli addon valori segreti. Questa funzione di supporto controlla ciò che legge (addon.Platform:CanReadValue) e restituisce nil con un motivo come restricted-value invece di un valore segreto che non può confrontare. Considera nil come non disponibile, non come false.
Esempio
local ready = addon.Platform:IsSpellReady(value.spell, evalStart)
if ready == nil then return nil end
return readyDipendenze
cooldownValues→Platform.spells.cooldownValuesflagReadiness→Platform.spells.flagReadinessgcdSpell(builtin:Platform/spells.lua:gcdSpell)
Sorgente
Platform/spells.lua, riga 575. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
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




