Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Динамический BoxESP

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2018
Сообщения
362
Реакции
21
Всем привет.

У меня возникла проблема с BoxESP, они у меня динамические, что именно я имею ввиду под этим словом:
При дыхании модельки игрока(не важно, бот это или живой игрок) - боксы двигаются из за этого ломаются углы.
При движении экрана(в игре) по вертикали, BoxESP расширяется, чего быть не должно, так как BoxESP должен быть статичным.

Как можно решить данную проблему?
Вот VIDEO, на котором показана вся проблема:(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
 
Ну судя по твоему коду, мы можем только пойти нахуй. Потому что его нету
 
Ты бы код приложил хотяб
Я прошу прощения, не мог.

Вот функция World_to_screen

WTD:
Expand Collapse Copy
bool Renderer::world_to_screen(const vec3& screen_size, const vec3& pos, vec3& out, view_matrix_t matrix) {

    float Matrix[16]; // [4][4]: 4*4 = 16

    LI_FN(ReadProcessMemory).cached()(GlobalVars::get().csgo, (PFLOAT)(GlobalVars::get().client + offsets::dwViewMatrix), &Matrix, sizeof(Matrix), 0);

    //Matrix-vector Product, multiplying world(eye) coordinates by projection matrix = clipCoords
    vec4_t clipCoords;
    clipCoords.x = pos.x * Matrix[0] + pos.y * Matrix[1] + pos.z * Matrix[2] + Matrix[3];
    clipCoords.y = pos.x * Matrix[4] + pos.y * Matrix[5] + pos.z * Matrix[6] + Matrix[7];
    clipCoords.z = pos.x * Matrix[8] + pos.y * Matrix[9] + pos.z * Matrix[10] + Matrix[11];
    clipCoords.w = pos.x * Matrix[12] + pos.y * Matrix[13] + pos.z * Matrix[14] + Matrix[15];

    if (clipCoords.w < 0.001f) // if the camera is behind our player don't draw, i think?
        return false;

    vec3 NDC;
    // Normalize our coords
    NDC.x = clipCoords.x / clipCoords.w;
    NDC.y = clipCoords.y / clipCoords.w;
    NDC.z = clipCoords.z / clipCoords.w;

    float x = screen_size.x * .5f;
    float y = screen_size.y * .5f;

    x += 0.5f * out.x * screen_size.x + 0.5f;
    y -= 0.5f * out.y * screen_size.y + 0.5f;

    // Convert to window coords (x,y)
    out.x = (GlobalVars::get().RezX / 2 * NDC.x) + (NDC.x + GlobalVars::get().RezX / 2);
    out.y = -(GlobalVars::get().RezY / 2 * NDC.y) + (NDC.y + GlobalVars::get().RezY / 2);

    return true;
}

Вот как рисуются Боксы:

DrawBox(vec2(player->head2D.x - player->width2D / 2.f, player->head2D.y), vec2(player->width2D, player->height2D), D3DCOLOR_RGBA(65, 135, 245, 255), 1);

В функции tansformcord, даннный код:
Transformcord:
Expand Collapse Copy
    //player->origin.z += 6.f;
    player->headPos3D = vec3(player->getBonePos(8, player->getBase()));
    player->headPos3D.z += 15.f;
    player->origin.z -= 6.f;

    if (world_to_screen(vec3(GlobalVars::get().RezX, GlobalVars::get().RezY, 1.f), player->headPos3D, player->head2D, matrix))
    {
        if (world_to_screen(vec3(GlobalVars::get().RezX, GlobalVars::get().RezY, 1.f), vec3(player->origin), player->origin2D, matrix))
        {
            player->height2D = fabs(player->head2D.y - player->origin2D.y);
            player->width2D = player->height2D / 1.65f;
            player->distance = vec3::get().distance(GlobalVars::get().localPlayer->origin, player->origin);
            player->bbox.left = static_cast<long>(player->origin.x - player->width2D * 0.5f);
            player->bbox.right = static_cast<long>(player->bbox.left + player->width2D);
            player->bbox.bottom = static_cast<long>(player->origin.y);
            player->bbox.top = static_cast<long>(player->head2D.y);
            return true;
        }
    }
в Функции DrawBox(кстомной) идет отрисовка есп через DrawRect, где координаты у меня статические.
Думаю что функция world_to_screen наебнулась
мне об этом говорили, но дело в том что я не вижу проблемы в wts
так же, у меня нет привязки ног к боксам, как можно привязать ноги как нижнюю точку боксов, в случаи с моим кодом?
 
Последнее редактирование:
Уточню в рендере у меня отрисовка происходит следующим образом:
Render()
{
for(i; i<32;i++)
И тут сама проверка на чекбокс, если он включен, то рисует функцию боксов выше
}

а в функции боксов, чисто идет отрисовка, нету проверок на localplayer,на ноги
 
это просто такое вот отличие динамичных боксов, можешь забить хуй как это делает 99% людей
upd: не знаю как это чинить но я уверен что надо менять метод получения координат есп боксов либо менять ченить в worldtoscreen, а это хуево особенно когда у тебя экстернал. поэтому людям (и мне) похуй
 
это просто такое вот отличие динамичных боксов, можешь забить хуй как это делает 99% людей
upd: не знаю как это чинить но я уверен что надо менять метод получения координат есп боксов либо менять ченить в worldtoscreen, а это хуево особенно когда у тебя экстернал. поэтому людям (и мне) похуй
Благодарю, я не хочу забивать болт на это, оно меня бесит и я хочу попробовать получить идеальные ну или почти идеальные боксы, даже если это экстернал.
 
изи
C++:
Expand Collapse Copy
bool world_to_screen( vec3_t pos, vec2_t& screen ) // converts 3D coords to 2D coords
{
    float screen_width = (float)globals::res_x;
    float screen_height = (float)globals::res_y;

    float Matrix[16]; // [4][4]: 4*4 = 16

    LI_FN( ReadProcessMemory ).safe_cached()(globals::_handle, (PFLOAT)(globals::client + offsets::dwViewMatrix), &Matrix, sizeof( Matrix ), 0);

   
    vec4_t clipCoords;
    clipCoords.x = pos.x * Matrix[0] + pos.y * Matrix[1] + pos.z * Matrix[2] + Matrix[3];
    clipCoords.y = pos.x * Matrix[4] + pos.y * Matrix[5] + pos.z * Matrix[6] + Matrix[7];
    clipCoords.z = pos.x * Matrix[8] + pos.y * Matrix[9] + pos.z * Matrix[10] + Matrix[11];
    clipCoords.w = pos.x * Matrix[12] + pos.y * Matrix[13] + pos.z * Matrix[14] + Matrix[15];

    if ( clipCoords.w < 0.1f ) 
        return false;


    vec3_t NDC;
    // Normalize our coords
    NDC.x = clipCoords.x / clipCoords.w;
    NDC.y = clipCoords.y / clipCoords.w;
    NDC.z = clipCoords.z / clipCoords.w;

   
    screen.x = (screen_width / 2 * NDC.x) + (NDC.x + screen_width / 2);
    screen.y = -(screen_height / 2 * NDC.y) + (NDC.y + screen_height / 2);
    return true;
}
C++:
Expand Collapse Copy
void draw_filled_rect( int x, int y, int w, int h )
{
    RECT rect = { x, y, x + w, y + h };
    FillRect( hdc, &rect, EnemyBrush );
}

void draw_box( int x, int y, int w, int h, int thickness )
{
    draw_filled_rect( x, y, w, thickness ); //Top horiz line
    draw_filled_rect( x, y, thickness, h ); //Left vertical line
    draw_filled_rect( (x + w), y, thickness, h ); //right vertical line
    draw_filled_rect( x, y + h, w + thickness, thickness ); //bottom horiz line
}
будут статичные прямоугольники а не твои залупные уголки
 
Последнее редактирование:
изи
C++:
Expand Collapse Copy
bool world_to_screen( vec3_t pos, vec2_t& screen ) // converts 3D coords to 2D coords
{
    float screen_width = (float)globals::res_x;
    float screen_height = (float)globals::res_y;

    float Matrix[16]; // [4][4]: 4*4 = 16

    LI_FN( ReadProcessMemory ).safe_cached()(globals::_handle, (PFLOAT)(globals::client + offsets::dwViewMatrix), &Matrix, sizeof( Matrix ), 0);


    vec4_t clipCoords;
    clipCoords.x = pos.x * Matrix[0] + pos.y * Matrix[1] + pos.z * Matrix[2] + Matrix[3];
    clipCoords.y = pos.x * Matrix[4] + pos.y * Matrix[5] + pos.z * Matrix[6] + Matrix[7];
    clipCoords.z = pos.x * Matrix[8] + pos.y * Matrix[9] + pos.z * Matrix[10] + Matrix[11];
    clipCoords.w = pos.x * Matrix[12] + pos.y * Matrix[13] + pos.z * Matrix[14] + Matrix[15];

    if ( clipCoords.w < 0.1f )
        return false;


    vec3_t NDC;
    // Normalize our coords
    NDC.x = clipCoords.x / clipCoords.w;
    NDC.y = clipCoords.y / clipCoords.w;
    NDC.z = clipCoords.z / clipCoords.w;


    screen.x = (screen_width / 2 * NDC.x) + (NDC.x + screen_width / 2);
    screen.y = -(screen_height / 2 * NDC.y) + (NDC.y + screen_height / 2);
    return true;
}
C++:
Expand Collapse Copy
void draw_filled_rect( int x, int y, int w, int h )
{
    RECT rect = { x, y, x + w, y + h };
    FillRect( hdc, &rect, EnemyBrush );
}

void draw_box( int x, int y, int w, int h, int thickness )
{
    draw_filled_rect( x, y, w, thickness ); //Top horiz line
    draw_filled_rect( x, y, thickness, h ); //Left vertical line
    draw_filled_rect( (x + w), y, thickness, h ); //right vertical line
    draw_filled_rect( x, y + h, w + thickness, thickness ); //bottom horiz line
}
будут статичные прямоугольники а не твои залупные уголки
Проблема с углами ушла, большое спасибо.

Осталась проблема с дыханием игрока, из за чего BoxESP дергается + HealthESP уехало в боксы, почему-то..
Как сделать их статично слева от боксов и что бы они никогда не уезжали внутрь и убрать движение BoxESP из за дыхания? (прошу помочь, пожалуйста)

Вот VIDEO как они работают:
Пожалуйста, авторизуйтесь для просмотра ссылки.


Код HealthESP(left):
1668082222899.png


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

Осталась проблема с дыханием игрока, из за чего BoxESP дергается + HealthESP уехало в боксы, почему-то..
Как сделать их статично слева от боксов и что бы они никогда не уезжали внутрь и убрать движение BoxESP из за дыхания? (прошу помочь, пожалуйста)

Вот VIDEO как они работают:
Пожалуйста, авторизуйтесь для просмотра ссылки.


Код HealthESP(left):
Посмотреть вложение 227407

так же у меня BosESP только к голове прикручены:
Пожалуйста, авторизуйтесь для просмотра ссылки.
, так и нужно вообще? вроде бы еще к ногам приключивают.
Мне сказали, что для решения проблем с дыханием, нужно использовать данный метод

Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама)

