Referencia › Referencia de funciones › Platform

Platform.glyphs.GetGlyphSocketSnapshot

pública

Llamar como

addon.Platform:GetGlyphSocketSnapshot()

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

Qué hace

Observa las ranuras de glifos en las disposiciones de cliente verificadas de Wrath, Cata y Mists. Devuelve slots y un indicador complete. Cada ranura tiene active=false cuando se sabe que está bloqueada o vacía, active=true más spellID cuando está ocupada, o active nil más un motivo cuando no está disponible. Las disposiciones desconocidas y las consultas de recuento fallidas devuelven nil con un motivo. No compara nombres de objetos ni demuestra la identidad exacta de objeto a hechizo.

Argumentos

NombreTipoQué hace
selfRMPlatformAdaptador de plataforma de Rotation Master (implícito en las llamadas con dos puntos).

Retornos

1table | nilInstantánea normalizada y acotada de las ranuras con slots y complete, o nil si la consulta no está disponible.
2string | nilMotivo de política, validación o disponibilidad para una instantánea 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
GetGlyphSocketInfoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GetNumGlyphSocketsClassic 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 snapshot = addon.Platform:GetGlyphSocketSnapshot()
if not snapshot then return nil end
for _, slot in ipairs(snapshot.slots) do
  if slot.active and slot.spellID == value.spell then return true end
end
if not snapshot.complete then return nil end
return false

Dependencias

Código fuente

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

Platform.glyphs.GetGlyphSocketSnapshot(self)
    local position=layout(self:GetClientInfo())
    if not position then return nil,'unsupported-glyph-layout' end
    if type(GetNumGlyphSockets)~='function' then return nil,'missing-api' end
    local ok,count=pcall(GetNumGlyphSockets)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(count) then return nil,'restricted-value' end
    if count==nil then return nil,'glyph-data-unavailable' end
    if not integer(count,0) or count>64 then return nil,'invalid-api-result' end
    local fn=GetGlyphSocketInfo
    if count>0 and type(fn)~='function' then return nil,'missing-api' end
    local result={slots={},complete=true}
    for index=1,count do
        local record=socket(self,fn,index,position)
        result.slots[index]=record
        if record.active==nil then result.complete=false end
    end
    return result

Volver a Referencia de funciones