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
| Nombre | Tipo | Qué hace |
|---|---|---|
self | RMPlatform | Adaptador de plataforma de Rotation Master (implícito en las llamadas con dos puntos). |
Retornos
| 1 | table | nil | Instantánea normalizada y acotada de las ranuras con slots y complete, o nil si la consulta no está disponible. |
|---|---|---|
| 2 | string | nil | Motivo 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 juego | |||||
|---|---|---|---|---|---|
GetGlyphSocketInfo | |||||
GetNumGlyphSockets |
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 falseDependencias
integer→Platform.glyphs.integerlayout→Platform.glyphs.layoutsocket→Platform.glyphs.socket
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




