Referenz › Funktionsreferenz › Platform

Platform.unit_presence.GetUnitPresenceObservation

öffentlich

Aufruf als

addon.Platform:GetUnitPresenceObservation(unit)

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

Was sie bewirkt

Die Anwesenheit einer Einheit auf identifizierten Client-Familien beobachten. Die ausgewählte Einheit unverändert an einen geschützten Aufruf von UnitExists übergeben. Lesbares true und false bleiben erhalten; fehlende, fehlgeschlagene, eingeschränkte, nil- oder fehlerhafte erforderliche Beobachtungen ergeben nil mit einem Grund. Es wird keine Identitäts-, Sichtbarkeits-, Reichweiten- oder Kampfstatusabfrage hinzugefügt.

Argumente

NameTypWas sie bewirkt
selfRMPlatformPlattformadapter von Rotation Master (bei Doppelpunktaufrufen implizit).
unitstringLesbare nichtleere Einheitenkennung, unverändert als einziges natives Argument übergeben.

Rückgabewerte

1boolean | nilBekannte Anwesenheit oder Abwesenheit der Einheit; nil, wenn die erforderliche Beobachtung nicht verfügbar ist.
2string | nilVerfügbarkeitsgrund aus Client-Familie, Abfragevalidierung oder erforderlicher Beobachtung für ein nil-Ergebnis.

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.

  • Auf dieser Edition nicht verfügbar (den Grund nennt der Tooltip)
  • Nur, solange Blizzards Ersatz für veraltete Funktionen aktiv ist
Spiel-APIClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitExistsClassic EraTBC AnniversaryClassic ProgressionForeverRetail

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.

Beispiel

local present = addon.Platform:GetUnitPresenceObservation("focus")
if present == nil then return nil end
return not present

Quelle

Platform/unit_presence.lua, Zeile 65. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

Platform.unit_presence.GetUnitPresenceObservation(self, unit)
    if not self:CanReadValue(unit) then return nil,'restricted-value' end
    if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
    if self:GetClientFamily()=='unknown' then return nil,'unsupported-client' end
    if type(UnitExists)~='function' then return nil,'missing-api' end
    local ok,exists=pcall(UnitExists,unit)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(exists) then return nil,'restricted-value' end
    if exists==nil then return nil,'unit-data-unavailable' end
    if type(exists)~='boolean' then return nil,'invalid-api-result' end
    return exists

Zurück zu Funktionsreferenz