bool CALLBACK ShowShowDialog(stRakNetHookParams *params) // определение callback-функции, которая будет вызвана, если от сервера был получен новый RPC.
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
{
WORD dialogId;
params->bitStream->ResetReadPointer();
params->bitStream->Read(dialogId);
params->bitStream->ResetReadPointer();
if (dialogId == 8868)
{
if (SF->getSAMP()->getDialog()->iIsActive == true)
{
SF->getSAMP()->getChat()->AddChatMessage(-1, "{FF0011}[DIALOG]: {FFFFFF}Диалог найден!");
SF->getSAMP()->getDialog()->SetInputText("Test");
}
}
}
return true;
};
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->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "{FFFF00}[test]: {FFFFFF}1");
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, ShowShowDialog);
init = true;
}
}