#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS *SF = new SAMPFUNCS();
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
{
size_t len;
DWORD color;
char message[256];
params->bitStream->ResetReadPointer();
params->bitStream->Read(color);
params->bitStream->Read(len);
params->bitStream->Read(message, len);
params->bitStream->ResetReadPointer();
SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM ne BAYED");
// [Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!
if (strcmp(message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом ваш") == 0)
{
SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM BAYED");
char result[12];
strcat(message, " [1.9741]");
return 1;
}
};
return 1;
}
void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr)
return;
if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
if (!SF->getSAMP()->IsInitialized())
return;
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);
init = true;
}
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
switch (dwReasonForCall)
{
case DLL_PROCESS_ATTACH:
SF->initPlugin(mainloop, hModule);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}