Aufruf als
addon.Platform:IsSpellReady(spell, now)
Direkt über addon verfügbar; keine Abhängigkeit nötig.
Was sie bewirkt
Prüft, ob ein Zauber jetzt empfohlen werden kann, wobei ein Zauber zugelassen wird, dessen verbleibende Abklingzeit mit der aktuellen globalen Abklingzeit endet. In Retail und Forever, wo Abklingzeiten im Kampf geheim sind, ergibt sich die Bereitschaft stattdessen aus den nie geheimen Flags isEnabled, isActive und isOnGCD. Geprüft wird nur die Bereitschaft der Abklingzeit, nicht der Lernstatus, die Reichweite oder ob genug Ressourcen vorhanden sind. Übergeben Sie die Auswertungszeit aus evalStart oder GetTime().
Argumente
| Name | Typ | Was sie bewirkt |
|---|---|---|
self | RMPlatform | Plattformadapter von Rotation Master. Ein Punktaufruf erfordert addon.Platform als erstes Argument; ein Doppelpunktaufruf übergibt ihn implizit. |
spell | number | string | Zauber-ID oder vom Client erkannter Zaubername, dessen Abklingzeit geprüft werden soll. |
now | number | Aktuelle Auswertungszeit in Sekunden aus GetTime(), normalerweise evalStart. |
Rückgabewerte
| 1 | boolean | nil | True, wenn bis zum Ende der globalen Abklingzeit bereit; false, wenn die eigene Abklingzeit eine Empfehlung verhindert; nil, wenn der Client kein lesbares Ergebnis liefern kann. |
|---|---|---|
| 2 | string | nil | Verfügbarkeits- oder Validierungsgrund, wenn das Ergebnis nil ist. |
Editionen
Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.
- Auf dieser Edition nicht verfügbar (den Grund nennt der Tooltip)
- Nur, solange Blizzards Ersatz für veraltete Funktionen aktiv ist
| Spiel-API | |||||
|---|---|---|---|---|---|
GetTime |
Geheime Werte (Retail und Forever)
Auf Retail und Forever übergibt das Spiel Addons geheime Werte. Diese Hilfsfunktion prüft, was sie liest (addon.Platform:CanReadValue), und gibt statt eines geheimen Werts, den sie nicht vergleichen kann, nil mit einem Grund wie restricted-value zurück. Behandeln Sie nil als nicht verfügbar, nicht als false.
Beispiel
local ready = addon.Platform:IsSpellReady(value.spell, evalStart)
if ready == nil then return nil end
return readyAbhängigkeiten
cooldownValues→Platform.spells.cooldownValuesflagReadiness→Platform.spells.flagReadinessgcdSpell(builtin:Platform/spells.lua:gcdSpell)
Quelle
Platform/spells.lua, Zeile 575. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.
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




