
16.05.2019, 00:40
|
|
Постоянный
Регистрация: 05.03.2014
Сообщений: 626
С нами:
6415078
Репутация:
163
|
|
Сообщение от HanPrincess
Как узнать текст диалога? При таком коде выводится только текст "Авторизация/Принять", то есть титла/кнопки, а дальше какие-то иероглифы, а мне надо прочитать текст, который находится в самом диалоге
Код:
Код:
bool CALLBACK incomingRPC(stRakNetHookParams* params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
{
short int DialogID;
char pText[64];
params->bitStream->ResetReadPointer();
params->bitStream->Read(DialogID);
params->bitStream->Read(pText);
params->bitStream->ResetReadPointer();
SF->getSAMP()->getChat()->AddChatMessage(-1, "DIALOG ID [%d]]", DialogID);
SF->getSAMP()->getChat()->AddChatMessage(-1, "Text: [%s]", pText);
};
return true;
};
странно что у тебя вообще что-то выводится с таким кодом.
компоненты RPC/пакета нужно получать строго по порядку.
Код:
Код:
struct stSAMPDialog
{
int iIsActive;
BYTE bDialogStyle;
WORD wDialogID;
BYTE bTitleLength;
char szTitle[257];
BYTE bButton1Len;
char szButton1[257];
BYTE bButton2Len;
char szButton2[257];
char szInfo[1000];
};
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
if (hook->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
{
stSAMPDialog sampDialog;
params->bitStream->ResetReadPointer();
params->bitStream->Read(sampDialog.wDialogID);
params->bitStream->Read(sampDialog.bDialogStyle);
params->bitStream->Read(sampDialog.bTitleLength);
params->bitStream->Read(sampDialog.szTitle, sampDialog.bTitleLength);
sampDialog.szTitle[sampDialog.bTitleLength] = 0;
params->bitStream->Read(sampDialog.bButton1Len);
params->bitStream->Read(sampDialog.szButton1, sampDialog.bButton1Len);
sampDialog.szButton1[sampDialog.bButton1Len] = 0;
params->bitStream->Read(sampDialog.bButton2Len);
params->bitStream->Read(sampDialog.szButton2, sampDialog.bButton2Len);
sampDialog.szButton2[sampDialog.bButton2Len] = 0;
SF->getRakNet()->DecodeString(sampDialog.szInfo, 900, params->bitStream);
SF->getSAMP()->getChat()->AddChatMessage(-1, sampDialog.szInfo);
};
return true;
};
|
|
|