diff options
| author | Shauren <shauren.trinity@gmail.com> | 2012-01-20 20:31:59 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2012-01-20 20:31:59 +0100 |
| commit | bdd02e763b27869de9e9d0200ac75189e1bdf625 (patch) | |
| tree | 27d2a4faab9fbc9c03afad5b325faac8bf60d231 /src/server/game/Entities/Player | |
| parent | 075780ad597d3073d434f73a33116a2cddbb73c9 (diff) | |
Core/Objects: Fixed visibility of gameobjects and fixed client crash when logging in a character that had currencies (honor points)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 975a999267b..4d9dd6aa669 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7302,17 +7302,31 @@ void Player::SendCurrencies() const for (PlayerCurrenciesMap::const_iterator itr = m_currencies.begin(); itr != m_currencies.end(); ++itr) { - CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first); - if (!entry) - continue; - - uint32 precision = (entry->Flags & 0x8) ? 100 : 1; - packet << uint32(itr->second.weekCount / precision); - packet << uint8(0); // unknown - packet << uint32(entry->ID); - packet << uint32(sWorld->GetNextWeeklyQuestsResetTime() - 1*WEEK); - packet << uint32(_GetCurrencyWeekCap(entry) / precision); - packet << uint32(itr->second.totalCount / precision); + CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first); + if (!entry) + continue; + + uint32 precision = (entry->Flags & 0x8) ? 100 : 1; + packet.WriteBit(_GetCurrencyWeekCap(entry) / precision); + packet.WriteBit(0); + packet.WriteBit(itr->second.weekCount / precision); + } + + for (PlayerCurrenciesMap::const_iterator itr = m_currencies.begin(); itr != m_currencies.end(); ++itr) + { + CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first); + if (!entry) + continue; + + uint32 precision = (entry->Flags & 0x8) ? 100 : 1; + packet << uint32(entry->ID); + if (uint32 weekCap = (_GetCurrencyWeekCap(entry) / precision)) + packet << uint32(weekCap); + packet << uint32(itr->second.totalCount / precision); + packet << uint8(0); // unknown + //packet << uint32(0); // season total earned + if (uint32 weekCount = (itr->second.weekCount / precision)) + packet << uint32(weekCount); } GetSession()->SendPacket(&packet); |
