Referenz › Funktionsreferenz › Core

Core.level_conditions.GetConditionUnitLevel

öffentlich

Aufruf als

addon:GetConditionUnitLevel(unit, cache)

Direkt über addon verfügbar; keine Abhängigkeit nötig.

Was sie bewirkt

Eine lesbare rohe Einheitenstufe für die Bedingungsauswertung auflösen. Bekannte Abwesenheit ergibt false; nicht verfügbare Beobachtungen ergeben nil mit einem Grund. Beobachtungen werden innerhalb des übergebenen Auswertungsdurchlaufs zwischengespeichert. Nur gültige Spielerstufen bleiben zwischen Durchläufen erhalten, bis zu einer Aktualisierung von Fertigkeit, Profil oder Stufe.

Argumente

NameTypWas sie bewirkt
selfRMAddonAddon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit).
unitstringEinheitenkennung, deren rohe Stufe aufgelöst werden soll.
cachetable | nilGemeinsamer Auswertungs-Cache; nil beobachtet direkt ohne Cache pro Durchlauf.

Rückgabewerte

1number | boolean | nilPositive ganzzahlige Stufe, false für eine bekannt abwesende Einheit oder nil, wenn nicht verfügbar.
2string | nilVerfügbarkeits- oder Abfragevalidierungsgrund für eine nil-Stufe.

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

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

Quelle

Core/level_conditions.lua, Zeile 21. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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

Zurück zu Funktionsreferenz