diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-06-01 23:13:29 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-06-01 23:13:29 +0200 |
commit | d3c4216de8e1dcb9f62d2fcc1b9b72852e5409c9 (patch) | |
tree | 7b2ec9bd8364f3473e5d0d8685bd4ffc8c9fc2cc /src/server/game/Guilds/Guild.cpp | |
parent | cb78ddc63a516af5dd0e00d36e07650f4856dee0 (diff) |
Core/PacketIO: Updated packet structures to 9.2.5
Diffstat (limited to 'src/server/game/Guilds/Guild.cpp')
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 83c8894fc82..d7e5bd9bf41 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -513,6 +513,7 @@ Guild::Member::Member(ObjectGuid::LowType guildId, ObjectGuid guid, GuildRankId m_guid(guid), m_zoneId(0), m_level(0), + m_race(0), m_class(0), m_gender(0), m_flags(GUILDMEMBER_STATUS_NONE), @@ -531,6 +532,7 @@ void Guild::Member::SetStats(Player* player) { m_name = player->GetName(); m_level = player->GetLevel(); + m_race = player->GetRace(); m_class = player->GetClass(); m_gender = player->GetNativeGender(); m_zoneId = player->GetZoneId(); @@ -538,10 +540,11 @@ void Guild::Member::SetStats(Player* player) m_achievementPoints = player->GetAchievementPoints(); } -void Guild::Member::SetStats(std::string_view name, uint8 level, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation) +void Guild::Member::SetStats(std::string_view name, uint8 level, uint8 race, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation) { m_name = name; m_level = level; + m_race = race; m_class = _class; m_gender = gender; m_zoneId = zoneId; @@ -620,12 +623,13 @@ bool Guild::Member::LoadFromDB(Field* fields) SetStats(fields[14].GetString(), fields[15].GetUInt8(), // characters.level - fields[16].GetUInt8(), // characters.class - fields[17].GetUInt8(), // characters.gender - fields[18].GetUInt16(), // characters.zone - fields[19].GetUInt32(), // characters.account + fields[16].GetUInt8(), // characters.race + fields[17].GetUInt8(), // characters.class + fields[18].GetUInt8(), // characters.gender + fields[19].GetUInt16(), // characters.zone + fields[20].GetUInt32(), // characters.account 0); - m_logoutTime = fields[20].GetUInt64(); // characters.logout_time + m_logoutTime = fields[21].GetUInt64(); // characters.logout_time m_totalActivity = 0; m_weekActivity = 0; m_weekReputation = 0; @@ -652,7 +656,13 @@ bool Guild::Member::CheckStats() const return false; } - if (m_class < CLASS_WARRIOR || m_class >= MAX_CLASSES) + if (!sChrRacesStore.LookupEntry(m_race)) + { + TC_LOG_ERROR("guild", "%s has a broken data in field `characters`.`race`, deleting him from guild!", m_guid.ToString().c_str()); + return false; + } + + if (!sChrClassesStore.LookupEntry(m_class)) { TC_LOG_ERROR("guild", "%s has a broken data in field `characters`.`class`, deleting him from guild!", m_guid.ToString().c_str()); return false; @@ -1321,6 +1331,7 @@ void Guild::HandleRoster(WorldSession* session) memberData.Level = member.GetLevel(); memberData.ClassID = member.GetClass(); memberData.Gender = member.GetGender(); + memberData.RaceID = member.GetRace(); memberData.Authenticated = false; memberData.SorEligible = false; @@ -2776,8 +2787,9 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, Optio fields[1].GetUInt8(), fields[2].GetUInt8(), fields[3].GetUInt8(), - fields[4].GetUInt16(), - fields[5].GetUInt32(), + fields[4].GetUInt8(), + fields[5].GetUInt16(), + fields[6].GetUInt32(), 0); ok = member.CheckStats(); |