mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 13:37:00 +00:00
[10363] More wide use ObjectGuid in way remove MAKE_NEW_GUID uses.
Also * Fixed some amount wrong uses low guids as full player guids. * Add private without body ObjectGuid(uint32 const&) for catch wrong assigns low guids to ObjectGuid. In some cases need assign "0" guid, then use ObjectGuid() instead. * Fixed .pdump commands work.
This commit is contained in:
parent
db7db6382a
commit
5f44c4da21
41 changed files with 369 additions and 323 deletions
|
|
@ -372,7 +372,8 @@ bool Guild::LoadMembersFromDB(QueryResult *guildMembersResult)
|
|||
break;
|
||||
|
||||
MemberSlot newmember;
|
||||
uint64 guid = MAKE_NEW_GUID(fields[1].GetUInt32(), 0, HIGHGUID_PLAYER);
|
||||
uint32 lowguid = fields[1].GetUInt32();
|
||||
ObjectGuid guid = ObjectGuid(HIGHGUID_PLAYER, lowguid);
|
||||
newmember.RankId = fields[2].GetUInt32();
|
||||
// don't allow member to have not existing rank!
|
||||
if (newmember.RankId >= m_Ranks.size())
|
||||
|
|
@ -398,25 +399,25 @@ bool Guild::LoadMembersFromDB(QueryResult *guildMembersResult)
|
|||
// this code will remove not existing character guids from guild
|
||||
if (newmember.Level < 1 || newmember.Level > STRONG_MAX_LEVEL) // can be at broken `data` field
|
||||
{
|
||||
sLog.outError("Player (GUID: %u) has a broken data in field `characters`.`data`, deleting him from guild!",GUID_LOPART(guid));
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guid = '%u'", GUID_LOPART(guid));
|
||||
sLog.outError("%s has a broken data in field `characters`.`data`, deleting him from guild!", guid.GetString().c_str());
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guid = '%u'", lowguid);
|
||||
continue;
|
||||
}
|
||||
if (!newmember.ZoneId)
|
||||
{
|
||||
sLog.outError("Player (GUID: %u) has broken zone-data", GUID_LOPART(guid));
|
||||
sLog.outError("%s has broken zone-data", guid.GetString().c_str());
|
||||
// here it will also try the same, to get the zone from characters-table, but additional it tries to find
|
||||
// the zone through xy coords .. this is a bit redundant, but shouldn't be called often
|
||||
newmember.ZoneId = Player::GetZoneIdFromDB(guid);
|
||||
}
|
||||
if (newmember.Class < CLASS_WARRIOR || newmember.Class >= MAX_CLASSES) // can be at broken `class` field
|
||||
{
|
||||
sLog.outError("Player (GUID: %u) has a broken data in field `characters`.`class`, deleting him from guild!",GUID_LOPART(guid));
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guid = '%u'", GUID_LOPART(guid));
|
||||
sLog.outError("%s has a broken data in field `characters`.`class`, deleting him from guild!", guid.GetString().c_str());
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guid = '%u'", lowguid);
|
||||
continue;
|
||||
}
|
||||
|
||||
members[GUID_LOPART(guid)] = newmember;
|
||||
members[lowguid] = newmember;
|
||||
|
||||
} while (guildMembersResult->NextRow());
|
||||
|
||||
|
|
@ -1538,7 +1539,7 @@ void Guild::DisplayGuildBankLogs(WorldSession *session, uint8 TabId)
|
|||
for (GuildBankEventLog::const_iterator itr = m_GuildBankEventLog_Money.begin(); itr != m_GuildBankEventLog_Money.end(); ++itr)
|
||||
{
|
||||
data << uint8(itr->EventType);
|
||||
data << uint64(MAKE_NEW_GUID(itr->PlayerGuid,0,HIGHGUID_PLAYER));
|
||||
data << ObjectGuid(HIGHGUID_PLAYER, itr->PlayerGuid);
|
||||
if (itr->EventType == GUILD_BANK_LOG_DEPOSIT_MONEY ||
|
||||
itr->EventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
|
||||
itr->EventType == GUILD_BANK_LOG_REPAIR_MONEY ||
|
||||
|
|
@ -1568,7 +1569,7 @@ void Guild::DisplayGuildBankLogs(WorldSession *session, uint8 TabId)
|
|||
for (GuildBankEventLog::const_iterator itr = m_GuildBankEventLog_Item[TabId].begin(); itr != m_GuildBankEventLog_Item[TabId].end(); ++itr)
|
||||
{
|
||||
data << uint8(itr->EventType);
|
||||
data << uint64(MAKE_NEW_GUID(itr->PlayerGuid,0,HIGHGUID_PLAYER));
|
||||
data << ObjectGuid(HIGHGUID_PLAYER, itr->PlayerGuid);
|
||||
if (itr->EventType == GUILD_BANK_LOG_DEPOSIT_MONEY ||
|
||||
itr->EventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
|
||||
itr->EventType == GUILD_BANK_LOG_REPAIR_MONEY ||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue