Core/Players: Define all character flags used in SMSG_ENUM_CHARACTERS_RESULT

This commit is contained in:
Shauren authored and Ovahlord committed 2025-08-29 22:04:51 +02:00
1 parent 857f79b22a
commit 672579de8e
4 files changed
+90 -48

No files matched your search

+4 -4
View File
@@ -408,7 +408,7 @@ enum PlayerFlags
PLAYER_FLAGS_GM = 0x00000008,
PLAYER_FLAGS_GHOST = 0x00000010,
PLAYER_FLAGS_RESTING = 0x00000020,
PLAYER_FLAGS_UNK6 = 0x00000040,
PLAYER_FLAGS_VOICE_CHAT = 0x00000040,
PLAYER_FLAGS_UNK7 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state
PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards
PLAYER_FLAGS_IN_PVP = 0x00000200,
@@ -418,7 +418,7 @@ enum PlayerFlags
PLAYER_FLAGS_PLAYED_TOO_LONG = 0x00002000, // played too long time
PLAYER_FLAGS_IS_OUT_OF_BOUNDS = 0x00004000,
PLAYER_FLAGS_DEVELOPER = 0x00008000, // <Dev> prefix for something?
PLAYER_FLAGS_UNK16 = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000, // taxi benchmark mode (on/off) (2.0.1)
PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually)
PLAYER_FLAGS_UBER = 0x00080000,
@@ -432,8 +432,8 @@ enum PlayerFlags
PLAYER_FLAGS_AUTO_DECLINE_GUILD = 0x08000000, // Automatically declines guild invites
PLAYER_FLAGS_GUILD_LEVEL_ENABLED = 0x10000000, // Lua_GetGuildLevelEnabled() - enables guild leveling related UI
PLAYER_FLAGS_VOID_UNLOCKED = 0x20000000, // void storage
PLAYER_FLAGS_UNK30 = 0x40000000,
PLAYER_FLAGS_UNK31 = 0x80000000
PLAYER_FLAGS_TIMEWALKING = 0x40000000,
PLAYER_FLAGS_COMMENTATOR_CAMERA = 0x80000000
};
enum PlayerBytesOffsets
@@ -269,13 +269,13 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result)
charInfo.HairColor = 0;
charInfo.FacialHair = 0;
if (!(charInfo.Flags2 == CHAR_CUSTOMIZE_FLAG_CUSTOMIZE))
if (!(charInfo.Flags2 == CHARACTER_FLAG_2_CUSTOMIZE))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
stmt->setUInt16(0, uint16(AT_LOGIN_CUSTOMIZE));
stmt->setUInt32(1, charInfo.Guid.GetCounter());
CharacterDatabase.Execute(stmt);
charInfo.Flags2 = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
charInfo.Flags2 = CHARACTER_FLAG_2_CUSTOMIZE;
}
}
@@ -56,6 +56,12 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel
uint32 playerFlags = fields[17].GetUInt32();
uint32 atLoginFlags = fields[18].GetUInt16();
if (playerFlags & PLAYER_FLAGS_RESTING)
Flags |= CHARACTER_FLAG_RESTING;
if (atLoginFlags & AT_LOGIN_RESET_TALENTS)
Flags |= CHARACTER_FLAG_RESET_TALENTS_ON_LOGIN;
if (atLoginFlags & AT_LOGIN_RESURRECT)
playerFlags &= ~PLAYER_FLAGS_GHOST;
@@ -72,11 +78,20 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel
Flags |= CHARACTER_FLAG_DECLINED;
if (atLoginFlags & AT_LOGIN_CUSTOMIZE)
Flags2 = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
Flags2 = CHARACTER_FLAG_2_CUSTOMIZE;
else if (atLoginFlags & AT_LOGIN_CHANGE_FACTION)
Flags2 = CHAR_CUSTOMIZE_FLAG_FACTION;
Flags2 = CHARACTER_FLAG_2_FACTION_CHANGE;
else if (atLoginFlags & AT_LOGIN_CHANGE_RACE)
Flags2 = CHAR_CUSTOMIZE_FLAG_RACE;
Flags2 = CHARACTER_FLAG_2_RACE_CHANGE;
if (playerFlags & PLAYER_FLAGS_NO_XP_GAIN)
Flags2 |= CHARACTER_FLAG_2_NO_XP_GAIN;
if (playerFlags & PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED)
Flags2 |= CHARACTER_FLAG_2_LOW_LEVEL_RAID_ENABLED;
if (playerFlags & PLAYER_FLAGS_AUTO_DECLINE_GUILD)
Flags2 |= CHARACTER_FLAG_2_AUTO_DECLINE_GUILD;
FirstLogin = (atLoginFlags & AT_LOGIN_FIRST) != 0;
+66 -39
View File
@@ -795,49 +795,76 @@ enum SheathTypes
#define MAX_SHEATHETYPE 8
enum CharacterFlags
enum CharacterFlags : int32
{
CHARACTER_FLAG_NONE = 0x00000000,
CHARACTER_FLAG_UNK1 = 0x00000001,
CHARACTER_FLAG_UNK2 = 0x00000002,
CHARACTER_FLAG_LOCKED_FOR_TRANSFER = 0x00000004,
CHARACTER_FLAG_UNK4 = 0x00000008,
CHARACTER_FLAG_UNK5 = 0x00000010,
CHARACTER_FLAG_UNK6 = 0x00000020,
CHARACTER_FLAG_UNK7 = 0x00000040,
CHARACTER_FLAG_UNK8 = 0x00000080,
CHARACTER_FLAG_UNK9 = 0x00000100,
CHARACTER_FLAG_UNK10 = 0x00000200,
CHARACTER_FLAG_HIDE_HELM = 0x00000400,
CHARACTER_FLAG_HIDE_CLOAK = 0x00000800,
CHARACTER_FLAG_UNK13 = 0x00001000,
CHARACTER_FLAG_GHOST = 0x00002000,
CHARACTER_FLAG_RENAME = 0x00004000,
CHARACTER_FLAG_UNK16 = 0x00008000,
CHARACTER_FLAG_UNK17 = 0x00010000,
CHARACTER_FLAG_UNK18 = 0x00020000,
CHARACTER_FLAG_UNK19 = 0x00040000,
CHARACTER_FLAG_UNK20 = 0x00080000,
CHARACTER_FLAG_UNK21 = 0x00100000,
CHARACTER_FLAG_UNK22 = 0x00200000,
CHARACTER_FLAG_UNK23 = 0x00400000,
CHARACTER_FLAG_UNK24 = 0x00800000,
CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000,
CHARACTER_FLAG_DECLINED = 0x02000000,
CHARACTER_FLAG_UNK27 = 0x04000000,
CHARACTER_FLAG_UNK28 = 0x08000000,
CHARACTER_FLAG_UNK29 = 0x10000000,
CHARACTER_FLAG_UNK30 = 0x20000000,
CHARACTER_FLAG_UNK31 = 0x40000000,
CHARACTER_FLAG_UNK32 = 0x80000000
CHARACTER_FLAG_NONE = 0x00000000,
CHARACTER_FLAG_INVIS_GOD = 0x00000001, // Player has God Invis enabled
CHARACTER_FLAG_RESTING = 0x00000002, // Player is currently earning rest experience
CHARACTER_FLAG_LOCKED_FOR_TRANSFER = 0x00000004, // Player is locked - for paid character transfer
CHARACTER_FLAG_SILENCED = 0x00000008, // Player's chat is silenced (can talk to GMs)
CHARACTER_FLAG_UBERINVIS_GOD = 0x00000010, // Player has God Uberinvis enabled
CHARACTER_FLAG_BEASTMASTER = 0x00000020, // Beastmaster is on
CHARACTER_FLAG_PVP_ENABLED = 0x00000040, // PvP Enabled
CHARACTER_FLAG_PORT_AFTER_RESURRECT = 0x00000080, // World port after resurrect
CHARACTER_FLAG_RESET_TALENTS_ON_LOGIN = 0x00000100, // Clear Talents on login
CHARACTER_FLAG_HAS_PVP_RANK = 0x00000200, // Player has a PvP Rank
CHARACTER_FLAG_HIDE_HELM = 0x00000400, // Hide Helm
CHARACTER_FLAG_HIDE_CLOAK = 0x00000800, // Hide Cloak
CHARACTER_FLAG_SKINNABLE = 0x00001000, // Player is skinnable
CHARACTER_FLAG_GHOST = 0x00002000, // Player is a ghost
CHARACTER_FLAG_RENAME = 0x00004000, // Set to force a rename
CHARACTER_FLAG_RENAME_NEEDS_GM_REVIEW = 0x00008000, // Flag is set after rename for GM review
CHARACTER_FLAG_PVP_DESIRED = 0x00010000, // PvP desired flag
CHARACTER_FLAG_GM_MODE = 0x00020000, // GM Mode enabled
CHARACTER_FLAG_DELETED_BY_TRANSFER = 0x00040000, // Deleted by a character transfer
CHARACTER_FLAG_ON_UNSAFE_TRANSPORT = 0x00080000, // On unsafe transport (port to safe loc on log in)
CHARACTER_FLAG_RENAME_FAILED = 0x00100000, // Player unable to rename character
CHARACTER_FLAG_MOUNT_UPGRADED = 0x00200000, // Mount has been upgraded
CHARACTER_FLAG_FRIENDS_LIST_NEEDS_REPAIR = 0x00400000, // Friends list requires a repair
CHARACTER_FLAG_EXPLORATION_DATA_FIXED = 0x00800000, // character had their exploration data fixed
CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000, // Locked due to billing
CHARACTER_FLAG_DECLINED = 0x02000000, // Player has Russian declined name forms
CHARACTER_FLAG_COMMENTATOR = 0x04000000, // Commentator mode enabled
CHARACTER_FLAG_UBER_COMMENTATOR = 0x08000000, // Uber Commentator mode enabled
CHARACTER_FLAG_XP_FIXED = 0x10000000, // Player's XP has been fixed (2.2.x->2.3.0)
CHARACTER_FLAG_LOG_PACKETS = 0x20000000, // Log player packets
CHARACTER_FLAG_COMPENSATE_FOR_SPELLS = 0x40000000 // Compensate for spells
};
enum CharacterCustomizeFlags
enum CharacterFlags2 : int32
{
CHAR_CUSTOMIZE_FLAG_NONE = 0x00000000,
CHAR_CUSTOMIZE_FLAG_CUSTOMIZE = 0x00000001, // name, gender, etc...
CHAR_CUSTOMIZE_FLAG_FACTION = 0x00010000, // name, gender, faction, etc...
CHAR_CUSTOMIZE_FLAG_RACE = 0x00100000 // name, gender, race, etc...
CHARACTER_FLAG_2_NONE = 0x00000000,
CHARACTER_FLAG_2_CUSTOMIZE = 0x00000001, // Player has paid for a character re-customization
CHARACTER_FLAG_2_GM_SUPPORTER_PROXY = 0x00000002, // GMSupportServer Proxy, NOT for GMTool use
CHARACTER_FLAG_2_CAN_LOAD_ON_NON_SHIP_TRANPORT = 0x00000004, // Character has been saved at least once since saving on non-ship transports was added
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_TAXI_ID = 0x00000008, // Battle Master Misc Field is a Taxi ID
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_1 = 0x00000010, // Temp Pet Autocast Spell 1
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_2 = 0x00000020, // Temp Pet Autocast Spell 2
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_3 = 0x00000040, // Temp Pet Autocast Spell 3
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_4 = 0x00000080, // Temp Pet Autocast Spell 4
CHARACTER_FLAG_2_TEMP_PET_AGGRESSIVE = 0x00000100, // Temp Pet Aggressive
CHARACTER_FLAG_2_TEMP_PET_PASSIVE = 0x00000200, // Temp Pet Passive
CHARACTER_FLAG_2_CAN_INTERACT_WITH_OTHER_REALMS_IN_SITE = 0x00000400, // Characters can interact with other realms in the site
CHARACTER_FLAG_2_CAN_INTERACT_WITH_OTHER_REALMS_IN_REGION = 0x00000800, // Characters can interact with other realms in the region
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_AREA_ID = 0x00001000, // Battle Master Misc Field is an Area ID
CHARACTER_FLAG_2_REEVALUATE_ACCOUNT_ITEM_LICENSES = 0x00002000, // Account Item Licenses must be reevaluated on next login
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_TRANSPORT = 0x00004000, // Battle Master Misc Field is a Transport
CHARACTER_FLAG_2_TALENTS_RESET_USING_TALENT_GROUP_DATA = 0x00008000, // Players talents have been reset using talent group data
CHARACTER_FLAG_2_FACTION_CHANGE = 0x00010000, // This character is eligible to change his faction
CHARACTER_FLAG_2_HAS_CHANGED_RACE_OR_FACTION = 0x00020000, // This character has changed his race/faction and now requires the world server to repair him
CHARACTER_FLAG_2_NO_XP_GAIN = 0x00040000, // This character has chosen to not gain XP by any means
CHARACTER_FLAG_2_RECAST_ON_RESUMMON = 0x00080000, // Recast on Resummon
CHARACTER_FLAG_2_RACE_CHANGE = 0x00100000, // This character is eligible to change his race
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_1 = 0x00200000, // Player has changed Temp Pet Autocast Spell 1
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_2 = 0x00400000, // Player has changed Temp Pet Autocast Spell 2
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_3 = 0x00800000, // Player has changed Temp Pet Autocast Spell 3
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_4 = 0x01000000, // Player has changed Temp Pet Autocast Spell 4
CHARACTER_FLAG_2_CHANGED_GUILD_DURING_CHARACTER_TRANSFER = 0x02000000, // Player has transferred guilds during a PCT
CHARACTER_FLAG_2_CAN_USE_VOID_STORAGE_FEATURE = 0x04000000, // Player is allowed to use the Void Storage feature
CHARACTER_FLAG_2_BATTLE_PETS_CONVERTED = 0x08000000, // Battle Pets Converted
CHARACTER_FLAG_2_QUESTS_FIXED = 0x10000000, // Player has had his quests fixed
CHARACTER_FLAG_2_LOW_LEVEL_RAID_ENABLED = 0x20000000, // The player can join raids even if he's below the min raid level
CHARACTER_FLAG_2_AUTO_DECLINE_GUILD = 0x40000000 // The player will automatically decline guild invites
};
enum CharacterSlot