Chiamala come
addon:GetConditionUnitLevel(unit, cache)
Disponibile direttamente tramite addon; non serve alcuna dipendenza.
Cosa fa
Risolve un livello grezzo leggibile dell'unità per la valutazione delle condizioni. Un'assenza accertata restituisce false; le osservazioni non disponibili restituiscono nil con un motivo. Memorizza in cache le osservazioni all'interno del passaggio di valutazione fornito. Tra un passaggio e l'altro vengono mantenuti solo i livelli validi del giocatore, fino a un aggiornamento di abilità, profilo o livello.
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
self | RMAddon | Istanza dell'addon Rotation Master (implicita nelle chiamate con due punti). |
unit | string | Identificativo dell'unità di cui risolvere il livello grezzo. |
cache | table | nil | Cache di valutazione condivisa; con nil osserva direttamente senza cache per passaggio. |
Valori restituiti
| 1 | number | boolean | nil | Livello intero positivo, false per un'unità accertata come assente, oppure nil se non disponibile. |
|---|---|---|
| 2 | string | nil | Motivo di indisponibilità o di convalida della query quando il livello è 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 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
Sorgente
Core/level_conditions.lua, riga 21. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
Core.level_conditions.GetConditionUnitLevel(self, unit, cache)
if not self.Platform:CanReadValue(unit) then return nil,'restricted-value' end
if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
if self.Platform:GetClientFamily()=='unknown' then return nil,'unsupported-client' end
local longterm=self.longtermCache
if unit=='player' and type(longterm)=='table' then
local level=longterm.conditionPlayerLevel
if not self.Platform:CanReadValue(level) then return nil,'restricted-value' end
if level~=nil then
if type(level)~='number' or level~=level or level<=0 or level==math.huge or level%1~=0 then return nil,'invalid-api-result' end
return level
end
end
local record,reason=addon.Functions.cache.getCached(cache,self.Platform.GetUnitLevelObservation,self.Platform,unit)
if not record then return nil,reason end
if not record.exists then return false end
if unit=='player' and type(longterm)=='table' then longterm.conditionPlayerLevel=record.level end
return record.level