Конференція VBStreets - Перегляд теми - 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=0 ;
//================================================ ========= typedef BOOL (WINAPI *QueryPerformanceCounterFunc)(LARGE_INTEGER*); QueryPerformanceCounterFunc QueryPerformanceCounterPtr=NULL; BOOL WINAPI newQueryPerformanceCounter(LARGE_INTEGER *lp *QueryPerformanceCounterPtr)(lp);
DWORD cur_ticks = timeGetTime();
DWORD new_real = lp->LowPart; if(!last_real)
// determine wether we allow allowed to use speed hack (speed_ticks_left) DWORD ticks_passed = cur_ticks-last_ticks; last_ticks = cur_ticks; if (phase_ticks_left>ticks_passed) // phase running phase_ticks_left -= ticks_passed; if(cvar.speed>1) // consume speed ticks if(speed_ticks_left>ticks_passed) < speed_ticks_left -= ticks_passed; > else < speed_ticks_left = 0; > > > else < // phase not running or just timed out
if(cvar.speed>1) < // setup a new phase speed_ticks_left = cvar.speedon; phase_ticks_left = cvar.speedon+cvar.speedoff; > else phase_ticks_left = 0; > >
//=================== double factor = (cvar.speed LowPart = last_fake + diff_fake;
last_fake + = diff_fake; last_real + = diff_real;
return ret; > гуру, допоможіть
код м'яко кажучи неповний, тому кіна не буде. Що робить незрозуміло, навіщо робить незрозуміло
можна звичайно тупо перекласти,але що таке наприклад cvar?
keks-n ДУЖЕ нато, але в асмі я ні в дуб зубом ( я копав приклад з месаджбоксом від Темича, але на жаль.. якщо хтось допоможе з частиною на асмі - буду дуже вдячний
чую доведеться самому ас терзати
Gotha Ай-ай-ай. читерити недобре. Але за сорці ogc спасіюо =))
Я зрозумів, що він хоче зробити - збільшити системний тик, який використовується в іграх для коректного пересування моделей. Спід Хак це читерський спосіб змусити моделі рухаються швидше.
ну. всі хто хоч раз мав справу з іграми – зрозуміє.
ну як сказати читерити. скажімо так автоматизую нудні одноманітні дії
темі ап, вона все ще дуже актуальна бо буде першим корисним застосуванням вилову апі функцій (якщо допоможуть звичайно)
Заміни на це: Код: Виділити все 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 "тикати" швидше? у /> хук на msvbvm60.dll теж нічого не змінив
у чому проблема? може у мене руки криві?
Kovu пробач мені за здоровий нубізм, але ж сам контрол таймера криється в msvbvm60? а не в самій програмі, там він тільки успадковується, значить рити треба в msvbvm, чи я не правий? а значить як отримати pid msvbvm?
загалом я заблукав