Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. void WorldSession::HandleAcknowledgementOpcodes(WorldPacket & recv_data)
  2. {
  3. if (!_player)
  4. return;
  5. switch (recv_data.GetOpcode())
  6. {
  7. case CMSG_MOVE_WATER_WALK_ACK:
  8. _player->m_waterwalk = _player->m_setwaterwalk;
  9. break;
  10.  
  11. case CMSG_MOVE_SET_CAN_FLY_ACK:
  12. _player->FlyCheat = _player->m_setflycheat;
  13. break;
  14. }
  15.  
  16. uint16 opcode = recv_data.GetOpcode();
  17. std::stringstream ss;
  18. ss << "Received ";
  19. switch( opcode )
  20. {
  21. case CMSG_MOVE_FEATHER_FALL_ACK: ss << "Move_Feather_Fall"; break;
  22. case CMSG_MOVE_WATER_WALK_ACK: ss << "Move_Water_Walk"; break;
  23. case CMSG_MOVE_KNOCK_BACK_ACK: ss << "Move_Knock_Back"; break;
  24. case CMSG_MOVE_HOVER_ACK: ss << "Move_Hover"; break;
  25. case CMSG_FORCE_WALK_SPEED_CHANGE_ACK: ss << "Force_Walk_Speed_Change"; break;
  26. case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: ss << "Force_Swim_Speed_Change"; break;
  27. case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: ss << "Force_Swim_Back_Speed_Change"; break;
  28. case CMSG_FORCE_TURN_RATE_CHANGE_ACK: ss << "Force_Turn_Rate_Change"; break;
  29. case CMSG_FORCE_RUN_SPEED_CHANGE_ACK: ss << "Force_Run_Speed_Change"; break;
  30. case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: ss << "Force_Run_Back_Speed_Change"; break;
  31. case CMSG_FORCE_MOVE_ROOT_ACK: ss << "Force_Move_Root"; break;
  32. case CMSG_FORCE_MOVE_UNROOT_ACK: ss << "Force_Move_Unroot"; break;
  33. default: ss << "Unknown"; break;
  34. }
  35. ss << " Acknowledgement. PktSize: " << recv_data.size();
  36. sLog.outDebug( ss.str().c_str() );
  37.  
  38. // uint16 opcode = recv_data.GetOpcode();
  39. if (opcode == CMSG_FORCE_RUN_SPEED_CHANGE_ACK)
  40. {
  41.  
  42. uint64 GUID;
  43. uint32 Flags, unk0, unk1, d_time;
  44. float X, Y, Z, O, speed;
  45.  
  46. recv_data >> GUID;
  47. recv_data >> unk0 >> Flags;
  48. if (Flags & (0x2000 | 0x6000)) //0x2000 == jumping 0x6000 == Falling
  49. {
  50. uint32 unk2, unk3, unk4, unk5;
  51. float OldSpeed;
  52.  
  53. recv_data >> d_time;
  54. recv_data >> X >> Y >> Z >> O;
  55. recv_data >> unk2 >> unk3; //no idea, maybe unk2 = flags2
  56. recv_data >> unk4 >> unk5; //no idea
  57. recv_data >> OldSpeed >> speed;
  58. }
  59. else //single check
  60. {
  61. recv_data >> d_time;
  62. recv_data >> X >> Y >> Z >> O;
  63. recv_data >> unk1 >> speed;
  64. }
  65.  
  66. // if its not good kick player???
  67. if (_player->GetPlayerSpeed() != speed) // Add a kick function here, with a verification msg that the player was kicked?
  68. {
  69. sLog.outError("SpeedChange player:%s is NOT correct, its set to: %f he seems to be cheating",_player->GetName(), speed);
  70. }
  71. }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement