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

Babayka2016

Известный
51
2
Помогите, пытаюсь сделать ESP, посмотрел исходники на луа - все юзают convert3DCoordsToScreen. Как работает эта функция? Видел, что, к примеру, в CS - она использует View Matrix. Какой offset у View Matrix'a?
 

leak.

Известный
37
4
возможно ли, в DllMain или в потоке подключить/активировать класс CGameSA, но без d3d9 хука?
 
Последнее редактирование:

nt_qwark

Участник
30
1
Какие адресса у педа? X Y Z
И где хранятся педы? (Педы в локалке/Другие игроки в сампе или мта)
 

SR_team

like pancake
BH Team
4,804
6,475
Помогите, пытаюсь сделать ESP, посмотрел исходники на луа - все юзают convert3DCoordsToScreen. Как работает эта функция? Видел, что, к примеру, в CS - она использует View Matrix. Какой offset у View Matrix'a?
Тебе он не нужен. Просто используй имеющуюся в игре функцию:
C++:
CU CONVERT_WORLD_TO_SCREEN_POS_FUNC = 0x70CE30;

RwV2D ConvertGlobalXYZToWindowScreenXY(RwV3D world)
{
    typedef void(__cdecl *CWorld__ConvertGlobalXYZToScreenXY)(RwV3D *world, RwV3D *screen, float *mulX, float *mulY, bool unk, bool unk2);
    RwV3D screen;
    float mulX, mulY;
    (CWorld__ConvertGlobalXYZToScreenXY(CONVERT_WORLD_TO_SCREEN_POS_FUNC))(&world, &screen, &mulX, &mulY, false, false);
    return {screen.fX, screen.fY};
}

Как на asi локально сменить ник?
AsiBase(https://git.prime-hack.net/SR_team/AsiBase/src/branch/master/CGame/SAMP/SAMPPlayerPool.cpp#L20)
 
Последнее редактирование модератором:

CleanLegend

Известный
Всефорумный модератор
477
935
возможно ли, в DllMain или в потоке подключить/активировать класс CGameSA, но без d3d9 хука?
Да
Какие адресса у педа? X Y Z
И где хранятся педы? (Педы в локалке/Другие игроки в сампе или мта)
Можно на прямую искать через пул других педов:
C++:
for (int i = 0; i < 500; i++) {
        next = (DWORD*)(*ped + (0x7C4 * i));

        hundred = *(float*)(next + 0xE);

        if (i != 0 && hundred == 100.0f) {

            DWORD* player_info = (DWORD*)(next + 0x5);
            hp = *(float*)(next + 0x150);
            float* _x = (float*)(*player_info + 0x30);
            float* _y = (float*)(*player_info + 0x34);
            float* _z = (float*)(*player_info + 0x38);
          
        }
    }
лучше будет через samp, можно посмотреть структуры в собейте
 

SR_team

like pancake
BH Team
4,804
6,475
Подскажите, пожалуйста, с регуляркой, то я конкретно заебался уже с ней. В RPC_ScrCreate3DTextLabel читаю text, перевожу в строку и потом ловлю (пытаюсь) уже regex_match значения нужные значения. Но мой шаблон не проходит, как бы не извращался. Текст, например, такой:
Код:
{FF9900}*** Дом занят ***

{FFFFFF}Номер дома: {AFAFAF}614
{FFFFFF}Класс дома: {AFAFAF}1
{FFFFFF}Владелец: {AFAFAF}Dima_Ganja
{FFFFFF}Дверь: {3D9829}Открыта
{FFFFFF}Гараж: [ {FA736C}НЕТ {FFFFFF}]

Нужно достать, допустим число 614. Пытался следующим образом но как-то не особо получилось, где трабол:
C++:
std::string str = std::string(text);
std::smatch res;
if (std::regex_match(str, res, std::regex(R"(/\}(\d+)/g)")))
C++:
std::string str = std::string(text);
std::smatch res;
const std::regex re(R"((?:\{[0-9a-f]{6,8}\})?([\s\wа-я]+):\s(?:\{[0-9a-f]{6,8}\})?(\d+))", std::regex::icase);
if (std::regex_match(str, res, ку)){
    if (res[1].str() == "Номер дома")
        MessageBoxA(0, res[2].str().data(), "Номер дома", MB_OK);
}

Есть ли какой-нибудь offset, чтобы запихнуть игрока в машину?

P.S Без SAMPFUNCS и LUA
Нужно создать игровое событие или вызвать опкод. Пример первого есть в собе, пример второго в сампе
 
Последнее редактирование модератором:
  • Нравится
Реакции: CatKnight

nt_qwark

Участник
30
1
Да

Можно на прямую искать через пул других педов:
C++:
for (int i = 0; i < 500; i++) {
        next = (DWORD*)(*ped + (0x7C4 * i));

        hundred = *(float*)(next + 0xE);

        if (i != 0 && hundred == 100.0f) {

            DWORD* player_info = (DWORD*)(next + 0x5);
            hp = *(float*)(next + 0x150);
            float* _x = (float*)(*player_info + 0x30);
            float* _y = (float*)(*player_info + 0x34);
            float* _z = (float*)(*player_info + 0x38);
         
        }
    }
лучше будет через samp, можно посмотреть структуры в собейте
В мта все что я читаю - нули. Т.е. адреса не валид
 

ЯedЯuM

Malware Maker
242
302
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В мта все что я читаю - нули. Т.е. адреса не валид
Всё там валид, покажи как ты читаешь.
А вообще как и в сампе мта имеет собственную структуру педов в client.dll
 

leak.

Известный
37
4
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
 

CleanLegend

Известный
Всефорумный модератор
477
935
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
Через proccess hacker можно посмотреть
 
  • Нравится
Реакции: leak.

ЯedЯuM

Malware Maker
242
302
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
x64dbg (x86 ver), OllyDBG, IDA Pro Debugger
 
  • Нравится
Реакции: leak.