[svn] * Added some player info cache to the core. Thanx to Rognar for patch, visaglis for testing and bugging me to add it.

--HG--
branch : trunk
This commit is contained in:
KingPin
2008-10-21 12:43:24 -05:00
parent d0325e2536
commit ed94fdb8bc
5 changed files with 156 additions and 0 deletions

View File

@@ -363,6 +363,21 @@ bool Guild::FillPlayerData(uint64 guid, MemberSlot* memslot)
}
else
{
PCachePlayerInfo pInfo = objmgr.GetPlayerInfoFromCache(GUID_LOPART(guid));
if(pInfo)
{
plName = pInfo->sPlayerName;
plClass = pInfo->unClass;
if(plClass<CLASS_WARRIOR||plClass>=MAX_CLASSES) // can be at broken `class` field
{
sLog.outError("Player (GUID: %u) has a broken data in field `characters`.`class`.",GUID_LOPART(guid));
return false;
}
plLevel = pInfo->unLevel;
plZone = Player::GetZoneIdFromDB(guid);
}
else
{
if(!objmgr.GetPlayerNameByGUID(guid, plName)) // player doesn't exist
return false;
@@ -386,6 +401,7 @@ bool Guild::FillPlayerData(uint64 guid, MemberSlot* memslot)
delete result;
}
}
memslot->name = plName;
memslot->level = plLevel;