WoW API type: UnitFlag

From AddOn Studio
Jump to navigation Jump to search

API types

Constants

Constant bitfield
Type
COMBATLOG_OBJECT_TYPE_MASK 0x 0 0 0 0 F C 0 0
COMBATLOG_OBJECT_TYPE_OBJECT 0x 0 0 0 0 4 0 0 0
COMBATLOG_OBJECT_TYPE_GUARDIAN 0x 0 0 0 0 2 0 0 0
COMBATLOG_OBJECT_TYPE_PET 0x 0 0 0 0 1 0 0 0
COMBATLOG_OBJECT_TYPE_NPC 0x 0 0 0 0 0 8 0 0
COMBATLOG_OBJECT_TYPE_PLAYER 0x 0 0 0 0 0 5 0 0
Controller
COMBATLOG_OBJECT_CONTROL_MASK 0x 0 0 0 0 0 3 0 0
COMBATLOG_OBJECT_CONTROL_NPC 0x 0 0 0 0 0 2 0 0
COMBATLOG_OBJECT_CONTROL_PLAYER 0x 0 0 0 0 0 1 0 0
Reaction
COMBATLOG_OBJECT_REACTION_MASK 0x 0 0 0 0 0 0 F 0
COMBATLOG_OBJECT_REACTION_HOSTILE 0x 0 0 0 0 0 0 4 0
COMBATLOG_OBJECT_REACTION_NEUTRAL 0x 0 0 0 0 0 0 2 0
COMBATLOG_OBJECT_REACTION_FRIENDLY 0x 0 0 0 0 0 0 1 0
Controller affiliation
COMBATLOG_OBJECT_AFFILIATION_MASK 0x 0 0 0 0 0 0 0 F
COMBATLOG_OBJECT_AFFILIATION_OUTSIDER 0x 0 0 0 0 0 0 0 8
COMBATLOG_OBJECT_AFFILIATION_RAID 0x 0 0 0 0 0 0 0 4
COMBATLOG_OBJECT_AFFILIATION_PARTY 0x 0 0 0 0 0 0 0 2
COMBATLOG_OBJECT_AFFILIATION_MINE 0x 0 0 0 0 0 0 0 1
Special cases (non-exclusive)
COMBATLOG_OBJECT_SPECIAL_MASK 0x F F F F 0 0 0 0
COMBATLOG_OBJECT_NONE 0x 8 0 0 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET8 0x 0 8 0 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET7 0x 0 4 0 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET6 0x 0 2 0 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET5 0x 0 1 0 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET4 0x 0 0 8 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET3 0x 0 0 4 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET2 0x 0 0 2 0 0 0 0 0
COMBATLOG_OBJECT_RAIDTARGET1 0x 0 0 1 0 0 0 0 0
COMBATLOG_OBJECT_MAINASSIST 0x 0 0 0 8 0 0 0 0
COMBATLOG_OBJECT_MAINTANK 0x 0 0 0 4 0 0 0 0
COMBATLOG_OBJECT_FOCUS 0x 0 0 0 2 0 0 0 0
COMBATLOG_OBJECT_TARGET 0x 0 0 0 1 0 0 0 0

Explanation

A unit can only be one type from each of the following four categories:

  1. Type
  2. Controller
  3. Reaction
  4. Controller affiliation

Here’s a quick explanation of how these flags are broken down:

Type

This is the way the unit is currently being controlled:

  • Units directly controlled by humans are players.
  • Units controlled by the server are NPCs.
  • Pets are units controlled by a player or NPC.
  • Guardians are automatons that are not controlled, but automatically defend their master.
  • Objects are everything else, such as Traps.

The result is that these bits can tell you what kind of unit that combat log object was.

Controller

This is who currently controls this object. It can only be controlled by a physical human player or by a server NPC.

Reaction

This is the unit’s faction reaction, relative to you. Anything that hates you is Hostile, anything that is friendly with you is Friendly, everything else is Neutral.

Controller affiliation

A unit’s controller affiliation is the unit’s controller relationship relative to YOU. Either it is controlled by you, your party, your raid or someone else.

Mine
Party
Raid
Outsiders

Example

  • A player who is dueling you is 0x0548 (A hostile player controlled by an outsider physical human being)
  • A player who was mind controlled by another player that attacks you is 0x1148 (A hostile pet who is controlled by an outsider player)
    • Since 0x1148 can also be an enemy player's pet you need to check the unit GUID to know if it's an enemy pet or a player character.
  • A player who was charmed by a NPC is 0x1248 (A hostile pet controlled by an outsider NPC)
if bit.band(UnitFlag, COMBATLOG_OBJECT_CONTROL_PLAYER) > 0 then
  print("Controller: a player")
end