Перейти к содержанию

Мерцание d3d9 in cs:go


Гость penek227

Рекомендуемые сообщения

привет, ребята. проблема такова.

Написал я значит ESP, все вроде бы хорошо, пашет. тут я думаю дай-ка в мм попробую скатать, вак так вак, врубаю такой, и херась, начинает все мерцать.

черный экран/игра с ESP/черный экран/игра с ESP. это античит так глушит, или дыра в коде ? и дайте совет как пофиксить, а то беда совсем, не понимаю.

писал не .dll a .exe. с ботами все чики-пуки, на пабликах как и в мм. и да я знаю что наложению d3d9 свойственно мерцать на .exe, это ведь не хук, но вот черный экран это непорядок.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, penek227 сказал:

и да я знаю что наложению d3d9 свойственно мерцать на .exe

Бред полный. Это если ты рисуешь на экране средствами WinAPI, то да, мерцать будет.

Когда же делают D3D-хак в .exe, то это подразумевает, что будет создано прозрачное окно ( для d3d собсна ), которое будет поверх всех других окон ( TOPMOST ), а у D3D окна игры ставится оконный режим ( можно без рамки, как фуллскрин будет ). Минус такого чита - в скорости. Тот же ESP будет отставать, хотя тут уже зависит от реализации. Но так или иначе отставание будет, потому что обновление области будет происходить асинхронно.

Вообще тяжело сказать что у тебя может быть не так. В любом случае это косяк твоего рендера, который ложится поверх всех окон, потому что в сам процесс игры ты не вмешиваешься, всего лишь читая структуры.

 

Кинь код процедуры окна

Изменено пользователем uhx
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, penek227 сказал:

и да я знаю что наложению d3d9 свойственно мерцать на .exe

где ты, этот бред прочитал? если написана и скомпилирована в exe, это скорей api gdi

3 часа назад, penek227 сказал:

это ведь не хук, но вот черный экран это непорядок.

рисования в directx  происходить, при помощи  хука нужной API directx  

3 часа назад, penek227 сказал:

черный экран/игра с ESP/черный экран/игра с ESP. это античит так глушит, или дыра в коде ?

это скорей плохой код, код в студию

3 часа назад, penek227 сказал:

и дайте совет как пофиксить, а то беда совсем, не понимаю.

код в студию

3 часа назад, penek227 сказал:

Написал я значит ESP, все вроде бы хорошо, пашет. тут я думаю дай-ка в мм попробую скатать, вак так вак, врубаю такой, и херась, начинает все мерцать.

3 часа назад, penek227 сказал:

писал не .dll a .exe. с ботами все чики-пуки, на пабликах как и в мм.

если с ботами работает, то и в мм должно, а насчет защиты то скорей при подсоединение к игре чита тебя бы сразу бы выкинуло, и покажи исходный свой код?

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

это [CENSORED]ец, ребята, написал тему, и через минуту нашел решение. неправильно высчитывал X Y для обводки. и мерцать все перестало.

но назрел другой вопрос. создал допустим окошко

topmost = CreateWindowExA(WS_EX_TOPMOST | WS_EX_TRANSPARENT, "FAR", NULL, WS_POPUP | WS_VISIBLE | WS_BORDER, 100, 100, 1280, 720, NULL, NULL, NULL, NULL);


вопрос, как клиентскую часть окна сделать полностью прозрачным, ну или окно в целом, при этом с возможность рендера в нем. есть WS_EX_NOREDIRECTIONBITMAP, но как я понял флаг работает только с вин 8 и выше, по крайней мере сколько я не пытался создать прозрачное окно у меня не вышло.

 

а то делать полупрозрачным окно, а после рендерить противоположными цветами дабы хоть что то разглядеть, как но не ахти.

[99ef9f3f884f506852e3a082fd41d1ea.png

только не предлагайте .dll, это самоубийство в чистом виде. 3 аккаунта похоронил когда wh for warface developed, адин аснова была :(((

 

 

Ссылка на комментарий
Поделиться на другие сайты

благодарю за наводку, создал я окошко

Window.hbrBackground = CreateSolidBrush(RGB(255, 255, 255));


topmost = CreateWindowExA(WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_LAYERED, "FAR", NULL, WS_POPUP | WS_VISIBLE | WS_BORDER, 100, 100, 1280, 720, NULL, NULL, NULL, NULL);


SetLayeredWindowAttributes(topmost, RGB(255, 255, 255), 0, LWA_COLORKEY);


все замечательно, прозрачно. но когда я начинаю рендерить в это окошко, окошко становиться черным воплоти с рендером. никто не знает в чем беда, и есть ли спасение? 

Ссылка на комментарий
Поделиться на другие сайты

    hwnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_COMPOSITED | WS_EX_TRANSPARENT, _T("Main"), _T("MW3 External Hack"), WS_VISIBLE | WS_BORDER | WS_SYSMENU, 100, 100, ScreenWidth, ScreenHeight, NULL, NULL, NULL, NULL);
    SetLayeredWindowAttributes(hwnd, RGB(255, 255, 255), NULL, LWA_COLORKEY);
    ShowWindow(hwnd, SW_SHOW);

попробуй, только перепиши под себя

Ссылка на комментарий
Поделиться на другие сайты

 

#include <Windows.h>
#include <tchar.h>
Скрытый текст

#include <d3dx9.h>
#include <d3d9.h>

#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "d3d9.lib")
LPDIRECT3D9                    d3d;
LPDIRECT3DDEVICE9            d3ddev;
LRESULT CALLBACK Procedure(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) {
    PAINTSTRUCT ps;
    HDC hdc;
    switch (message)
    {
    case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        EndPaint(hwnd, &ps);
        break;
    case WM_DESTROY:
        exit(1);
        break;
    default:
        return DefWindowProc(hwnd, message, wparam, lparam);
    }
    return 0;
}
void DrawRect(int x, int y, int w, int h, DWORD color) {
    if (d3ddev) {
        D3DRECT rec = { x, y, x + w, y + h };
        d3ddev->Clear(1, &rec, D3DCLEAR_TARGET, color, 0, 0);
    }
}
int main() {
    MSG msg;
    HINSTANCE hInstance;
    WNDCLASSEX Window;
    Window.cbClsExtra = NULL;
    Window.cbSize = sizeof(WNDCLASSEX);
    Window.cbWndExtra = NULL;
    Window.hbrBackground = CreateSolidBrush(RGB(255, 255, 255));
    Window.hCursor = LoadCursor(NULL, IDC_ARROW);
    Window.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    Window.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    Window.hInstance = hInstance;
    Window.lpfnWndProc = Procedure;
    Window.lpszClassName = _T("Main");
    Window.lpszMenuName = _T("Test");
    Window.style = CS_HREDRAW | CS_VREDRAW;
    if (!RegisterClassEx(&Window))
        exit(1);
    HWND hwnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_COMPOSITED | WS_EX_TRANSPARENT, _T("Main"), _T("Test"), WS_VISIBLE | WS_BORDER | WS_SYSMENU, 600, 300, 400, 220, NULL, NULL, NULL, NULL);
    SetLayeredWindowAttributes(hwnd, RGB(255, 255, 255), NULL, LWA_COLORKEY);
    ShowWindow(hwnd, SW_SHOW);
    d3d = Direct3DCreate9(D3D_SDK_VERSION);
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow = hwnd;
    d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddev);
    while (true) {
        if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(150, 0, 0, 0), 1.0f, 0);
        d3ddev->BeginScene();
        DrawRect(30, 30, 150, 100, 0xFF0000);
        d3ddev->EndScene();
        d3ddev->Present(NULL, NULL, NULL, NULL);
    }
    return 0;
}

 

сколько не пытаюсь, все безуспешно. 

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, penek227 сказал:

void DrawRect(int x, int y, int w, int h, DWORD color) {
  if (d3ddev) {         
    D3DRECT rec = { x, y, x + w, y + h };         
    d3ddev->Clear(1, &rec, D3DCLEAR_TARGET, color, 0, 0);     
  } 
}

где API рисования?

 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.