diff options
author | KingPin <none@none> | 2008-10-21 12:43:24 -0500 |
---|---|---|
committer | KingPin <none@none> | 2008-10-21 12:43:24 -0500 |
commit | ed94fdb8bc88ed204df805ad292da5c1e2018dde (patch) | |
tree | 40a71c55053d3ccd480eba879dc916fc304f9067 /src/game/Guild.cpp | |
parent | d0325e253616e855df37a2d23414ff6b93db93bf (diff) |
[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
Diffstat (limited to 'src/game/Guild.cpp')
-rw-r--r-- | src/game/Guild.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index cec6507eb7c..bbf8c278ace 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -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; |