add opcode handler CMSG_MOVE_GRAVITY_DISABLE_ACK, CMSG_MOVE_GRAVITY_E…

…NABLE_ACK

to supress the missing ack handler message.. from Arkcore
This commit is contained in:
Aokromes
2016-09-22 05:26:18 +02:00
parent 0cd191daf6
commit ca4b5a0bcd
4 changed files with 60 additions and 3 deletions

View File

@@ -574,6 +574,15 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket& recvData)
_player->SendMessageToSet(&data, false);
}
void WorldSession::HandleGravityAckMessage(WorldPacket& recvData)
{
MovementInfo movementInfo;
GetPlayer()->ReadMovementInfo(recvData, &movementInfo);
if (movementInfo.guid != _player->m_mover->GetGUID())
TC_LOG_ERROR("network", "HandleGravityAckMessage: incorrect mover guid: mover is " UI64FMTD " (%s - Entry: %u) and should be " UI64FMTD, uint64(movementInfo.guid), GetLogNameForGuid(movementInfo.guid), GUID_ENPART(movementInfo.guid), _player->m_mover->GetGUID());
}
void WorldSession::HandleMoveHoverAck(WorldPacket& recvData)
{
TC_LOG_DEBUG("network", "CMSG_MOVE_HOVER_ACK");

View File

@@ -5360,6 +5360,50 @@ MovementStatusElements const CastSpellEmbeddedMovement[] =
MSEEnd,
};
MovementStatusElements const MoveGravityDisable[] =
{
MSEHasGuidByte0,
MSEHasGuidByte1,
MSEHasGuidByte5,
MSEHasGuidByte7,
MSEHasGuidByte6,
MSEHasGuidByte4,
MSEHasGuidByte3,
MSEHasGuidByte2,
MSEGuidByte7,
MSEGuidByte2,
MSEGuidByte0,
MSECounter,
MSEGuidByte5,
MSEGuidByte1,
MSEGuidByte3,
MSEGuidByte4,
MSEGuidByte6,
MSEEnd,
};
MovementStatusElements const MoveGravityEnable[] =
{
MSEHasGuidByte1,
MSEHasGuidByte4,
MSEHasGuidByte7,
MSEHasGuidByte5,
MSEHasGuidByte2,
MSEHasGuidByte0,
MSEHasGuidByte3,
MSEHasGuidByte6,
MSEGuidByte3,
MSECounter,
MSEGuidByte7,
MSEGuidByte6,
MSEGuidByte4,
MSEGuidByte0,
MSEGuidByte1,
MSEGuidByte5,
MSEGuidByte2,
MSEEnd,
};
void Movement::ExtraMovementStatusElement::ReadNextElement(ByteBuffer& packet)
{
MovementStatusElements const element = _elements[_index++];
@@ -5699,6 +5743,10 @@ MovementStatusElements const* GetMovementStatusElementsSequence(Opcodes opcode)
case CMSG_PET_CAST_SPELL:
case CMSG_USE_ITEM:
return CastSpellEmbeddedMovement;
case SMSG_MOVE_GRAVITY_DISABLE:
return MoveGravityDisable;
case SMSG_MOVE_GRAVITY_ENABLE:
return MoveGravityEnable;
default:
break;
}

View File

@@ -369,8 +369,8 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleGravityAckMessage );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleGravityAckMessage );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_HOVER_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveHoverAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_KNOCK_BACK_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveKnockBackAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_NOT_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveNotActiveMover );

View File

@@ -506,7 +506,7 @@ class TC_GAME_API WorldSession
// Knockback
void HandleMoveKnockBackAck(WorldPacket& recvPacket);
void HandleGravityAckMessage(WorldPacket & recvData);
void HandleMoveTeleportAck(WorldPacket& recvPacket);
void HandleForceSpeedChangeAck(WorldPacket& recvData);
void HandleSetCollisionHeightAck(WorldPacket& recvPacket);