Если кто-то может помочь мне подогнать под мой код данную штуку, буду очень благодарен, только скажите что нужно дать, какие функции
 
Мне сказали, что для решения проблем с дыханием, нужно использовать данный метод

Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама)

Если кто-то может помочь мне подогнать под мой код данную штуку, буду очень благодарен, только скажите что нужно дать, какие функции
это устарело во первых во вторых это не поможет , наверно единственное как можно это пофиксить это рисовать боксы через другое окно или например стим оверлей , если ты в этом разберешься и сможешь подогнать то молодец , я не разобрался xD noAD(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Проблема с углами ушла, большое спасибо.

Осталась проблема с дыханием игрока, из за чего BoxESP дергается + HealthESP уехало в боксы, почему-то..
Как сделать их статично слева от боксов и что бы они никогда не уезжали внутрь и убрать движение BoxESP из за дыхания? (прошу помочь, пожалуйста)

Вот VIDEO как они работают:
Пожалуйста, авторизуйтесь для просмотра ссылки.


Код HealthESP(left):
Посмотреть вложение 227407

так же у меня BosESP только к голове прикручены:
Пожалуйста, авторизуйтесь для просмотра ссылки.
, так и нужно вообще? вроде бы еще к ногам приключивают.
можешь приколотить к ногам но только к ногам не приколачивая к голове ибо будет бакаться и боксы будут летать по x y влево вправо
я пришляпил к голове и норм
C++:
Expand Collapse Copy
void option_esp(c_player enemy)
    {
        
        if (!settings->visuals.enabled)
            return;

        //head pos
        vec3_t enemy_head_pos = enemy.get_bone_pos(8);
        enemy_head_pos.z += 10;
        vec2_t enemy_head_screen{};
        world_to_screen(enemy_head_pos, enemy_head_screen);

        //base origin
        vec3_t enemy_origin_pos = enemy.origin();
        vec2_t enemy_origin_screen{};
        world_to_screen(enemy_origin_pos, enemy_origin_screen);

        float h = enemy_origin_screen.y - enemy_head_screen.y;
        float w = (h / 2);

        draw_box(enemy_head_screen.x - (w / 2), enemy_head_screen.y, w, h, 1);
    }
можешь потестить и к другим костям приколотить хоть ко всем , просто потести вдруг сработает
да даже не сработает , а будет точно работать я понял в чем у тебя проблема , просто вставь код который я кинул и всё будет ок
такой причуды как на скрине не будет точно , не за что.
 
Последнее редактирование:
" и убрать движение BoxESP из за дыхания? "
C++:
Expand Collapse Copy
if (!settings->visuals.multi_threads)
                Sleep(0);если жестко будет жрать процессор то меня значения 1-3 и тд
но если у тебя плохое окно для отрисовки боксов то это полностью не решит проблему а лишь улучшит то что есть
 
это устарело во первых во вторых это не поможет , наверно единственное как можно это пофиксить это рисовать боксы через другое окно или например стим оверлей , если ты в этом разберешься и сможешь подогнать то молодец , я не разобрался xD noAD(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)

можешь приколотить к ногам но только к ногам не приколачивая к голове ибо будет бакаться и боксы будут летать по x y влево вправо
я пришляпил к голове и норм
C++:
Expand Collapse Copy
void option_esp(c_player enemy)
    {
      
        if (!settings->visuals.enabled)
            return;

        //head pos
        vec3_t enemy_head_pos = enemy.get_bone_pos(8);
        enemy_head_pos.z += 10;
        vec2_t enemy_head_screen{};
        world_to_screen(enemy_head_pos, enemy_head_screen);

        //base origin
        vec3_t enemy_origin_pos = enemy.origin();
        vec2_t enemy_origin_screen{};
        world_to_screen(enemy_origin_pos, enemy_origin_screen);

        float h = enemy_origin_screen.y - enemy_head_screen.y;
        float w = (h / 2);

        draw_box(enemy_head_screen.x - (w / 2), enemy_head_screen.y, w, h, 1);
    }
можешь потестить и к другим костям приколотить хоть ко всем , просто потести вдруг сработает
да даже не сработает , а будет точно работать я понял в чем у тебя проблема , просто вставь код который я кинул и всё будет ок
такой причуды как на скрине не будет точно , не за что.
У меня приколочено к голове
" и убрать движение BoxESP из за дыхания? "
C++:
Expand Collapse Copy
if (!settings->visuals.multi_threads)
                Sleep(0);если жестко будет жрать процессор то меня значения 1-3 и тд
но если у тебя плохое окно для отрисовки боксов то это полностью не решит проблему а лишь улучшит то что есть
Не совсем пойму, что за переменная?
Я пробовал инфу найти как убрать движение бок ов, но наше только способ выше, с УС
И кстати, как мне убрать перемещение хпшки в боксы?
 
Назад
Сверху Снизу