MasterGH Опубликовано 12 февраля, 2011 Поделиться Опубликовано 12 февраля, 2011 Для кому интересно как использовать поток в скриптах CEalloc(mycode,4096) CREATETHREAD(mycode); mycode: mov eax,[gamex.dll+123456] mov ebx,[eax+4c] mov [eax+48],ebx push #1000 call sleep jmp mycodeВ данном случае здесь заморозка с частотой в 1-ну секунду.А вот мой пример скрипта для GTA SAN Andreas. Скрипт заполняет данные структуры игрока один раз//mov [[00B6F3B8]+n*1c+5a8]],1//mov [[00B6F3B8]+n*1c+5ac]],1 //где n =[1..12][ENABLE]alloc(tred,200)registersymbol(tred)label(x1)tred:push eaxpush ecxpush ebxxor ecx,ecxmov eax,[00B6F3B8]add eax,5a8x1:inc ecximul ebx,ecx,1cmov [eax+ebx],1// mov [[00B6F3B8]+n*1c+5a8]],1 - в обоймеmov [eax+ebx+4],1// mov [[00B6F3B8]+n*1c+5ac]],1 - общие патроныcmp ecx,cjne x1pop ebxpop ecxpop eaxcall GetCurrentThreadretcreatethread(tred)[DISABLE]dealloc(tred)Инструкцию call GetCurrentThread я ипользовал для корректного получения указателя на поток (хотя думаю можно было бы сделать иначе, но пока я не исследовал это дело). GetCurrentThread кладёт в eax указатель на данный поток и ret поток закрывает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения