2016-04-21 3 views
2

Я пытался написать небольшую программу, которая работает за Counter-Strike: Global Offensive. Программа должна быть полностью внешней, поскольку нет возможности получить доступ к данным о реальном матче или API в ходе соревновательного рейтинга. До сих пор я мог найти наилучший подход:Как один игрок проигрывает в CS: GO использует внешнюю программу?

case WM_TIMER: 
    COLORREF curColor, safetyColor; 
    for(int a = 1750;a < 1830;a++) 
     for (int b = 75;b < 100;b++) 
     { 
      curColor = GetPixel(csgoDC, a, b); 
      safetyColor = GetPixel(csgoDC, 1856, 1060); 
      if (GetRValue(curColor) == 255 && GetGValue(curColor) == 255 && GetBValue(curColor) == 255 && GetRValue(safetyColor) != 255) 
       PlaySound(_T("C:\\headshot.wav"), NULL, SND_FILENAME | SND_ASYNC); 
     } 
    break; 

Это срабатывает по таймеру. Это не работает надежно, и я уверен, что он вообще не будет работать в полноэкранном режиме (трудно проверить, когда он не является надежным для начала). Индексы в вложенном цикле соответствуют месту на экране, где появляется killfeed. Вот пример пользовательского интерфейса (от Google) Screenshot

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

+0

Если они блокируют API во время соревновательного матча, разве это не обманывать? –

+0

Чтение пикселей На экране ничего не происходит в программе; единственный раз, когда я это делаю, это получить идентификатор процесса, и это нормально. – ThePyrotechnic

ответ

0

Более интенсивный способ работы с этим будет заключаться в получении информации о времени выполнения с вашего компьютера, то есть переменных и связанных значений в памяти. Это потребует, по крайней мере, до некоторой степени reverse engineering кода клиента CS: GO. Но, если бы вы могли справиться с этим, я думаю, что это был бы самый надежный способ определения желаемой информации. (Будьте осторожны с препятствием на лице, хотя.)

+0

Я полагаю, я мог бы сделать это, но это было бы очень утомительно, и клиент CS: GO известен своей трудностью взломать :( – ThePyrotechnic

Смежные вопросы