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
| Name | Typ | Was sie bewirkt |
|---|---|---|
self | RMPlatform | Plattformadapter von Rotation Master (bei Doppelpunktaufrufen implizit). |
unit | string | Lesbare nichtleere Einheitenkennung, unverändert als einziges natives Argument übergeben. |
Rückgabewerte
| 1 | boolean | nil | Bekannte Anwesenheit oder Abwesenheit der Einheit; nil, wenn die erforderliche Beobachtung nicht verfügbar ist. |
|---|---|---|
| 2 | string | nil | Verfü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-API | |||||
|---|---|---|---|---|---|
UnitExists |
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 presentQuelle
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




