VBStreets Conference - Thread View - Speed hack и подобни
Някой занимавал ли се е някога с тези технологии във vb? За мен vb е основният език за програмиране и бих искал да опитам да направя това на vb. След това ще изложа как се прави в C
Код: Изберете всички DWORD last_real=0; DWORD last_fake=0; DWORD last_ticks=0; DWORD speed_ticks_left=0; DWORD phase_ticks_left=0; //DWORD speed_runtime=0;
//==================================================== typedef BOOL (WINAPI *QueryPerformanceCounterFunc)(LARGE_INTEGER*); QueryPerformanceCounterFunc QueryPerformanceCounterPtr=NULL; BOOL WINAPI newQueryPerformanceCounter(LARGE_INTEGER *lp) BOOL ret = (*QueryPerformanceCounterPtr)(lp);
DWORD cur_ticks = timeGetTime();
DWORD new_real = lp->LowPart; ако(!last_real)
// определяме дали ни е позволено да използваме скоростен хак (speed_ticks_left) DWORD ticks_passed = cur_ticks-last_ticks; last_ticks = cur_ticks; ако (phase_ticks_left>ticks_passed) // фазата се изпълнява phase_ticks_left -= ticks_passed; if(cvar.speed>1) // консумира тик скорости if(speed_ticks_left>ticks_passed) < speed_ticks_left -= ticks_passed; > друго < speed_ticks_left=0; > > > иначе < // фазата не работи или току-що е изтекло
if(cvar.speed>1) < // настройка на нова фаза speed_ticks_left = cvar.speedon; phase_ticks_left = cvar.speedon+cvar.speedoff; > иначе phase_ticks_left = 0; > >
//==================== двоен фактор = (cvar.speed LowPart = last_fake + diff_fake;
last_fake += diff_fake; last_real += diff_real;
return ret; > помощ на гуру
кода е меко казано непълен, така че роднини няма да има. не е ясно какво прави, не е ясно защо го прави
разбира се може да се преведе глупаво,но какво е например cvar?
keks-n МНОГО NATO, но аз не съм добър в asma ( Изрових пример с кутията за съобщения на Temych, но уви .. ако някой може да помогне с частта от asma, ще съм много благодарен
Чувствам, че ще трябва да се измъчвам asm
Гота Уау. измамата е лоша. Но благодаря за ogc сортирането =))
Разбрах какво иска да направи - да увеличи системния тик, използван в игрите за правилното движение на моделите. Speed Hack е измамен начин да накарате моделите да се движат по-бързо.
Добре. Всеки, който някога се е занимавал с игри ще разбере.
как да кажа измама. Да кажем, че автоматизирам скучни монотонни действия
темата нагоре, все още е много актуална, защото ще бъде първото полезно приложение за улавяне на api функции (ако помагат разбира се)
Заменете с това: Код: Изберете всички SetTime proc li:DWORD m2m li1,li xor eax,eax ret SetTime endp
Intercept_F proc mov eax, li1 ret Intercept_F endp
И най-отгоре поставете: Код: Изберете всички sFunctnName db "GetTickCount", 0h
Съответно, параметрите SetTime: (ByVal T as Long)
И за да не объркам нещо, ето и библията за GetTickCount.
Но как да използваме тази библиотека, за да направим компонента на таймера във vb "тик" по-бърз? в /> hook на msvbvm60.dll също не промени нищо
каква е уловката? може би ръцете ми са криви?
Kovu извинете ме за здравословния нообизъм, но самото управление на таймера се намира в msvbvm60? а не в самата програма, само там се наследява, така че трябва да се рови в msvbvm или греша? което означава как да получа pid на msvbvm?
общо взето съм изгубен