34 case UNIT_FLAG_SERVER_CONTROLLED:
return {
"UNIT_FLAG_SERVER_CONTROLLED",
"UNIT_FLAG_SERVER_CONTROLLED",
"set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner" };
35 case UNIT_FLAG_NON_ATTACKABLE:
return {
"UNIT_FLAG_NON_ATTACKABLE",
"UNIT_FLAG_NON_ATTACKABLE",
"not attackable, set when creature starts to cast spells with SPELL_EFFECT_SPAWN and cast time, removed when spell hits caster, original name is UNIT_FLAG_SPAWNING. Rename when it will be removed from all scripts" };
36 case UNIT_FLAG_REMOVE_CLIENT_CONTROL:
return {
"UNIT_FLAG_REMOVE_CLIENT_CONTROL",
"UNIT_FLAG_REMOVE_CLIENT_CONTROL",
"This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving)" };
37 case UNIT_FLAG_PLAYER_CONTROLLED:
return {
"UNIT_FLAG_PLAYER_CONTROLLED",
"UNIT_FLAG_PLAYER_CONTROLLED",
"controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC" };
38 case UNIT_FLAG_RENAME:
return {
"UNIT_FLAG_RENAME",
"UNIT_FLAG_RENAME",
"" };
39 case UNIT_FLAG_PREPARATION:
return {
"UNIT_FLAG_PREPARATION",
"UNIT_FLAG_PREPARATION",
"don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP" };
40 case UNIT_FLAG_UNK_6:
return {
"UNIT_FLAG_UNK_6",
"UNIT_FLAG_UNK_6",
"" };
41 case UNIT_FLAG_NOT_ATTACKABLE_1:
return {
"UNIT_FLAG_NOT_ATTACKABLE_1",
"UNIT_FLAG_NOT_ATTACKABLE_1",
"?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE" };
42 case UNIT_FLAG_IMMUNE_TO_PC:
return {
"UNIT_FLAG_IMMUNE_TO_PC",
"UNIT_FLAG_IMMUNE_TO_PC",
"disables combat/assistance with PlayerCharacters (PC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget" };
43 case UNIT_FLAG_IMMUNE_TO_NPC:
return {
"UNIT_FLAG_IMMUNE_TO_NPC",
"UNIT_FLAG_IMMUNE_TO_NPC",
"disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget" };
44 case UNIT_FLAG_LOOTING:
return {
"UNIT_FLAG_LOOTING",
"UNIT_FLAG_LOOTING",
"loot animation" };
45 case UNIT_FLAG_PET_IN_COMBAT:
return {
"UNIT_FLAG_PET_IN_COMBAT",
"UNIT_FLAG_PET_IN_COMBAT",
"on player pets: whether the pet is chasing a target to attack || on other units: whether any of the unit's minions is in combat" };
46 case UNIT_FLAG_PVP_ENABLING:
return {
"UNIT_FLAG_PVP_ENABLING",
"UNIT_FLAG_PVP_ENABLING",
"changed in 3.0.3, now UNIT_BYTES_2_OFFSET_PVP_FLAG from UNIT_FIELD_BYTES_2" };
47 case UNIT_FLAG_SILENCED:
return {
"UNIT_FLAG_SILENCED",
"UNIT_FLAG_SILENCED",
"silenced, 2.1.1" };
49 case UNIT_FLAG_CAN_SWIM:
return {
"UNIT_FLAG_CAN_SWIM",
"UNIT_FLAG_CAN_SWIM",
"shows swim animation in water" };
50 case UNIT_FLAG_NON_ATTACKABLE_2:
return {
"UNIT_FLAG_NON_ATTACKABLE_2",
"UNIT_FLAG_NON_ATTACKABLE_2",
"removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE" };
51 case UNIT_FLAG_PACIFIED:
return {
"UNIT_FLAG_PACIFIED",
"UNIT_FLAG_PACIFIED",
"3.0.3 ok" };
52 case UNIT_FLAG_STUNNED:
return {
"UNIT_FLAG_STUNNED",
"UNIT_FLAG_STUNNED",
"3.0.3 ok" };
54 case UNIT_FLAG_ON_TAXI:
return {
"UNIT_FLAG_ON_TAXI",
"UNIT_FLAG_ON_TAXI",
"disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag" };
55 case UNIT_FLAG_DISARMED:
return {
"UNIT_FLAG_DISARMED",
"UNIT_FLAG_DISARMED",
"3.0.3, disable melee spells casting..., \042Required melee weapon\042 added to melee spells tooltip." };
58 case UNIT_FLAG_POSSESSED:
return {
"UNIT_FLAG_POSSESSED",
"UNIT_FLAG_POSSESSED",
"under direct client control by a player (possess or vehicle)" };
61 case UNIT_FLAG_MOUNT:
return {
"UNIT_FLAG_MOUNT",
"UNIT_FLAG_MOUNT",
"" };
62 case UNIT_FLAG_UNK_28:
return {
"UNIT_FLAG_UNK_28",
"UNIT_FLAG_UNK_28",
"" };
63 case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT:
return {
"UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT",
"UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT",
"Prevent automatically playing emotes from parsing chat text, for example \042lol\042 in /say, ending message with ? or !, or using /yell" };
65 case UNIT_FLAG_IMMUNE:
return {
"UNIT_FLAG_IMMUNE",
"UNIT_FLAG_IMMUNE",
"Immune to damage" };
66 default:
throw std::out_of_range(
"value");
110 default:
throw std::out_of_range(
"index");
151 default:
throw std::out_of_range(
"value");
171 case UNIT_NPC_FLAG_VENDOR_AMMO:
return {
"UNIT_NPC_FLAG_VENDOR_AMMO",
"is vendor (ammo)",
"100%, general goods vendor" };
181 case UNIT_NPC_FLAG_PETITIONER:
return {
"UNIT_NPC_FLAG_PETITIONER",
"handles guild/arena petitions",
"100% 0xC0000 = guild petitions, 0x40000 = arena team petitions" };
186 case UNIT_NPC_FLAG_GUILD_BANKER:
return {
"UNIT_NPC_FLAG_GUILD_BANKER",
"is guild banker",
"cause client to send 997 opcode" };
187 case UNIT_NPC_FLAG_SPELLCLICK:
return {
"UNIT_NPC_FLAG_SPELLCLICK",
"has spell click enabled",
"cause client to send 1015 opcode (spell click)" };
188 case UNIT_NPC_FLAG_PLAYER_VEHICLE:
return {
"UNIT_NPC_FLAG_PLAYER_VEHICLE",
"is player vehicle",
"players with mounts that have vehicle data should have it set" };
190 default:
throw std::out_of_range(
"value");
229 default:
throw std::out_of_range(
"index");
265 default:
throw std::out_of_range(
"value");
NPCFlags
Non Player Character flags.
@ UNIT_NPC_FLAG_VENDOR_AMMO
@ UNIT_NPC_FLAG_TABARDDESIGNER
@ UNIT_NPC_FLAG_AUCTIONEER
@ UNIT_NPC_FLAG_VENDOR_POISON
@ UNIT_NPC_FLAG_GUILD_BANKER
@ UNIT_NPC_FLAG_STABLEMASTER
@ UNIT_NPC_FLAG_VENDOR_REAGENT
@ UNIT_NPC_FLAG_BATTLEMASTER
@ UNIT_NPC_FLAG_VENDOR_FOOD
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_NPC_FLAG_INNKEEPER
@ UNIT_NPC_FLAG_SPELLCLICK
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
@ UNIT_NPC_FLAG_FLIGHTMASTER
@ UNIT_NPC_FLAG_TRAINER_CLASS
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
@ UNIT_NPC_FLAG_PETITIONER
@ UNIT_NPC_FLAG_SPIRITGUIDE
@ UNIT_NPC_FLAG_SPIRITHEALER
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NON_ATTACKABLE_2
@ UNIT_FLAG_IMMUNE_TO_NPC
@ UNIT_FLAG_SERVER_CONTROLLED
@ UNIT_FLAG_REMOVE_CLIENT_CONTROL
@ UNIT_FLAG_UNINTERACTIBLE
@ UNIT_FLAG_NOT_ATTACKABLE_1
@ UNIT_FLAG_PLAYER_CONTROLLED
@ UNIT_FLAG_PET_IN_COMBAT
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)