Alexander-mx Опубликовано 12 февраля, 2012 Поделиться Опубликовано 12 февраля, 2012 if(GetAsyncKeyState(VK_RBUTTON){ if (hack[AUTO_FIRE].on) { AutoFireStage2 = true; }}else AutoFireStage2 = false;if(AutoFireStage2){ mouse_event(MOUSEEVENT_LEFTUP, 0, 0, 0, 0); if(clock() - AutoFireTMR > 40) { mouse_event(MOUSEEVENT_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENT_LEFTUP, 0, 0, 0, 0); AutoFireTMR = clock(); } }}Не работает, в чем может быть проблема? Ссылка на комментарий Поделиться на другие сайты Поделиться
Synapsehome Опубликовано 12 февраля, 2012 Поделиться Опубликовано 12 февраля, 2012 Приложи код на любом другом языке программирования который работает, мы его легко перенесем на c++. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-mx Опубликовано 12 февраля, 2012 Автор Поделиться Опубликовано 12 февраля, 2012 Этот код я писал исходя из исходников читов для CS 1.6 Ссылка на комментарий Поделиться на другие сайты Поделиться
Synapsehome Опубликовано 13 февраля, 2012 Поделиться Опубликовано 13 февраля, 2012 Блин я ступил, думал ты рапидфайр делал У меня всё воркинг файн, весь код висит в ендсцене, проблем нету:HRESULT WINAPI HookedDirectX::hookedkEndScene( LPDIRECT3DDEVICE9 m_pDevice ){ _asm pushad; /* бла бла */ if(StMenu.Controls.SilverButton[Main.FirstTab][1][2].IsActive) { if (Tools.getTick == 200) { keybd_event(VK_LBUTTON, 0, 0, 0);//нажали keybd_event(VK_LBUTTON, 0, KEYEVENTF_KEYUP, 0);//отпустили HookedD3d.TextBordered(100,150,D3DXCOLOR_RGBA(255,0,0,255),"стреляем ;D"); Tools.DecTick(5); } } _asm popad; return m_pReturn;}если порыться в структуре игрока можно найти кое чего интересного, будет адрес в котором содержится рандомное число когда прицел игрока наведён на врага и 0 если прицел не наведён Также адрес прицеливания ищется просто - изменился не изменился, тип 1 байт. Итого делаем проверку, если прицел игрока на враге и он не смотрит в прицел/оптику, делаем автозум и стреляем, получаем атошут. Клавишу в этот момент можно не отпускать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-mx Опубликовано 13 февраля, 2012 Автор Поделиться Опубликовано 13 февраля, 2012 Проблема в другом, работает не на всех играх, например если инжектить .dll в Метро2033 работает, если для COD4 MW не работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Synapsehome Опубликовано 13 февраля, 2012 Поделиться Опубликовано 13 февраля, 2012 Проблема в другом, работает не на всех играх, например если инжектить .dll в Метро2033 работает, если для COD4 MW не работает.Всё прекрасно работает как и раньше, только что протестировал. Добавь функции логирования в свою дллку и посмотри, мб есть глюк и твой код вообще никогда не вызывается, т.к. keybdevent работает везде и всегда. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 13 февраля, 2012 Поделиться Опубликовано 13 февраля, 2012 4 способа решения сделать так чтобы оружие стреляло:1) Найти код в процессе игры (некий switch), который говорит о том что будет/был выстрел. Ну и соответственно искусственно вызывать ветку кода поправив один или пару прыгов;2) WinAPI эмуляция ввода мышки (о ней уже писали - MSDN рекомендует обычно SendInput, а не mouse_event и не keybd_event ... и лучше всё-таки это делать через таймер, а не хуком в конец сцены (почему так лучше комментировать не буду, надо тестить));3) DirectXInput эмуляция ввода мышки;4) Эмуляция на уровне драйвера мышки (или клавиатуры)По всем методам можно найти не мало информации в Интернете.------------------ Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-mx Опубликовано 14 февраля, 2012 Автор Поделиться Опубликовано 14 февраля, 2012 Спасибо за ответы. Разобрался .dll не правильно инжектил)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения