Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так же как и обычный текст в диалоге, каждый пункт листбокса разделён \nНе как с битстрима прочитать при хуке?
Так же как и обычный текст в диалоге, каждый пункт листбокса разделён \nНе как с битстрима прочитать при хуке?
Так же как и обычный текст в диалоге, каждый пункт листбокса разделён \n
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[257];
};
bool __stdcall InRPC(stRakNetHookParams *hook)
{
if (hook->packetId == RPC_ScrShowDialog)
{
stSAMPDialog sampDialog;
hook->bitStream->Read(sampDialog.wDialogID);
hook->bitStream->Read(sampDialog.bDialogStyle);
hook->bitStream->Read(sampDialog.bTitleLength);
hook->bitStream->Read(sampDialog.szTitle, sampDialog.bTitleLength);
sampDialog.szTitle[sampDialog.bTitleLength] = 0;
hook->bitStream->Read(sampDialog.bButton1Len);
hook->bitStream->Read(sampDialog.szButton1, sampDialog.bButton1Len);
sampDialog.szButton1[sampDialog.bButton1Len] = 0;
hook->bitStream->Read(sampDialog.bButton2Len);
hook->bitStream->Read(sampDialog.szButton2, sampDialog.bButton2Len);
sampDialog.szButton2[sampDialog.bButton2Len] = 0;
SF->getRakNet()->DecodeString(sampDialog.szInfo, 400, hook->bitStream);
// Твой код
}
return true;
}
// в инициализацию mainloop`a
SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_INCOMING_RPC, InRPC);
Как взять ИД из ника?
Типа: Nick[12], смс выхукал, а вот ид?
char *ptr = strchr(строка, '['); if (ptr != nullptr) // то удаляешь этот символ на найденой позиции и ищешь ']' - итог у тебя две позиции в строке, читаешь текст между ними, вуаля
Что подразумевается под "строка" ?C++:char *ptr = strchr(строка, '['); if (ptr != nullptr) // то удаляешь этот символ на найденой позиции и ищешь его опять - итог у тебя две позиции в строке, читаешь текст между ними, вуаля
массив с текстом где находится то что тебя интересуетЧто подразумевается под "строка" ?
А если у меня через условие, без массива?массив с текстом где находится то что тебя интересует
if (strstr(string, "ччч") != 0) {
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Text finded");
а string что такое по твоему?) не строка?))А если у меня через условие, без массива?
C++:if (strstr(string, "ччч") != 0) { SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Text finded");
Создай новый поток и перенеси туда проверку нажатия, добавь задержку в 75 мс и всё заработает.Код:void __stdcall mainloop() { static bool initialized = false; if (!initialized) { if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized()) { initialized = true; CMD(); } } if (SF->getGame()->isKeyPressed(VK_F11)) { SF->getSAMP()->getChat()->SetChatInputText("test"); SF->getSAMP()->getInput()->EnableInput(); } }
В основном нет, лишь в некоторых ситуациях.Считается ли варнинг "C4244: A: преобразование B в C, возможна потеря данных" опасным?
int getCar()
{
for (int i = 1; i < 2001; i++)
{
int handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(i);
if (handle != -1)
{
float Vspeed[3];
int car = SF->getSAMP()->getVehicles()->GetSAMPVehicleIDFromGTAHandle(handle);
struct vehicle_info *pVehicle = SF->getGame()->vehicleInfoGet(car, 0);
Vspeed[0] = pVehicle->speed[0];
Vspeed[1] = pVehicle->speed[1];
Vspeed[2] = pVehicle->speed[2];
float speed = sqrtf(Vspeed[0] * Vspeed[0] + Vspeed[1] * Vspeed[1] + Vspeed[2] * Vspeed[2]) * 100;
if (speed == 0.0f) return car;
}
}
return -1;
}
Крашит. Что не так?
int getCar()
{
for (int i = 1; i < 2001; i++)
{
if (!SF->getSAMP()->getVehicles()->iIsListed[i] || !SF->getSAMP()->getVehicles()->iIsListed2[i]) continue;
float Vspeed[3];
vehicle_info *pVehicle = SF->getSAMP()->getVehicles()->pSAMP_Vehicle[i]->pGTA_Vehicle;
if (pVehicle == nullptr) continue;
Vspeed[0] = pVehicle->speed[0];
Vspeed[1] = pVehicle->speed[1];
Vspeed[2] = pVehicle->speed[2];
float speed = sqrtf(Vspeed[0] * Vspeed[0] + Vspeed[1] * Vspeed[1] + Vspeed[2] * Vspeed[2]) * 100;
if (speed == 0.0f) return car;
}
return -1;
}