Ac1d Опубликовано 14 июня, 2011 Поделиться Опубликовано 14 июня, 2011 В общем забыл я как искать таймер. Какой тип байта(ов) надо брать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 14 июня, 2011 Поделиться Опубликовано 14 июня, 2011 Смотря какой таймер. Я всегда брал - 2 байта для минут (если искать минуты), или 4 байта для секунд (1.5 минуты равны 90 сек). Оба варианта с точкой (для Артмани), или просто с точкой и диапазон для СЕ Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 14 июня, 2011 Автор Поделиться Опубликовано 14 июня, 2011 Спасибо, в принципе не важно минуты или секунды Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 14 июня, 2011 Автор Поделиться Опубликовано 14 июня, 2011 Есть скрипт. Надо тупо тормознуть таймер (db 90 90 90) где его записать в скрипте?[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [esi+79],#ХХoriginalcode:mov al,[esi+79]test al,alexit:jmp returnhere005A5A04:jmp newmemreturnhere: [DISABLE]dealloc(newmem)005A5A04:mov al,[esi+79]test al,al//Alt: db 8A 46 79 84 C0И ещё вопрос. Как сделать так, чтобы по нажатии хоткея добавить иное число при этом его не морозить. Например дал себе 100 патронов и при выстреле 99 далее 98 итд. Если можно, то на этом же скрипте. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 15 июня, 2011 Поделиться Опубликовано 15 июня, 2011 Есть скрипт. Надо тупо тормознуть таймер (db 90 90 90) где его записать в скрипте?Нопить надо что-то другое, а не что-то в скрипте. Самый простой способ тормознуть таймер это писать постоянно значение в адрес секунд. И ещё вопрос. Как сделать так, чтобы по нажатии хоткея добавить иное число при этом его не морозить. Например дал себе 100 патронов и при выстреле 99 далее 98 итд. Если можно, то на этом же скрипте.Вижу множество способов. Один из них следующий.1) В коде игры найти инструкцию которая работает со всеми патронами для всего оружия.2) Создаёшь первый АА скрипт (активирующий). Сделать инъекцию в инструкцию на сохранение текущего адреса патронов. А также дописываешь код записи по этому адресу для потока.3) Создаёшь второй АА скрипт после активации первого (иначе будет ошибка) в котором под [ENABLE] записывается выполнение потока. 4) Потом устанавливаешь хоткеии.Один хот-кей на активирующий скрипт. Его нужно активировать один раз в начале игры.Другой хот-кей на второй АА скрипт.Активирующий:[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)label(pAmmo)label(threadmem)registersymbol(threadmem) newmem:push eaxlea eax,[esi+79]mov [pAmmo],eaxpop eaxoriginalcode:mov al,[esi+79]test al,alexit:jmp returnherethreadmem:mov eax, [pAmmo]mov [eax],#99 retpAmmo:dd 0 005A5A04:jmp newmemreturnhere: [DISABLE] 005A5A04:mov al,[esi+79]test al,al //Alt: db 8A 46 79 84 C0dealloc(newmem)Второй скрипт:[ENABLE] createthread(threadmem)[DIASBLE]Может быть я где-то ошибся, так что надо проверять. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 15 июня, 2011 Автор Поделиться Опубликовано 15 июня, 2011 Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 июня, 2011 Поделиться Опубликовано 15 июня, 2011 Мастер подскажи пожалуйста функции которые работают с таймером в играх (часто встречающиеся)Я имею ввиду функции например как для работы с диалогами MessageBox Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 16 июня, 2011 Поделиться Опубликовано 16 июня, 2011 SetTimer - установить таймер. Находится в User32.dllKillTimer - уничтожить таймер. Находится в User32.dllTimerProc - объявление вызываемой функции в таймереПодробнее:Timer Functionshttp://msdn.microsof...3(v=VS.85).aspxAbout Timershttp://msdn.microsof...0(v=VS.85).aspxUsing Timershttp://msdn.microsof...1(v=VS.85).aspx--------------Что-то на русском:SetTimer http://rusapi.narod.ru/SetTimer.htmWM_TIMER http://rusapi.narod.ru/WM_TIMER.htmTimerProc http://rusapi.narod.ru/TimerProc.htmKillTimer http://rusapi.narod.ru/KillTimer.htmhttp://www.firststep.../help/r.php?249http://www.cyberguru...e-tajmerov.htmlВ основном надо знать, что таймер создаётся через SetTimer импортируемую из User32.dll. Тамер срабатывает через определённый интервал времени. Количество срабатываний можно идентифицировать увеличивающимся счётчиком и в игре отображать этот счётчик как секунды, минуты или часы. Функцию извлечения системного времени и даты я не рассматриваю.Если таймер создан, то ему присваивается целочисленный идентификатор, который возвращается функцией SetTimer. Снимая показания именно этого таймера нужно обращаться именно к этому идентификатору в структуре сообщения WM_TIMER или снимать показания внутри функции сигнатуры TimerProc, которая была специально привязана к созданному таймеру. WM_TIMER обрабатывается в оконной процедуре, где снимаются сообщения системы посланные hwnd окна игры... Если создана "специальная функция" для таймера, то она минует функцию оконной процедуры обрабатывающей системные сообщения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения