Referencia › Referencia de funciones › Platform

Platform.unit_presence.GetUnitPresenceObservation

pública

Llamar como

addon.Platform:GetUnitPresenceObservation(unit)

Disponible directamente a través de addon; no hace falta ninguna dependencia.

Qué hace

Observa la presencia de la unidad en familias de cliente identificadas. Pasa la unidad seleccionada sin cambios a una única llamada protegida a UnitExists. Conserva los valores legibles true y false; las observaciones necesarias que faltan, fallan, están restringidas, son nil o mal formadas devuelven nil con un motivo. No se añade ninguna consulta de identidad, visibilidad, alcance ni estado de combate.

Argumentos

NombreTipoQué hace
selfRMPlatformAdaptador de plataforma de Rotation Master (implícito en las llamadas con dos puntos).
unitstringToken de unidad legible y no vacío, que se pasa sin cambios como único argumento nativo.

Retornos

1boolean | nilPresencia o ausencia conocida de la unidad; nil cuando la observación necesaria no está disponible.
2string | nilMotivo de disponibilidad de la familia de cliente, de la validación de la consulta o de una observación necesaria para un resultado nil.

Ediciones

Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.

  • No disponible en esa edición (el motivo aparece en la información emergente)
  • Solo mientras estén activas las alternativas de Blizzard para API obsoletas
API del juegoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitExistsClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valores secretos (Retail y Forever)

En Retail y Forever, el juego entrega a los addons valores secretos. Esta función auxiliar comprueba lo que lee (addon.Platform:CanReadValue) y, en lugar de un secreto que no puede comparar, devuelve nil con un motivo como restricted-value. Trata nil como no disponible, no como falso.

Ejemplo

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

Código fuente

Platform/unit_presence.lua, línea 65. Solo lectura en el juego; Duplicar crea una copia editable.

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

Volver a Referencia de funciones