Другое С/С++ Вопрос - Ответ

Receiver

🥩 Передай meat, всё в скип, я в темпе
Проверенный
597
819
Значит не правильная строка о покупке дома. Попробуй выводить переменную message в чат и копировать строку о покупке дома из нее
та же самая строка получаеца
 
  • Нравится
Реакции: Fomikus

Rjx13

Известный
Проверенный
224
160
C++:
#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;
}

всегда дом не байед блеать
C++:
if (strstr(message, "Поздравляю! Теперь этот дом ваш") != 0) {
   
}
 

ALF

Известный
Проверенный
320
537
C++:
#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;
}

всегда дом не байед блеать
ты заебал, я же тебе уже отвечал и давал полностью рабочий пример
C++:
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
    {
        uint strLen, color;
        char szMsg[144];

        params->bitStream->ResetReadPointer();
        params->bitStream->Read(color);
        params->bitStream->Read(strLen);
        if (strLen >= sizeof(szMsg)) strLen = sizeof(szMsg) - 1;
        params->bitStream->Read(szMsg, strLen);
        szMsg[strLen] = '\0';
     
        if(strstr(szMsg, "Поздравляю! Теперь этот дом ваш"))
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "kla$$");
            // ...
        }
    }
    return 1;
}
 

-raymond-

Известный
110
9
возможно ли в сф отрендерить текст при загрузке игры? как в собейте на месте худа снизу
 

checkdasound

Известный
Проверенный
963
406
В структуре actor_info есть элемент runningStyle, для примера там указаны такие значения как: 0x36 = cj, 0x8A = rollerskate, 0x7F = woozie, 0x75 = crash.
Где можно найти полный список?
 

Roger571

Известный
58
31
В структуре actor_info есть элемент runningStyle, для примера там указаны такие значения как: 0x36 = cj, 0x8A = rollerskate, 0x7F = woozie, 0x75 = crash.
Где можно найти полный список?
C++:
const struct move_animation_info    move_animations[MOVE_ANIMATIONS_COUNT] =
{
    // ordered by eMoveAnim-ids (ascending)
    { MOVE_PLAYER, "CJ" },
//    { MOVE_PLAYER_F, "Player (F)" },
//    { MOVE_PLAYER_M, "Player (M)" },
    { MOVE_ROCKET, "Rocket" },
//    { MOVE_ROCKET_F, "Rocket (F)" },
//    { MOVE_ROCKET_M, "Rocket (M)" },
    { MOVE_ARMED, "Armed" },
//    { MOVE_ARMED_F, "Armed (F)" },
//    { MOVE_ARMED_M, "Armed (M)" },
    { MOVE_BBBAT, "Baseball" },
//    { MOVE_BBBAT_F, "Baseball (F)" },
//    { MOVE_BBBAT_M, "Baseball (M)" },
    { MOVE_CSAW, "Chainsaw" },
//    { MOVE_CSAW_F, "Chainsaw (F)" },
//    { MOVE_CSAW_M, "Chainsaw (M)" },
    { MOVE_SNEAK, "Sneak" },
    { MOVE_JETPACK, "Jetpack" },
    { MOVE_MAN, "Man" },
    { MOVE_SHUFFLE, "Shuffle" },
    { MOVE_OLDMAN, "Old (M)" },
    { MOVE_GANG1, "Gang1" },
    { MOVE_GANG2, "Gang2" },
    { MOVE_OLDFATMAN, "Old fat (M)" },
    { MOVE_FATMAN, "Fat (M)" },
    { MOVE_JOGGER, "Jogger (M)" },
    { MOVE_DRUNKMAN, "Drunk" },
    { MOVE_BLINDMAN, "Woozie" },
    { MOVE_SWAT, "SWAT" },
    { MOVE_WOMAN, "Woman" },
    { MOVE_SHOPPING, "Shopping" },
    { MOVE_BUSYWOMAN, "Busy (F)" },
    { MOVE_SEXYWOMAN, "Sexy (F)" },
    { MOVE_PRO, "Pro" },
    { MOVE_OLDWOMAN, "Old (F)" },
    { MOVE_FATWOMAN, "Fat (F)" },
    { MOVE_JOGWOMAN, "Jogger (F)" },
    { MOVE_OLDFATWOMAN, "Old fat (F)" },
//    { MOVE_SKATE, "Skate" }, /needs to be loaded from some not always loaded file?
};

C++:
enum eMoveAnim
{
    MOVE_PLAYER = 54,
    MOVE_PLAYER_F,
    MOVE_PLAYER_M,
    MOVE_ROCKET,
    MOVE_ROCKET_F,
    MOVE_ROCKET_M,
    MOVE_ARMED,
    MOVE_ARMED_F,
    MOVE_ARMED_M,
    MOVE_BBBAT,
    MOVE_BBBAT_F,
    MOVE_BBBAT_M,
    MOVE_CSAW,
    MOVE_CSAW_F,
    MOVE_CSAW_M,
    MOVE_SNEAK,
    MOVE_JETPACK,
    MOVE_MAN = 118,
    MOVE_SHUFFLE,
    MOVE_OLDMAN,
    MOVE_GANG1,
    MOVE_GANG2,
    MOVE_OLDFATMAN,
    MOVE_FATMAN,
    MOVE_JOGGER,
    MOVE_DRUNKMAN,
    MOVE_BLINDMAN,
    MOVE_SWAT,
    MOVE_WOMAN,
    MOVE_SHOPPING,
    MOVE_BUSYWOMAN,
    MOVE_SEXYWOMAN,
    MOVE_PRO,
    MOVE_OLDWOMAN,
    MOVE_FATWOMAN,
    MOVE_JOGWOMAN,
    MOVE_OLDFATWOMAN,
    MOVE_SKATE,
};
 
  • Нравится
Реакции: checkdasound

ishi

Известный
493
110
Как получить адрес(&) виртуального указателя-члена класса?
 

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,192
Как сделать проверку на дистанцию игрока???
 

checkdasound

Известный
Проверенный
963
406
Как в имгуи сделать проверку, что открыто любое поле ввода? (в самом меню, а не в игре).
 
Последнее редактирование:

rraggerr

проверенный какой-то
1,626
847
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
float distance = sqrt ( (x2- x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) ); пишу с телефона , так бы скинул функу , но думаю самому не сложно будет сделать


if (data->EventFlag ==
Вроде тут есть , я щас с мобилы не могу проверить
нахуя тогда отвечать если не можешь сделать это нормально?

Как в имгуи сделать проверку, что открыто любое поле ввода? (в самом меню, а не в игре).
можешь проверять курсор енаблед, он в основном от инпут боксов возвращает тру, или от включенном диалоге

если ты про имгуи то if(inputtext) , при нажатии или изменении оно вернет тебе тру
 
  • Нравится
Реакции: checkdasound

sdfaw

Активный
718
150
при компиляции такая хуета
1>D:\вс19\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: не удалось найти Windows SDK версии 8.1. Установите нужную версию Windows SDK или измените версию SDK на страницах свойств проекта либо щелкнув правой кнопкой мыши решение и выбрав "Изменить целевую платформу решения".
установил уже windows sdk 8.1 и тоже самое
как фиксить?