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

Receiver

leet-cheats 👑
Проверенный
619
882
C++:
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
    {
        size_t len;
        DWORD color;
        char zq_message[256];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(color);
        params->bitStream->Read(len);
        params->bitStream->Read(zq_message, len);
        params->bitStream->ResetReadPointer();
        zq_message[len] = '\0';

        // strstr(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!")
        if (!strcmp(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом"))
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "Вы купили дом за 1.3124 мс.");
        }
    };
    return true;
}
не работает, сообщение 100% правильное
 

Stiopko

Известный
Проверенный
307
218
C++:
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
    {
        size_t len;
        DWORD color;
        char zq_message[256];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(color);
        params->bitStream->Read(len);
        params->bitStream->Read(zq_message, len);
        params->bitStream->ResetReadPointer();
        zq_message[len] = '\0';

        // strstr(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!")
        if (!strcmp(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом"))
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "Вы купили дом за 1.3124 мс.");
        }
    };
    return true;
}
не работает, сообщение 100% правильное
замени !strcmp на strstr
 

Vintik

Через тернии к звёздам
Проверенный
1,526
1,009
Спасибо за всё, но я так нифига и не понял.

Объясняю свою ситуацию. Я прочитал на различных форумах, как искать базовый адрес (ну + смещения и указатели) и начал искать базовый адрес информации игрока (SAMP), чтобы он него оттолкнуться и найти твой текущий ID (и я его нашёл). Выглядит оно примерно так (в кавычках БА): [samp.dll + 0x151434] + 0x2F1C -> указатель на ID. Теперь хочу написать на С++ программу, которая будет искать мой ID и сохранять его в какую-либо переменную (через ReadProcessMemory). Суть в том, что надо искать смещение для "samp.dll". Пожалуйста, покажите какой-либо готовый код (он же там не длинный), либо функцию, которая, зная хэндл ГТАшки, кидает мне БА сампа.длл. Буду очень благодарен =)
UP
 

_Vine_

Активный
154
57
C++:
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
    {
        size_t len;
        DWORD color;
        char zq_message[256];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(color);
        params->bitStream->Read(len);
        params->bitStream->Read(zq_message, len);
        params->bitStream->ResetReadPointer();
        zq_message[len] = '\0';

        // strstr(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!")
        if (!strcmp(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом"))
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "Вы купили дом за 1.3124 мс.");
        }
    };
    return true;
}
не работает, сообщение 100% правильное
Вроде бы код правильный. Проверь, вызывается ли incomingRPC вовсе.
 

Stiopko

Известный
Проверенный
307
218
В сф некоторых структурах есть массив matrix что в нем, для чего он?
 

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В сф некоторых структурах есть массив matrix что в нем, для чего он?
Это матрица, которая хранит в себе числовые характеристики, она представлена в виде 2 х мерной структуры, в сампе в ней хранятся всякие позиции/углы и т.д

В сф некоторых структурах есть массив matrix что в нем, для чего он?
Можно сказать классификация, насколько я помню
 
  • Нравится
Реакции: Stiopko

Stiopko

Известный
Проверенный
307
218
upload_2019-6-18_12-55-57.png

как можно узнать ModelID котороя приходит в вот этом(верхнем) пакете, но не по средствам перехвата RPC а через структуры
C++:
SAMPFUNCS, SF->getSAMP()->getInfo()->pPools->pObject->object[s]->iModel
вот это не то там хранится id модели которая приходит в вот этом пакете я спрашиваю потому что ModelID одинаковая а объекты разные потому что приходит пакет SetPlayerObjectMaterial, можно как то определить текущий modelID
upload_2019-6-18_12-56-35.png
 

atizoff

приобретаю кашель за деньги
Проверенный
1,296
1,179
Здрасте, как уменьшить sliderint?
upload_2019-6-18_19-10-49.png


C++:
ImGui::SliderInt("Fov", &Cvars::fov, 90, 180);
 

astap_

Известный
Всефорумный модератор
626
601
есть ли в собейте функция чтобы узнать ид игрока по нику? или самому сделать
в собейте нет. самому сделать несложно.
Код:
int getPlayerIDFromName(char *PlayerName)
{
    for (int id = 0; id <= SAMP_MAX_PLAYERS; id++)
    {
        if (strcmp(getPlayerName(id), PlayerName) != 0)
            continue;
        else return id;
    }
    return NULL;
}

const char *getPlayerName(int iPlayerID) //  samp.cpp
{
    if (g_Players == NULL || iPlayerID < 0 || iPlayerID > SAMP_MAX_PLAYERS)
        return NULL;

    if (iPlayerID < 0 || iPlayerID > SAMP_MAX_PLAYERS)
        return NULL;

    if (iPlayerID == g_Players->sLocalPlayerID)
        return g_Players->strLocalPlayerName.c_str();

    if (g_Players->pRemotePlayer[iPlayerID] == NULL)
        return NULL;

    return g_Players->pRemotePlayer[iPlayerID]->strPlayerName.c_str();
}
 
  • Нравится
Реакции: -raymond-

LUCHARE

Известный
Друг
545
697
как можно узнать ModelID котороя приходит в вот этом(верхнем) пакете, но не по средствам перехвата RPC а через структуры
без хуков никак. на основе пришедшего идентификатора модели сразу же создается текстура и информация о нем нигде не сохраняется
 
  • Нравится
Реакции: Stiopko