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

Включение функции трейнера


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

Делаю трейнер для 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;
}
}

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

Знания по синтаксису у меня отсутствуют, но это все гугля рассказал что..



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;

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

Не знаю как на 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
.....

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

Как то так...


...
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 мс. И нагрузка меньше, и шанс тут же выключить включенный чит тоже меньше.

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

Это реализация заморозки значения.

Никогда не используй while(true), у меня было на проце AMD, что просто подобный цикл 25% сжирал в сетевом приложении.

Лучше проверять нажатие клавиши каждые 50-100 мс. И нагрузка меньше, и шанс тут же выключить включенный чит тоже меньше.

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

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

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

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

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