Riferimento › Riferimento delle funzioni › Core

Core.level_conditions.GetConditionUnitLevel

pubblica

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

NomeTipoCosa fa
selfRMAddonIstanza dell'addon Rotation Master (implicita nelle chiamate con due punti).
unitstringIdentificativo dell'unità di cui risolvere il livello grezzo.
cachetable | nilCache di valutazione condivisa; con nil osserva direttamente senza cache per passaggio.

Valori restituiti

1number | boolean | nilLivello intero positivo, false per un'unità accertata come assente, oppure nil se non disponibile.
2string | nilMotivo 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

  • Livello (evaluate)
    local observed,reason=addon:GetConditionUnitLevel(value.unit,cache)
  • Livello (evaluate)
    local level,reason=addon:GetConditionUnitLevel("player",cache)

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

Torna a Riferimento delle funzioni