Referencia › Referencia de funciones › Core

Core.class_group_conditions.GetClassGroupCount

pública

Llamar como

addon:GetClassGroupCount(cache, class, raid)

Disponible directamente a través de addon; no se necesita ninguna dependencia.

Qué hace

Cuenta los tokens de clase coincidentes en la lista fija actual. Lee primero la pertenencia al grupo; si se solicita, la pertenencia a la banda selecciona de raid1 a raid40 sin un dato aparte del jugador. Las rutas en solitario y de grupo leen primero al jugador y luego de party1 a party4 si está agrupado. Una lista conocida completa devuelve un recuento, incluido cero; cualquier dato necesario no disponible devuelve nil con un motivo. Las observaciones completas comparten la caché de la pasada de evaluación; ninguna clase de jugador persiste entre pasadas. Los callbacks en bruto archivados conservan aparte su clase original del momento de carga.

Argumentos

NombreTipoQué hace
selfRMAddonInstancia del addon Rotation Master (implícita en las llamadas con dos puntos).
cachetable | nilCaché de la pasada de evaluación, o nil para observaciones nuevas.
classstringToken de nombre de archivo de clase no vacío que se contará; no se aplica ninguna lista blanca de tokens de clase.
raidboolean | nilTrue permite la lista de la banda cuando se sabe que la pertenencia a la banda es true; false o nil usan la lista en solitario o de grupo.

Retornos

1number | nilRecuento completo de clases coincidentes, incluido cero, o nil si no está disponible.
2string | nilMotivo de validación, política o disponibilidad de un dato necesario para un recuento 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 usa una alternativa o devuelve nil con un motivo.

No lee directamente ninguna API del juego.

Valores secretos (Retail y Forever)

En Retail y Forever, el juego les entrega a los addons valores secretos. Esta función auxiliar verifica 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.

Cómo la llama el addon

  • Clase en el grupo (evaluate)
    local count,reason=addon:GetClassGroupCount(cache,value.class,value.raid)

Código fuente

Core/class_group_conditions.lua, línea 23. Solo lectura en el juego; Duplicar crea una copia editable.

Core.class_group_conditions.GetClassGroupCount(self, cache, class, raid)
    local platform=self.Platform
    if not platform:CanReadValue(class) or not platform:CanReadValue(raid) then return nil,'restricted-value' end
    if type(class)~='string' or class=='' then return nil,'invalid-class-group-query' end
    if raid~=nil and type(raid)~='boolean' then return nil,'invalid-class-group-query' end
    local grouped,reason=self.Functions.cache.getCached(cache,platform.GetGroupMembership,platform,false)
    if grouped==nil then return nil,reason end
    local prefix,size='party',4
    if grouped and raid then
        local inRaid,why=self.Functions.cache.getCached(cache,platform.GetGroupMembership,platform,true)
        if inRaid==nil then return nil,why end
        if inRaid then prefix,size='raid',40 end
    end
    local count=0
    if not grouped or prefix=='party' then
        local player,why=self.Functions.cache.getCached(cache,platform.GetRosterClassObservation,platform,'player')
        if player==nil then return nil,why end
        if player==class then count=1 end
        if not grouped then return count end
    end
    for index=1,size do
        local observed,why=self.Functions.cache.getCached(cache,platform.GetRosterClassObservation,platform,prefix..tostring(index))
        if observed==nil then return nil,why end
        if observed==class then count=count+1 end
    end
    return count

Volver a Referencia de funciones