Aufruf als
addon:GetConditionThreatCount(minimum, cache)
Direkt über addon verfügbar; keine Abhängigkeit nötig.
Was sie bewirkt
Nur Einheiten mit GUID-Schlüssel zählen, die bereits in der beobachteten Momentaufnahme der Zugehörigkeit stehen. Vor Verwendung des veröffentlichten Bedrohungsbeobachters die aktuelle Identität der Kennung prüfen; bekannt abwesende oder wiederverwendete Kennungen werden ausgeschlossen, ohne Ersatz hinzuzufügen. Vollständige Identitäts- und Bedrohungsbeobachtungen teilen sich nur den übergebenen Auswertungs-Cache, während die Zugehörigkeit neu durchlaufen wird. Bekannte Nicht-Feinde oder optionale nil-Bedrohung werden nicht gezählt; erforderliche unlesbare, fehlerhafte oder fehlgeschlagene Fakten machen das gesamte Ergebnis nicht verfügbar. Dies zählt keine vollständige Mitgliederliste auf, wendet keinen Reichweitenfilter an und ändert keine verfolgten Datensätze.
Argumente
| Name | Typ | Was sie bewirkt |
|---|---|---|
self | RMAddon | Addon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit). |
minimum | number | Endlicher minimaler nativer Bedrohungsstatus; vorzeichenbehaftete und gebrochene Schwellenwerte bleiben erhalten. |
cache | table | nil | Vom Aufrufer verwalteter Beobachtungs-Cache der Auswertung; nil fragt neu ab. |
Rückgabewerte
| 1 | number | nil | Vollständige nichtnegative beobachtete Anzahl einschließlich null oder nil, wenn nicht verfügbar. |
|---|---|---|
| 2 | string | nil | Verfügbarkeitsgrund aus Richtlinie, Momentaufnahme, Identitäts- oder Bedrohungsbeobachtung. |
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.
Sie liest keine Spiel-API direkt.
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.
Wie das Addon sie aufruft
- Bedrohungsanzahl (evaluate)
local count,reason=addon:GetConditionThreatCount(value.threat-1,cache)
Abhängigkeiten
finite→Core.threat_count_conditions.finitereadField→Core.threat_count_conditions.readField
Quelle
Core/threat_count_conditions.lua, Zeile 50. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.
Core.threat_count_conditions.GetConditionThreatCount(self, minimum, cache)
local platform=self.Platform
local policy=platform:GetCombatDataPolicy()
if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
local valid,issue=finite(platform,minimum)
if not valid then return nil,issue end
if not platform:CanReadValue(cache) then return nil,'restricted-value' end
if cache~=nil and type(cache)~='table' then return nil,'invalid-threat-count-cache' end
if policy=='restricted' then return self:GetConditionNameplateThreatCount(minimum,cache) end
local snapshot,why=readField(platform,self,'unitsInRange')
if why then return nil,why end
if type(snapshot)~='table' then return nil,'unit-snapshot-unavailable' end
local count=0
for guid,entity in pairs(snapshot) do
if not platform:CanReadValue(guid) or not platform:CanReadValue(entity) then return nil,'restricted-value' end
if type(guid)~='string' or guid=='' or type(entity)~='table' then return nil,'invalid-unit-snapshot' end
local unit,reason=readField(platform,entity,'unit')
if reason then return nil,reason end
if type(unit)~='string' or unit=='' then return nil,'invalid-unit-snapshot' end
-- The existing forecast identity observer is exactly existence + GUID;
-- it consumes no health, history, provider or clock facts.
local observeIdentity=platform.GetHealthForecastIdentityObservation
if type(observeIdentity)~='function' then return nil,'missing-api' end
local current,identityReason=addon.Functions.cache.getCached(cache,observeIdentity,platform,unit)
if not platform:CanReadValue(current) then return nil,'restricted-value' end
if current==nil then return nil,identityReason or 'unit-guid-unavailable' end
if current~=false then
if type(current)~='string' or current=='' then return nil,'invalid-unit-identity' end
-- A recycled token is excluded; its replacement is not new membership.
if current==guid then
local observeThreat=platform.GetUnitThreatObservation
if type(observeThreat)~='function' then return nil,'missing-api' end
local status,threatReason=addon.Functions.cache.getCached(cache,observeThreat,platform,unit)
if not platform:CanReadValue(status) then return nil,'restricted-value' end
if status==nil then return nil,threatReason or 'threat-data-unavailable' end
if status~=false then
local readable,problem=finite(platform,status)
if not readable then return nil,problem end
if status>=minimum then count=count+1 end
end
end
end
end
return count