mirror of
https://github.com/mangosfour/server.git
synced 2025-12-21 19:37:02 +00:00
Rebase resync
This commit is contained in:
parent
a0797532e8
commit
1997c1e903
3106 changed files with 11118 additions and 627576 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/**
|
||||
* This code is part of MaNGOS. Contributor & Copyright details are in AUTHORS/THANKS.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
#include "MapPersistentStateMgr.h"
|
||||
#include "ObjectMgr.h"
|
||||
|
||||
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket& /*recv_data*/)
|
||||
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket & /*recv_data*/)
|
||||
{
|
||||
DEBUG_LOG("WORLD: got MSG_MOVE_WORLDPORT_ACK.");
|
||||
HandleMoveWorldportAckOpcode();
|
||||
|
|
@ -252,9 +252,12 @@ void WorldSession::HandleMoveTeleportAckOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleMovementOpcodes(WorldPacket& recv_data)
|
||||
{
|
||||
uint32 opcode = recv_data.GetOpcode();
|
||||
DEBUG_LOG("WORLD: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode);
|
||||
recv_data.hexlike();
|
||||
Opcodes opcode = recv_data.GetOpcode();
|
||||
if (!sLog.HasLogFilter(LOG_FILTER_PLAYER_MOVES))
|
||||
{
|
||||
DEBUG_LOG("WORLD: Received opcode %s (%u, 0x%X)", LookupOpcodeName(opcode), opcode, opcode);
|
||||
recv_data.hexlike();
|
||||
}
|
||||
|
||||
Unit* mover = _player->GetMover();
|
||||
Player* plMover = mover->GetTypeId() == TYPEID_PLAYER ? (Player*)mover : NULL;
|
||||
|
|
@ -291,8 +294,8 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recv_data)
|
||||
{
|
||||
uint32 opcode = recv_data.GetOpcode();
|
||||
DEBUG_LOG("WORLD: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode);
|
||||
Opcodes opcode = recv_data.GetOpcode();
|
||||
DEBUG_LOG("WORLD: Received %s (%u, 0x%X) opcode", recv_data.GetOpcodeName(), opcode, opcode);
|
||||
|
||||
/* extract packet */
|
||||
ObjectGuid guid;
|
||||
|
|
@ -363,7 +366,7 @@ void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("WORLD: Recvd CMSG_SET_ACTIVE_MOVER");
|
||||
DEBUG_LOG("WORLD: Received opcode CMSG_SET_ACTIVE_MOVER");
|
||||
recv_data.hexlike();
|
||||
|
||||
ObjectGuid guid;
|
||||
|
|
@ -379,22 +382,18 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("WORLD: Recvd CMSG_MOVE_NOT_ACTIVE_MOVER");
|
||||
DEBUG_LOG("WORLD: Received opcode CMSG_MOVE_NOT_ACTIVE_MOVER");
|
||||
recv_data.hexlike();
|
||||
|
||||
ObjectGuid old_mover_guid;
|
||||
MovementInfo mi;
|
||||
|
||||
recv_data >> old_mover_guid.ReadAsPacked();
|
||||
recv_data >> mi;
|
||||
|
||||
if (_player->GetMover()->GetObjectGuid() == old_mover_guid)
|
||||
if (_player->GetMover()->GetObjectGuid() == mi.GetGuid())
|
||||
{
|
||||
sLog.outError("HandleMoveNotActiveMover: incorrect mover guid: mover is %s and should be %s instead of %s",
|
||||
_player->GetMover()->GetGuidStr().c_str(),
|
||||
_player->GetGuidStr().c_str(),
|
||||
old_mover_guid.GetString().c_str());
|
||||
recv_data.rpos(recv_data.wpos()); // prevent warnings spam
|
||||
mi.GetGuid().GetString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -403,7 +402,7 @@ void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleMountSpecialAnimOpcode(WorldPacket& /*recvdata*/)
|
||||
{
|
||||
// DEBUG_LOG("WORLD: Recvd CMSG_MOUNTSPECIAL_ANIM");
|
||||
// DEBUG_LOG("WORLD: Received opcode CMSG_MOUNTSPECIAL_ANIM");
|
||||
|
||||
WorldPacket data(SMSG_MOUNTSPECIAL_ANIM, 8);
|
||||
data << GetPlayer()->GetObjectGuid();
|
||||
|
|
@ -425,40 +424,36 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket& recv_data)
|
|||
return;
|
||||
}
|
||||
|
||||
ObjectGuid guid;
|
||||
MovementInfo movementInfo;
|
||||
|
||||
recv_data >> guid.ReadAsPacked();
|
||||
recv_data >> Unused<uint32>(); // knockback packets counter
|
||||
recv_data >> movementInfo;
|
||||
|
||||
if (!VerifyMovementInfo(movementInfo, guid))
|
||||
if (!VerifyMovementInfo(movementInfo, movementInfo.GetGuid()))
|
||||
return;
|
||||
|
||||
HandleMoverRelocation(movementInfo);
|
||||
|
||||
WorldPacket data(MSG_MOVE_KNOCK_BACK, recv_data.size() + 15);
|
||||
data << mover->GetPackGUID();
|
||||
WorldPacket data(SMSG_MOVE_UPDATE_KNOCK_BACK, recv_data.size() + 15);
|
||||
data << movementInfo;
|
||||
data << movementInfo.GetJumpInfo().sinAngle;
|
||||
data << movementInfo.GetJumpInfo().cosAngle;
|
||||
data << movementInfo.GetJumpInfo().xyspeed;
|
||||
data << movementInfo.GetJumpInfo().velocity;
|
||||
mover->SendMessageToSetExcept(&data, _player);
|
||||
}
|
||||
|
||||
void WorldSession::SendKnockBack(float angle, float horizontalSpeed, float verticalSpeed)
|
||||
{
|
||||
ObjectGuid guid = GetPlayer()->GetObjectGuid();
|
||||
float vsin = sin(angle);
|
||||
float vcos = cos(angle);
|
||||
|
||||
WorldPacket data(SMSG_MOVE_KNOCK_BACK, 9 + 4 + 4 + 4 + 4 + 4);
|
||||
data << GetPlayer()->GetPackGUID();
|
||||
data << uint32(0); // Sequence
|
||||
data << float(vcos); // x direction
|
||||
WorldPacket data(SMSG_MOVE_KNOCK_BACK, 9 + 4 + 4 + 4 + 4 + 4 + 1 + 8);
|
||||
data.WriteGuidMask<0, 3, 6, 7, 2, 5, 1, 4>(guid);
|
||||
data.WriteGuidBytes<1>(guid);
|
||||
data << float(vsin); // y direction
|
||||
data << uint32(0); // Sequence
|
||||
data.WriteGuidBytes<6, 7>(guid);
|
||||
data << float(horizontalSpeed); // Horizontal speed
|
||||
data.WriteGuidBytes<4, 5, 3>(guid);
|
||||
data << float(-verticalSpeed); // Z Movement speed (vertical)
|
||||
data << float(vcos); // x direction
|
||||
data.WriteGuidBytes<2, 0>(guid);
|
||||
SendPacket(&data);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue