Chiamala come
addon:GetConditionThreatCount(minimum, cache)
Disponibile direttamente tramite addon; non serve alcuna dipendenza.
Cosa fa
Conta solo le unità indicizzate per GUID già presenti nell'istantanea dei membri osservata. Verifica l'identità attuale dell'identificativo prima di usare l'osservatore della minaccia pubblicato; gli identificativi accertati come assenti o riutilizzati vengono esclusi senza aggiungere sostituti. Le osservazioni complete di identità e minaccia condividono solo la cache di valutazione fornita, mentre l'appartenenza viene percorsa da capo. Una unità accertata come non nemica o una minaccia nil facoltativa non viene contata; dati richiesti illeggibili, malformati o falliti rendono non disponibile l'intero risultato. Non enumera un elenco completo dei membri, non applica un filtro di distanza e non modifica i record tracciati.
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
self | RMAddon | Istanza dell'addon Rotation Master (implicita nelle chiamate con due punti). |
minimum | number | Stato di minaccia nativo minimo finito, che preserva soglie con segno e frazionarie. |
cache | table | nil | Cache delle osservazioni della valutazione posseduta dal chiamante; con nil esegue nuove query. |
Valori restituiti
| 1 | number | nil | Conteggio osservato completo e non negativo, zero incluso, oppure nil se non disponibile. |
|---|---|---|
| 2 | string | nil | Motivo di policy o di indisponibilità dell'osservazione di istantanea, identità o minaccia. |
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 legge direttamente alcuna API di gioco.
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.
Come la chiama l'addon
- Conteggio minaccia (evaluate)
local count,reason=addon:GetConditionThreatCount(value.threat-1,cache)
Dipendenze
finite→Core.threat_count_conditions.finitereadField→Core.threat_count_conditions.readField
Sorgente
Core/threat_count_conditions.lua, riga 50. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
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