MeG@LaDo[N] ^_^
Известный
- 280
- 324
создать raknet.h и добавить прототип bool __stdcall onSendPacket(stRakNetHookParams* param);Посмотрел пару уроков по сф и решил сделать жоски скрипт с хуком синхры педа, сделал, ошибок при компиляции никаких нету, но хук как я понял не срабатывает.
main.cpp:#include "main.h" SAMPFUNCS *SF = new SAMPFUNCS(); void __stdcall mainloop() { static bool initialized = false; if (!initialized) { if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized()) { initialized = true; SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, onSendPacket); SF->getSAMP()->registerChatCommand("abc", [](std::string) { AddChat(-1, "Mamut_Rahal active"); actived = !actived; }); //SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(id); SF->getSAMP()->getPlayers()->pRemotePlayer; AddChat(-1, "Ну типа работа с синхрой бу Ега."); } } } BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) { if (dwReasonForCall == DLL_PROCESS_ATTACH) SF->initPlugin(mainloop, hModule); return TRUE; }
main.h:#pragma once #include "SAMPFUNCS_API.h" #include "game_api.h" bool __stdcall onSendPacket(stRakNetHookParams* param); static bool actived = false; #define AddChat SF->getSAMP()->getChat()->AddChatMessage extern SAMPFUNCS *SF;
P.S. смог решить тем, что хук перенес из отдельного файла в main.cpp. Тогда еще 2 вопроса: как можно это сделать в разных файлах и влияет ли как-то на производительность то, что все в одном файле или разделено на несколько?raknet.cpp (сам хук):#include "main.h" bool __stdcall onSendPacket(stRakNetHookParams* param) { if (param->packetId == ID_PLAYER_SYNC) { if (actived) { BYTE packet; stOnFootData data; memset(&data, 0, sizeof(stOnFootData)); //float pos = SF->getSAMP()->getPlayers()->GetOnFootData(2)->fPosition[3]; param->bitStream->ResetReadPointer(); param->bitStream->Read(packet); param->bitStream->Read((PCHAR)&data, sizeof(stOnFootData)); data.fMoveSpeed[0] = 2.5f; data.fMoveSpeed[1] = 2.5f; data.fMoveSpeed[2] = 2.5f; param->bitStream->ResetWritePointer(); param->bitStream->Write((PCHAR)packet); param->bitStream->Write((PCHAR)&data, sizeof(stOnFootData)); AddChat(-1, "%f %f %f", data.fMoveSpeed[0], data.fMoveSpeed[1], data.fMoveSpeed[2]); } } return true; }
и подключить этот файл в main.h и raknet.cpp
или вместо .cpp/h юзать .hpp