diff options
| -rwxr-xr-x | src/server/game/Entities/Object/Object.cpp | 17 | ||||
| -rwxr-xr-x | src/server/game/Entities/Object/Updates/UpdateData.h | 2 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 36 |
3 files changed, 35 insertions, 20 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index ae68624e58e..d4e48548aa0 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -301,9 +301,9 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint16 flags) const *data << self->GetSpeed(MOVE_WALK); *data << self->GetSpeed(MOVE_RUN); - *data << self->GetSpeed(MOVE_SWIM_BACK); - *data << self->GetSpeed(MOVE_SWIM); *data << self->GetSpeed(MOVE_RUN_BACK); + *data << self->GetSpeed(MOVE_SWIM); + *data << self->GetSpeed(MOVE_SWIM_BACK); *data << self->GetSpeed(MOVE_FLIGHT); *data << self->GetSpeed(MOVE_FLIGHT_BACK); *data << self->GetSpeed(MOVE_TURN_RATE); @@ -423,9 +423,7 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint16 flags) const // 0x2 if (flags & UPDATEFLAG_TRANSPORT) - { *data << uint32(getMSTime()); // ms time - } // 0x80 if (flags & UPDATEFLAG_VEHICLE) // unused for now @@ -434,11 +432,14 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint16 flags) const *data << float(((Creature*)this)->GetOrientation()); // facing adjustment } - // 0x800 - if (flags & UPDATEFLAG_UNK2) - *data << uint16(0) << uint16(0) << uint16(0); //unk + // 0x800 - AnimKits + if (flags & UPDATEFLAG_ANIMKITS) + *data << uint16(0) << uint16(0) << uint16(0); //unk + + // 0x200 + if (flags & UPDATEFLAG_ROTATION) + *data << int64(((GameObject*)this)->GetRotation()); - // 0x1000 if (flags & UPDATEFLAG_UNK3) *data << uint8(0);//unk counter to read uint32 values diff --git a/src/server/game/Entities/Object/Updates/UpdateData.h b/src/server/game/Entities/Object/Updates/UpdateData.h index 4e74e67f986..d1bdad13a19 100755 --- a/src/server/game/Entities/Object/Updates/UpdateData.h +++ b/src/server/game/Entities/Object/Updates/UpdateData.h @@ -44,7 +44,7 @@ enum OBJECT_UPDATE_FLAGS UPDATEFLAG_POSITION = 0x0100, UPDATEFLAG_ROTATION = 0x0200, UPDATEFLAG_UNK3 = 0x0400, - UPDATEFLAG_UNK4 = 0x0800, + UPDATEFLAG_ANIMKITS = 0x0800, UPDATEFLAG_UNK5 = 0x1000, UPDATEFLAG_UNK6 = 0x2000 }; 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); |
