Alexander-mx Опубликовано 24 ноября, 2013 Поделиться Опубликовано 24 ноября, 2013 Делаю трейнер для just cause2, хотел сделать чтобы нажимая на нумпад0 включались бесконечные патроны, еще раз нажимал выключались, проблема в том что не выключается функция.void Ammo{bool Ammos = false;Ammos = !Ammos;if (GetAsyncKeyState(VK_NUMPAD0)){ for(;;Sleep(10)) WriteProcessMemory(handle,(PBYTE*)(0x2EB21334),&ammo,4,0);}if(!Ammos){ return;}} Ссылка на комментарий Поделиться на другие сайты Поделиться
Tiger Опубликовано 24 ноября, 2013 Поделиться Опубликовано 24 ноября, 2013 Знания по синтаксису у меня отсутствуют, но это все гугля рассказал что.. while(!GetAsyncKeyState(VK_NUMPAD0)) //пока не нажата VK_NUMPAD0флаг =0{if(GetAsyncKeyState(VK_NUMPAD0)<0) //зажата клавиша VK_NUMPAD0{здесь инвертишь значение флага (1<=>0)}if(GetAsyncKeyState(VK_NUMPAD0)==0)//отжата клавиша VK_NUMPAD0{while( флаг равен == 1){делать WriteProcessMemory()Sleep(1);}Sleep(1);}}int val=1, past_val=1;while(!GetAsyncKeyState(VK_F1)){val=GetAsyncKeyState(VK_F2);past_val=val;while(val==past_val) { val=GetAsyncKeyState(VK_F2); Sleep(1); }Sleep(1);}return 0; Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 24 ноября, 2013 Поделиться Опубликовано 24 ноября, 2013 for (;;Sleep(100)){ if (GetAsyncKeyState(VK_NUMPAD0)) { Ammo(); }} Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 24 ноября, 2013 Поделиться Опубликовано 24 ноября, 2013 Не знаю как на C, а на асме я делал так... invoke GetAsyncKeyState,VK_1.if eax!=0.if key1==FALSE invoke KeySound,offset mPS invoke mPatch,mOffset1_2,addr mValue1_2,mSize1_2 invoke mPatch,mOffset1_3,addr mValue1_3,mSize1_3 invoke mPatch,mOffset1,addr mValue1,mSize1 mov key1,TRUE.elseif key1==TRUE invoke KeySound,offset UmPS invoke UmPatch,mUOffset1,addr mUValue1,mUSize1 mov key1,FALSE.endif.endif..... Ссылка на комментарий Поделиться на другие сайты Поделиться
ArxLex Опубликовано 25 ноября, 2013 Поделиться Опубликовано 25 ноября, 2013 Как то так......bool bAmmo = false;...while (true){ if (GetAsyncKeyState(VK_NUMPAD0) & 1) { bAmmo != bAmmo; } if (bAmmo) { WriteProcessMemory(handle,(PBYTE*)(0x********),&ammo,4,0); }}... Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 27 ноября, 2013 Поделиться Опубликовано 27 ноября, 2013 Как то так......bool bAmmo = false;...while (true){ if (GetAsyncKeyState(VK_NUMPAD0) & 1) { bAmmo != bAmmo; } if (bAmmo) { WriteProcessMemory(handle,(PBYTE*)(0x********),&ammo,4,0); }}...Это реализация заморозки значения.Никогда не используй while(true), у меня было на проце AMD, что просто подобный цикл 25% сжирал в сетевом приложении.Лучше проверять нажатие клавиши каждые 50-100 мс. И нагрузка меньше, и шанс тут же выключить включенный чит тоже меньше. Ссылка на комментарий Поделиться на другие сайты Поделиться
ArxLex Опубликовано 30 ноября, 2013 Поделиться Опубликовано 30 ноября, 2013 Это реализация заморозки значения.Никогда не используй while(true), у меня было на проце AMD, что просто подобный цикл 25% сжирал в сетевом приложении.Лучше проверять нажатие клавиши каждые 50-100 мс. И нагрузка меньше, и шанс тут же выключить включенный чит тоже меньше.Хех, ясно понятно что подобный цикл жрет довольно достаточно ресурса. Это таки для примера, чтобы автор понял как нужно заморозить и разморозить значение)))р А так же можно использовать таймер вместо цикла... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения