WoW:UnitFlag: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
m (s/pleyer's/player's/)
m (Move page script moved page UnitFlag to UnitFlag without leaving a redirect)
 
(4 intermediate revisions by 4 users not shown)
Line 17: Line 17:
|COMBATLOG_OBJECT_TYPE_NPC||0x||0||0||0||0||0||'''8'''||0||0
|COMBATLOG_OBJECT_TYPE_NPC||0x||0||0||0||0||0||'''8'''||0||0
|-
|-
|class="alt"|COMBATLOG_OBJECT_TYPE_PLAYER||0x||0||0||0||0||0||'''4'''||0||0
|class="alt"|COMBATLOG_OBJECT_TYPE_PLAYER||0x||0||0||0||0||0||4||0||0
|-align="center"
|-align="center"
!colspan="10"|Controller
!colspan="10"|Controller
Line 125: Line 125:
*A player who is dueling you is '''0x0548''' (A hostile player controlled by an outsider physical human being)  
*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)
*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 [[API UnitGUID| unit GUID]] to know if it's an enemy pet or a player charcater.
**Since '''0x1148''' can also be an enemy player's pet you need to check the [[API UnitGUID| 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)
*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

Latest revision as of 04:49, 15 August 2023

API types

Constants[edit]

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 4 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[edit]

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[edit]

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[edit]

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

Reaction[edit]

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[edit]

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[edit]

  • 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