DB/FactionTemplate

From wowdev
Jump to navigation Jump to search

Structure

Column 	Field 		Type 		Notes 
1 	ID 		Integer 	
2 	iRefID_Faction 	Integer 	
3 	Unknown 	BitMask* 	
4 	FightSupport 	BitMask 	LUA::GetFactionForRace shifts 1 by maskID in FactionGroup and & it with this column.
5 	Friendly 	BitMask* 	
6 	Hostile 	BitMask* 	 
7 	iRefID_Faction 	Integer 	Q: related factions of some kind? 
8 	iRefID_Faction 	Integer 	
9 	Unknown 	Integer 	
10 	Unknown 	Integer 	
11 	iRefID_Faction 	Integer 	
12 	iRefID_Faction 	Integer 	
13 	iRefID_Faction 	Integer 	
14 	iRefID_Faction 	Integer 	
   uint32      ID;                                         // 0        m_ID
   uint32      faction;                                    // 1        m_faction
   uint32      factionFlags;                               // 2        m_flags
   uint32      ourMask;                                    // 3        m_factionGroup
   uint32      friendlyMask;                               // 4        m_friendGroup
   uint32      hostileMask;                                // 5        m_enemyGroup
   uint32      enemyFaction[4];                            // 6        m_enemies[4]
   uint32      friendFaction[4];                           // 10       m_friend[4]

0.5.3.3368, 1.12.1.5875, 6.0.1.18179

struct FactionTemplateRec {
  uint32_t m_ID;
  uint32_t m_faction; 
#if ≥ Vanilla
  uint32_t m_flags;
#endif 
  uint32_t m_factionGroup;    // (m_factionGroup & 7) == 1 → neutral
  uint32_t m_friendGroup;
  uint32_t m_enemyGroup;
  uint32_t m_enemies[4];
  uint32_t m_friend[4];
};

Flags

Value Description
0x0800 eligible for pvp
0x1000 hostile to pvp flagged players i.e. contested guards
0x2000 initially AtWar, hostility cannot be reduced