本文整理汇总了C++中MovementInfo::GetGuid方法的典型用法代码示例。如果您正苦于以下问题:C++ MovementInfo::GetGuid方法的具体用法?C++ MovementInfo::GetGuid怎么用?C++ MovementInfo::GetGuid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MovementInfo
的用法示例。
在下文中一共展示了MovementInfo::GetGuid方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleDismissControlledVehicle
void WorldSession::HandleDismissControlledVehicle(WorldPacket& recv_data)
{
DEBUG_LOG("WORLD: Received CMSG_DISMISS_CONTROLLED_VEHICLE");
recv_data.hexlike();
MovementInfo movementInfo;
recv_data >> movementInfo;
if (!GetPlayer()->GetVehicle())
return;
bool dismiss = true;
Creature* vehicle = GetPlayer()->GetMap()->GetAnyTypeCreature(movementInfo.GetGuid());
if (!vehicle || !vehicle->IsVehicle() || !vehicle->GetVehicleKit() || !vehicle->GetEntry())
return;
if (vehicle->GetVehicleKit()->GetEntry()->m_flags & (VEHICLE_FLAG_NOT_DISMISS | VEHICLE_FLAG_ACCESSORY))
dismiss = false;
// Client freezes...
if (vehicle->GetEntry() == 34812 || vehicle->GetEntry() == 34819 || vehicle->GetEntry() == 34822 ||
vehicle->GetEntry() == 34823 || vehicle->GetEntry() == 34824)
dismiss = false;
GetPlayer()->m_movementInfo = movementInfo;
GetPlayer()->ExitVehicle();
if (dismiss)
vehicle->ForcedDespawn();
}
示例2: HandleMoveKnockBackAck
void WorldSession::HandleMoveKnockBackAck(WorldPacket& recv_data)
{
DEBUG_LOG("CMSG_MOVE_KNOCK_BACK_ACK");
Unit* mover = _player->GetMover();
Player* plMover = mover->GetTypeId() == TYPEID_PLAYER ? (Player*)mover : NULL;
// ignore, waiting processing in WorldSession::HandleMoveWorldportAckOpcode and WorldSession::HandleMoveTeleportAck
if (plMover && plMover->IsBeingTeleported())
{
recv_data.rpos(recv_data.wpos()); // prevent warnings spam
return;
}
MovementInfo movementInfo;
recv_data >> movementInfo;
if (!VerifyMovementInfo(movementInfo, movementInfo.GetGuid()))
return;
HandleMoverRelocation(movementInfo);
WorldPacket data(SMSG_MOVE_UPDATE_KNOCK_BACK, recv_data.size() + 15);
data << movementInfo;
mover->SendMessageToSetExcept(&data, _player);
}
示例3: HandleMoveNotActiveMoverOpcode
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
{
DEBUG_LOG("WORLD: Received opcode CMSG_MOVE_NOT_ACTIVE_MOVER");
recv_data.hexlike();
MovementInfo mi;
recv_data >> mi;
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(),
mi.GetGuid().GetString().c_str());
return;
}
_player->m_movementInfo = mi;
}
示例4: HandleMoveNotActiveMoverOpcode
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket &recv_data)
{
DEBUG_LOG("WORLD: Recvd CMSG_MOVE_NOT_ACTIVE_MOVER");
recv_data.hexlike();
MovementInfo mi;
recv_data >> mi;
if (_player->GetMover()->GetObjectGuid() == mi.GetGuid())
{
DEBUG_LOG("World: CMSG_MOVE_NOT_ACTIVE_MOVER %s received, but his now is active mover!", mi.GetGuid().GetString().c_str());
recv_data.rpos(recv_data.wpos()); // prevent warnings spam
}
_player->m_movementInfo = mi;
}
示例5: HandleMovementOpcodes
void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data )
{
Opcodes opcode = recv_data.GetOpcode();
DEBUG_FILTER_LOG(LOG_FILTER_PLAYER_MOVES,"WorldSession::HandleMovementOpcodes: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode);
//recv_data.hexlike();
Unit* mover = _player->GetMover();
Player* plMover = mover->GetTypeId() == TYPEID_PLAYER ? (Player*)mover : NULL;
// ignore, waiting processing in WorldSession::HandleMoveWorldportAckOpcode and WorldSession::HandleMoveTeleportAck
if(plMover && plMover->IsBeingTeleported())
{
recv_data.rpos(recv_data.wpos()); // prevent warnings spam
return;
}
/* extract packet */
MovementInfo movementInfo;
recv_data >> movementInfo;
/*----------------*/
if (!VerifyMovementInfo(movementInfo, movementInfo.GetGuid()))
return;
// fall damage generation (ignore in flight case that can be triggered also at lags in moment teleportation to another map).
if (opcode == CMSG_MOVE_FALL_LAND && plMover && !plMover->IsTaxiFlying())
plMover->HandleFall(movementInfo);
/* process anticheat check */
GetPlayer()->GetAntiCheat()->DoAntiCheatCheck(CHECK_MOVEMENT,movementInfo, opcode);
/* process position-change */
HandleMoverRelocation(movementInfo);
if (plMover)
plMover->UpdateFallInformationIfNeed(movementInfo, opcode);
WorldPacket data(SMSG_PLAYER_MOVE, recv_data.size());
data << movementInfo;
mover->SendMessageToSetExcept(&data, _player);
}