Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include "main.h"
- #define chatmsg SF->getSAMP()->getChat()->AddChatMessage
- SAMPFUNCS *SF = new SAMPFUNCS();
- bool act_hook;
- bool act;
- ushort sPlayerID;
- void CALLBACK KickerCMD(std::string CMDParams)
- {
- if (CMDParams.empty())
- return chatmsg(-1, "Error");
- if (sPlayerID = stoi(CMDParams))
- {
- chatmsg(-1, " [МурКик]: set sPlayerID attack %d", sPlayerID);
- act_hook = true;
- }
- }
- bool CALLBACK OUT_PACKET(stRakNetHookParams *params)
- {
- if (act_hook)
- {
- if (params->packetId == PacketEnumeration::ID_UNOCCUPIED_SYNC)
- {
- stUnoccupiedData data;
- memset(&data, 0, sizeof(stUnoccupiedData));
- byte packet;
- params->bitStream->ResetReadPointer();
- params->bitStream->Read(packet);
- params->bitStream->Read((PCHAR)&data, sizeof(stUnoccupiedData));
- params->bitStream->ResetReadPointer();
- data.byteSeatID = 0;
- data.fPosition[0] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[0];
- data.fPosition[1] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[1];
- data.fPosition[2] = SF->getSAMP()->getPlayers()->pRemotePlayer[sPlayerID]->pPlayerData->fOnFootPos[2] - 0.70f;
- data.fMoveSpeed[0] = 0.0f;
- data.fMoveSpeed[1] = 0.0f;
- data.fMoveSpeed[2] = 10.0f; // Тут может быть до 17.0f вроде как
- data.fRoll[0] = 0.100f;
- data.fRoll[1] = 0.100f;
- data.fRoll[2] = 0.100f;
- SF->Log("[sVehicleID: %d] [sPlayerID: %d]", data.sVehicleID, sPlayerID);
- SF->getSAMP()->sendExitVehicle(data.sVehicleID);
- params->bitStream->ResetWritePointer();
- params->bitStream->Write(packet);
- params->bitStream->Write((PCHAR)&data, sizeof(stUnoccupiedData));
- }
- }
- return true;
- }
- void __stdcall mainloop()
- {
- static bool initialized = false;
- if (!initialized)
- {
- if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
- {
- initialized = true;
- SF->getSAMP()->registerChatCommand("мур", KickerCMD);
- SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, OUT_PACKET);
- }
- }
- }
- BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
- {
- if (dwReasonForCall == DLL_PROCESS_ATTACH)
- SF->initPlugin(mainloop, hModule);
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement