DB/PlayerCondition: Difference between revisions

From wowdev
Jump to navigation Jump to search
(add full and correct info for 6.0.1.18179)
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:


{{Template:Sandbox/VersionRange|min_expansionlevel=4}}
==6.0.1.18179==
==6.0.1.18179==
  struct PlayerConditionRec {
  struct PlayerConditionRec {
   int m_ID;
   uint32_t m_ID;
   int m_flags;
   uint32_t m_flags;
   int m_minLevel;
   uint32_t m_minLevel;
   int m_maxLevel;
   uint32_t m_maxLevel;
   int m_raceMask;
   uint32_t m_raceMask;
   int m_classMask;
   uint32_t m_classMask;
   int m_gender;
   uint32_t m_gender;
   int m_nativeGender;
   uint32_t m_nativeGender;
   int m_skillID[4];
   uint32_t m_skillID[4];
   int m_minSkill[4];
   uint32_t m_minSkill[4];
   int m_maxSkill[4];
   uint32_t m_maxSkill[4];
   int m_skillLogic;
   uint32_t m_skillLogic;
   int m_languageID;
   uint32_t m_languageID;
   int m_minLanguage;
   uint32_t m_minLanguage;
   int m_maxLanguage;
   uint32_t m_maxLanguage;
   int m_minFactionID[3];
   uint32_t m_minFactionID[3];
   int m_maxFactionID;
   uint32_t m_maxFactionID;
   int m_minReputation[3];
   uint32_t m_minReputation[3];
   int m_maxReputation;
   uint32_t m_maxReputation;
   int m_reputationLogic;
   uint32_t m_reputationLogic;
   int m_minPVPRank;
   uint32_t m_minPVPRank;
   int m_maxPVPRank;
   uint32_t m_maxPVPRank;
   int m_pvpMedal;
   uint32_t m_pvpMedal;
   int m_prevQuestLogic;
   uint32_t m_prevQuestLogic;
   int m_prevQuestID[4];
   uint32_t m_prevQuestID[4];
   int m_currQuestLogic;
   uint32_t m_currQuestLogic;
   int m_currQuestID[4];
   uint32_t m_currQuestID[4];
   int m_currentCompletedQuestLogic;
   uint32_t m_currentCompletedQuestLogic;
   int m_currentCompletedQuestID[4];
   uint32_t m_currentCompletedQuestID[4];
   int m_spellLogic;
   uint32_t m_spellLogic;
   int m_spellID[4];
   uint32_t m_spellID[4];
   int m_itemLogic;
   uint32_t m_itemLogic;
   int m_itemID[4];
   uint32_t m_itemID[4];
   int m_itemCount[4];
   uint32_t m_itemCount[4];
   int m_itemFlags;
   uint32_t m_itemFlags;
   int m_explored[2];
   uint32_t m_explored[2];
   int m_time[2];
   uint32_t m_time[2];
   int m_auraSpellLogic;
   uint32_t m_auraSpellLogic;
   int m_auraSpellID[4];
   uint32_t m_auraSpellID[4];
   int m_worldStateExpressionID;
   uint32_t m_worldStateExpressionID;
   int m_weatherID;
   uint32_t m_weatherID;
   int m_partyStatus;
   uint32_t m_partyStatus;
   int m_lifetimeMaxPVPRank;
   uint32_t m_lifetimeMaxPVPRank;
   int m_achievementLogic;
   uint32_t m_achievementLogic;
   int m_achievement[4];
   uint32_t m_achievement[4];
   int m_lfgLogic;
   uint32_t m_lfgLogic;
   int m_lfgStatus[4];
   uint32_t m_lfgStatus[4];
   int m_lfgCompare[4];
   uint32_t m_lfgCompare[4];
   int m_lfgValue[4];
   uint32_t m_lfgValue[4];
   int m_areaLogic;
   uint32_t m_areaLogic;
   int m_areaID[4];
   uint32_t m_areaID[4];
   int m_currencyLogic;
   uint32_t m_currencyLogic;
   int m_currencyID[4];
   uint32_t m_currencyID[4];
   int m_currencyCount[4];
   uint32_t m_currencyCount[4];
   int m_questKillID;
   uint32_t m_questKillID;
   int m_questKillLogic;
   uint32_t m_questKillLogic;
   int m_questKillMonster[4];
   uint32_t m_questKillMonster[4];
   int m_minExpansionLevel;
   uint32_t m_minExpansionLevel;
   int m_maxExpansionLevel;
   uint32_t m_maxExpansionLevel;
   int m_minExpansionTier;
   uint32_t m_minExpansionTier;
   int m_maxExpansionTier;
   uint32_t m_maxExpansionTier;
   int m_minGuildLevel;
   uint32_t m_minGuildLevel;
   int m_maxGuildLevel;
   uint32_t m_maxGuildLevel;
   int m_phaseUseFlags;
   uint32_t m_phaseUseFlags;
   int m_phaseID;
   uint32_t m_phaseID;
   int m_phaseGroupID;
   uint32_t m_phaseGroupID;
   int m_minAvgItemLevel;
   uint32_t m_minAvgItemLevel;
   int m_maxAvgItemLevel;
   uint32_t m_maxAvgItemLevel;
   int m_minAvgEquippedItemLevel;
   uint32_t m_minAvgEquippedItemLevel;
   int m_maxAvgEquippedItemLevel;
   uint32_t m_maxAvgEquippedItemLevel;
   int m_chrSpecializationIndex;
   uint32_t m_chrSpecializationIndex;
   int m_chrSpecializationRole;
   uint32_t m_chrSpecializationRole;
   stringref m_failure_description_lang;
   {{Template:Type|stringref}} m_failure_description_lang;
   int m_powerType;
   uint32_t m_powerType;
   int m_powerTypeComp;
   uint32_t m_powerTypeComp;
   int m_powerTypeValue;
   uint32_t m_powerTypeValue;
  };
  };
