Referência › Referência de funções › Core

Core.class_group_conditions.GetClassGroupCount

pública

Chame como

addon:GetClassGroupCount(cache, class, raid)

Disponível diretamente por meio de addon; nenhuma dependência é necessária.

O que faz

Conta os tokens de classe correspondentes na lista fixa atual. Lê primeiro a participação no grupo; quando solicitado, a participação na raide seleciona de raid1 a raid40 sem um dado separado do jogador. Os caminhos solo e de grupo leem primeiro o jogador e depois de party1 a party4 quando agrupado. Uma lista conhecida completa retorna uma contagem, incluindo zero; qualquer dado necessário indisponível retorna nil com um motivo. Observações completas compartilham o cache da passada de avaliação; nenhuma classe de jogador persiste entre passadas. Callbacks brutos arquivados mantêm separadamente a classe original do momento do carregamento.

Argumentos

NomeTipoO que faz
selfRMAddonInstância do addon Rotation Master (implícita nas chamadas com dois-pontos).
cachetable | nilCache da passada de avaliação, ou nil para observações novas.
classstringToken de nome de arquivo de classe não vazio a contar; nenhuma lista de permissão de tokens de classe é aplicada.
raidboolean | nilTrue permite a lista da raide quando a participação na raide é sabidamente true; false ou nil usam a lista solo ou do grupo.

Retornos

1number | nilContagem completa de classes correspondentes, incluindo zero, ou nil quando indisponível.
2string | nilMotivo de validação, política ou disponibilidade de um dado necessário para uma contagem nil.

Edições

As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.

Não lê nenhuma API do jogo diretamente.

Valores secretos (Retail e Forever)

No Retail e no Forever, o jogo entrega valores secretos aos addons. Esta função auxiliar verifica o que lê (addon.Platform:CanReadValue) e retorna nil com um motivo como restricted-value em vez de um valor secreto que não consegue comparar. Trate nil como indisponível, não como false.

Como o addon a chama

  • Classe no grupo (evaluate)
    local count,reason=addon:GetClassGroupCount(cache,value.class,value.raid)

Código-fonte

Core/class_group_conditions.lua, linha 23. Somente leitura no jogo; Duplicar cria uma cópia editável.

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

Voltar para Referência de funções