Core/Players: Add PlayerExtraFlags for tracking race change, level boost, and raf level grant usage
Port From (https://github.com/TrinityCore/TrinityCore/commit/c2751f9195959a199413e332d2b595a60e4a6d35)
This commit is contained in:
@@ -602,6 +602,7 @@ namespace Framework.Constants
|
||||
VengefulGladiator = 0x0000010000000000, // 40
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum PlayerExtraFlags
|
||||
{
|
||||
// gm abilities
|
||||
@@ -612,7 +613,12 @@ namespace Framework.Constants
|
||||
GMChat = 0x20, // Show GM badge in chat messages
|
||||
|
||||
// other states
|
||||
PVPDeath = 0x100 // store PvP death status until corpse creating.
|
||||
PVPDeath = 0x100, // store PvP death status until corpse creating.
|
||||
|
||||
// Character services markers
|
||||
HasRaceChanged = 0x0200,
|
||||
GrantedLevelsFromRaf = 0x0400,
|
||||
LevelBoosted = 0x0800
|
||||
}
|
||||
|
||||
public enum EquipmentSetUpdateState
|
||||
|
||||
@@ -591,7 +591,7 @@ namespace Framework.Database
|
||||
PrepareStatement(CharStatements.DEL_PETITION_SIGNATURE_BY_GUID, "DELETE FROM petition_sign WHERE petitionguid = ?");
|
||||
PrepareStatement(CharStatements.DEL_CHAR_DECLINED_NAME, "DELETE FROM character_declinedname WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.INS_CHAR_DECLINED_NAME, "INSERT INTO character_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES (?, ?, ?, ?, ?, ?)");
|
||||
PrepareStatement(CharStatements.UPD_CHAR_RACE, "UPDATE characters SET race = ? WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.UPD_CHAR_RACE, "UPDATE characters SET race = ?, extra_flags = extra_flags | ? WHERE guid = ?");
|
||||
PrepareStatement(CharStatements.DEL_CHAR_SKILL_LANGUAGES, "DELETE FROM character_skills WHERE skill IN (98, 113, 759, 111, 313, 109, 115, 315, 673, 137) AND guid = ?");
|
||||
PrepareStatement(CharStatements.INS_CHAR_SKILL_LANGUAGE, "INSERT INTO `character_skills` (guid, skill, value, max) VALUES (?, ?, 300, 300)");
|
||||
PrepareStatement(CharStatements.UPD_CHAR_TAXI_PATH, "UPDATE characters SET taxi_path = '' WHERE guid = ?");
|
||||
|
||||
@@ -6391,6 +6391,13 @@ namespace Game.Entities
|
||||
SendMovementSetCollisionHeight(scale * GetCollisionHeight(), UpdateCollisionHeightReason.Scale);
|
||||
}
|
||||
|
||||
bool HasRaceChanged() { return m_ExtraFlags.HasFlag(PlayerExtraFlags.HasRaceChanged); }
|
||||
void SetHasRaceChanged() { m_ExtraFlags |= PlayerExtraFlags.HasRaceChanged; }
|
||||
bool HasBeenGrantedLevelsFromRaF() { return m_ExtraFlags.HasFlag(PlayerExtraFlags.GrantedLevelsFromRaf); }
|
||||
void SetBeenGrantedLevelsFromRaF() { m_ExtraFlags |= PlayerExtraFlags.GrantedLevelsFromRaf; }
|
||||
bool HasLevelBoosted() { return m_ExtraFlags.HasFlag(PlayerExtraFlags.LevelBoosted); }
|
||||
void SetHasLevelBoosted() { m_ExtraFlags |= PlayerExtraFlags.LevelBoosted; }
|
||||
|
||||
public uint GetXP() { return m_activePlayerData.XP; }
|
||||
public uint GetXPForNextLevel() { return m_activePlayerData.NextLevelXP; }
|
||||
|
||||
|
||||
@@ -1795,7 +1795,8 @@ namespace Game
|
||||
{
|
||||
stmt = DB.Characters.GetPreparedStatement(CharStatements.UPD_CHAR_RACE);
|
||||
stmt.AddValue(0, (byte)factionChangeInfo.RaceID);
|
||||
stmt.AddValue(1, lowGuid);
|
||||
stmt.AddValue(1, (ushort)PlayerExtraFlags.HasRaceChanged);
|
||||
stmt.AddValue(2, lowGuid);
|
||||
|
||||
trans.Append(stmt);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user