===Logic fields===
The logic fields dictate the formula used to validate a specific value of the condition. They are split into two parts:
* The low 16 bits is a uint2_t array documenting the logical operators (1 = AND, 2 = OR). They are applied in order. Naturally, if there is only one value this may be zero filled.
* The high 16 bits is an optional mask determining what indices of the associated array are required. If this is unused then the operators are applied sequentially to the array values.
e.g. a <tt>PrevQuestLogic</tt> value of 720917 <code>(0000000000001011 0000000000010101)</code> would evaluate to <code>PrevQuestID[0] && PrevQuestID[1] && PrevQuestID[3]</code> whereby the operator array comprises of three 1s (AND) and the mask omitting the 3rd element.
===Flags===
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Value
! width="650" | Description
|-
| 0x2 || {{Unverified|validated account wide}}
|-
| 0x4 || use <code>CGUnit_C::GetMaxPower</code> instead of <tt>m_powerTypeValue</tt> <code>CGPlayer_C::MatchesCondition</code>
|}
===m_powerTypeComp===
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Value
! width="150" |
|-
| 1 || equal
|-
| 2 || not equal
|-
| 3 || greater than
|-
| 4 || greater than or equal
|-
| 5 || less than
|-
| 6 || less than or equal
|}
[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Latest revision as of 15:57, 14 May 2019

≥ Cata

6.0.1.18179

struct PlayerConditionRec {
  uint32_t m_ID;
  uint32_t m_flags;
  uint32_t m_minLevel;
  uint32_t m_maxLevel;
  uint32_t m_raceMask;
  uint32_t m_classMask;
  uint32_t m_gender;
  uint32_t m_nativeGender;
  uint32_t m_skillID[4];
  uint32_t m_minSkill[4];
  uint32_t m_maxSkill[4];
  uint32_t m_skillLogic;
  uint32_t m_languageID;
  uint32_t m_minLanguage;
  uint32_t m_maxLanguage;
  uint32_t m_minFactionID[3];
  uint32_t m_maxFactionID;
  uint32_t m_minReputation[3];
  uint32_t m_maxReputation;
  uint32_t m_reputationLogic;
  uint32_t m_minPVPRank;
  uint32_t m_maxPVPRank;
  uint32_t m_pvpMedal;
  uint32_t m_prevQuestLogic;
  uint32_t m_prevQuestID[4];
  uint32_t m_currQuestLogic;
  uint32_t m_currQuestID[4];
  uint32_t m_currentCompletedQuestLogic;
  uint32_t m_currentCompletedQuestID[4];
  uint32_t m_spellLogic;
  uint32_t m_spellID[4];
  uint32_t m_itemLogic;
  uint32_t m_itemID[4];
  uint32_t m_itemCount[4];
  uint32_t m_itemFlags;
  uint32_t m_explored[2];
  uint32_t m_time[2];
  uint32_t m_auraSpellLogic;
  uint32_t m_auraSpellID[4];
  uint32_t m_worldStateExpressionID;
  uint32_t m_weatherID;
  uint32_t m_partyStatus;
  uint32_t m_lifetimeMaxPVPRank;
  uint32_t m_achievementLogic;
  uint32_t m_achievement[4];
  uint32_t m_lfgLogic;
  uint32_t m_lfgStatus[4];
  uint32_t m_lfgCompare[4];
  uint32_t m_lfgValue[4];
  uint32_t m_areaLogic;
  uint32_t m_areaID[4];
  uint32_t m_currencyLogic;
  uint32_t m_currencyID[4];
  uint32_t m_currencyCount[4];
  uint32_t m_questKillID;
  uint32_t m_questKillLogic;
  uint32_t m_questKillMonster[4];
  uint32_t m_minExpansionLevel;
  uint32_t m_maxExpansionLevel;
  uint32_t m_minExpansionTier;
  uint32_t m_maxExpansionTier;
  uint32_t m_minGuildLevel;
  uint32_t m_maxGuildLevel;
  uint32_t m_phaseUseFlags;
  uint32_t m_phaseID;
  uint32_t m_phaseGroupID;
  uint32_t m_minAvgItemLevel;
  uint32_t m_maxAvgItemLevel;
  uint32_t m_minAvgEquippedItemLevel;
  uint32_t m_maxAvgEquippedItemLevel;
  uint32_t m_chrSpecializationIndex;
  uint32_t m_chrSpecializationRole;
  stringref m_failure_description_lang;
  uint32_t m_powerType;
  uint32_t m_powerTypeComp;
  uint32_t m_powerTypeValue;
};

Logic fields

The logic fields dictate the formula used to validate a specific value of the condition. They are split into two parts:

  • The low 16 bits is a uint2_t array documenting the logical operators (1 = AND, 2 = OR). They are applied in order. Naturally, if there is only one value this may be zero filled.
  • The high 16 bits is an optional mask determining what indices of the associated array are required. If this is unused then the operators are applied sequentially to the array values.

e.g. a PrevQuestLogic value of 720917 (0000000000001011 0000000000010101) would evaluate to PrevQuestID[0] && PrevQuestID[1] && PrevQuestID[3] whereby the operator array comprises of three 1s (AND) and the mask omitting the 3rd element.

Flags

Value Description
0x2 validated account wide
0x4 use CGUnit_C::GetMaxPower instead of m_powerTypeValue CGPlayer_C::MatchesCondition

m_powerTypeComp

Value
1 equal
2 not equal
3 greater than
4 greater than or equal
5 less than
6 less than or equal