DB/PlayerCondition

From wowdev
Revision as of 15:34, 14 May 2019 by Barncastle (talk | contribs)
Jump to navigation Jump to search

≥ 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.
  • The high 16 bits is a mask determining what indices of the associated array are required

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