Référence › Référence des fonctions › Core

Core.class_group_conditions.GetClassGroupCount

publique

Appel

addon:GetClassGroupCount(cache, class, raid)

Disponible directement via addon ; aucune dépendance n'est nécessaire.

Ce qu'elle fait

Compte les jetons de classe correspondants dans la composition fixe actuelle. Lit d'abord l'appartenance au groupe ; si demandé, l'appartenance à un raid sélectionne raid1 à raid40 sans fait joueur distinct. En solo et en groupe, player est lu en premier, puis party1 à party4 si vous êtes groupé. Une composition complète et connue renvoie un décompte, zéro compris ; tout fait requis indisponible renvoie nil avec un motif. Les observations complètes partagent le cache de passe d'évaluation ; aucune classe de joueur n'est conservée d'une passe à l'autre. Les anciens rappels bruts archivés conservent séparément leur classe d'origine lue au chargement.

Arguments

NomTypeCe qu'elle fait
selfRMAddonInstance de l'addon Rotation Master (implicite avec un appel par deux-points).
cachetable | nilCache de passe d'évaluation, ou nil pour des observations fraîches.
classstringJeton de nom de fichier de classe non vide à compter ; aucune liste blanche de jetons de classe n'est appliquée.
raidboolean | niltrue autorise la composition du raid lorsque l'appartenance au raid est connue comme vraie ; false ou nil utilise la composition en solo ou en groupe.

Retours

1number | nilDécompte complet des classes correspondantes, zéro compris, ou nil si indisponible.
2string | nilMotif de validation, de politique ou de disponibilité d'un fait requis pour un décompte nil.

Éditions

Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.

Elle ne lit directement aucune API du jeu.

Valeurs secrètes (Retail et Forever)

Sur Retail et Forever, le jeu transmet aux addons des valeurs secrètes. Cette fonction utilitaire vérifie ce qu'elle lit (addon.Platform:CanReadValue) et renvoie nil avec une raison telle que restricted-value au lieu d'une valeur secrète qu'elle ne peut pas comparer. Traitez nil comme indisponible, pas comme false.

Comment l'addon l'appelle

  • Classe dans le groupe (evaluate)
    local count,reason=addon:GetClassGroupCount(cache,value.class,value.raid)

Source

Core/class_group_conditions.lua, ligne 23. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.

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

Retour à Référence des fonctions