DB/PlayerCondition: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Barncastle (talk | contribs) mNo edit summary |
||
Line 80: | Line 80: | ||
uint32_t 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. | |||
* The high 16 bits is a mask determining what indices of the associated array are required | |||
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]] | [[Category:DBC_WoD]][[Category:6.0.1.18179]] |
Revision as of 15:34, 14 May 2019
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 |