Advertisement
Guest User

Untitled

a guest
May 26th, 2019
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. #include <Windows.h>
  2. #include "main.h"
  3.  
  4. #define chatmsg SF->getSAMP()->getChat()->AddChatMessage
  5.  
  6. SAMPFUNCS *SF = new SAMPFUNCS();
  7.  
  8. bool act_hook;
  9. bool act;
  10. ushort sPlayerID;
  11.  
  12. void CALLBACK KickerCMD(std::string CMDParams)
  13. {
  14. if (CMDParams.empty())
  15. return chatmsg(-1, "Error");
  16.  
  17. if (sPlayerID = stoi(CMDParams))
  18. {
  19. chatmsg(-1, " [МурКик]: set sPlayerID attack %d", sPlayerID);
  20. act_hook = true;
  21. }
  22. }
  23.  
  24. bool CALLBACK OUT_PACKET(stRakNetHookParams *params)
  25. {
  26. if (act_hook)
  27. {
  28. if (params->packetId == PacketEnumeration::ID_UNOCCUPIED_SYNC)
  29. {
  30. stUnoccupiedData data;
  31. memset(&data, 0, sizeof(stUnoccupiedData));
  32. byte packet;
  33.  
  34. params->bitStream->ResetReadPointer();
  35. params->bitStream->Read(packet);
  36. params->bitStream->Read((PCHAR)&data, sizeof(stUnoccupiedData));
  37. params->bitStream->ResetReadPointer();
  38.  
  39. data.byteSeatID = 0;
  40.  
  41. data.fPosition[0] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[0];
  42. data.fPosition[1] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[1];
  43. data.fPosition[2] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[2] - 0.70f;
  44.  
  45. data.fMoveSpeed[0] = 0.0f;
  46. data.fMoveSpeed[1] = 0.0f;
  47. data.fMoveSpeed[2] = 10.0f; // Тут может быть до 17.0f вроде как
  48.  
  49. data.fRoll[0] = 0.100f;
  50. data.fRoll[1] = 0.100f;
  51. data.fRoll[2] = 0.100f;
  52.  
  53. SF->Log("[sVehicleID: %d] [sPlayerID: %d]", data.sVehicleID, sPlayerID);
  54. SF->getSAMP()->sendExitVehicle(data.sVehicleID);
  55.  
  56. params->bitStream->ResetWritePointer();
  57. params->bitStream->Write(packet);
  58. params->bitStream->Write((PCHAR)&data, sizeof(stUnoccupiedData));
  59. }
  60. }
  61. return true;
  62. }
  63.  
  64. void __stdcall mainloop()
  65. {
  66. static bool initialized = false;
  67. if (!initialized)
  68. {
  69. if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
  70. {
  71. initialized = true;
  72. SF->getSAMP()->registerChatCommand("мур", KickerCMD);
  73. SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, OUT_PACKET);
  74. }
  75. }
  76. }
  77.  
  78. BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
  79. {
  80. if (dwReasonForCall == DLL_PROCESS_ATTACH)
  81. SF->initPlugin(mainloop, hModule);
  82. return TRUE;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement