Вопрос External autoaccept

Synapse Softworks
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2020
Сообщения
300
Реакции[?]
27
Поинты[?]
5K
Pa$$ter
Пользователь
Статус
Оффлайн
Регистрация
9 Июн 2020
Сообщения
239
Реакции[?]
83
Поинты[?]
12K
Мой олд кринжовый автоаццепт (ищет зелёный пиксель возле центра экрана и кликает возле него)
Советуют делать делеи между вызовами иначе сильно будет жрать проц.
Screenshot:
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);

HBITMAP hCaptureBitmap = CreateCompatibleBitmap(hDesktopDC, nScreenWidth, nScreenHeight);
SelectObject(hCaptureDC, hCaptureBitmap);

BitBlt(hCaptureDC, 0, 0, nScreenWidth, nScreenHeight, hDesktopDC, 0, 0, SRCCOPY);

BITMAPINFO bmi = { 0 };
bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader);
bmi.bmiHeader.biWidth = nScreenWidth;
bmi.bmiHeader.biHeight = nScreenHeight;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 32;
bmi.bmiHeader.biCompression = BI_RGB;

RGBQUAD* pPixels = new RGBQUAD[nScreenWidth * nScreenHeight];

GetDIBits(
    hCaptureDC,
    hCaptureBitmap,
    0,
    nScreenHeight,
    pPixels,
    &bmi,
    DIB_RGB_COLORS
);

ReleaseDC(hDesktopWnd, hDesktopDC);
DeleteDC(hCaptureDC);
DeleteObject(hCaptureBitmap);

return pPixels;
Autoaccept:
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);

int xCenter{ nScreenWidth / 2 }, yCenter{ nScreenHeight / 2 };

bool bFoundButton{ false };
int xAt{}, yAt{};

auto screenPixels = Screenshot();

for (int yNow = (nScreenHeight * 0.1); yNow < (nScreenHeight * 0.9); yNow++)
{
    for (int xNow = (nScreenHeight * 0.2); xNow < (nScreenHeight * 0.8); xNow++)
    {
        auto pixel = screenPixels[(nScreenHeight - yNow - 1) * nScreenWidth + xNow];
        if (pixel.rgbRed == 76 && pixel.rgbGreen == 175 && pixel.rgbBlue == 80)
        {
float xDistNow = sqrtf( (xCenter - xNow) * (xCenter - xNow) + (yCenter - yNow) * (yCenter - yNow) );
float xDistRecord = sqrtf( (xCenter - xAt) * (xCenter - xAt) + (yCenter - yAt) * (yCenter - yAt) );

if (xDistNow < xDistRecord) {
    xAt = xNow;
    yAt = yNow;
}

if (!bFoundButton) bFoundButton = true;
        }
    }
}

delete[] screenPixels;

if (bFoundButton) {
    for (int i = 0; i < 10; i++) { // Sometimes the click doesn't register for the whatever reason.
        // So i just do it 10 times. Highly premium.
        SetCursorPos(xAt + rand() % 10 - 5, yAt + rand() % 10 - 5);
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        BetterSleep(40);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        BetterSleep(10);
    }
};
 
Участник
Статус
Оффлайн
Регистрация
2 Фев 2019
Сообщения
1,155
Реакции[?]
233
Поинты[?]
3K
Если ты хочешь для себя чё то сделать,то в этом нет смысла, потому что можно пользоваться этими методами:
Ты сейчас за компом? Включи в игре в настройках звука что бы слышать звуки игры даже когда она свёрнута.
Ты собираешься отойти? Просто в место где будет кнопка оставь курсор и включи автокликер.

Если нужно написать код, то ориентируйся так. Когда в кс находит катку пока игра свёрнута, она в таскбаре начинает подсвечиваться. Можно юзать для автоаццепта. Далее просто табаешься в кс и по поиску цвета (или если более запариться то по поиску картинки на экране) и просто кликаешь туда.
 
Сверху Снизу