Garik66 Опубликовано 16 мая, 2017 Поделиться Опубликовано 16 мая, 2017 Сам запрос. Скрипты: For yh1kn v.1 : Скрытый текст [ENABLE] {$LUA} flag = 0 UDF1.CETimer1:setEnabled(true) memrec = getAddressList().getMemoryRecordByID("3") function CETimer1Timer(sender) if flag == 1 then memrec.Value = "999" flag = 0 else memrec.Value = "888" flag = 1 end end {$ASM} [DISABLE] {$LUA} UDF1.CETimer1:setEnabled(false) {$ASM} For yh1kn v.2: Скрытый текст [ENABLE] {$LUA} flag = 0 UDF1.CETimer1:setEnabled(true) function CETimer1Timer(sender) if flag == 1 then writeInteger('["Tutorial-i386.exe"+002345D0]+480',"777") flag = 0 else writeInteger('["Tutorial-i386.exe"+002345D0]+480',"666") flag = 1 end end {$ASM} [DISABLE] {$LUA} UDF1.CETimer1:setEnabled(false) {$ASM} For yh1kn v.3: Скрытый текст [ENABLE] {$LUA} flag = 0 UDF1.CETimer1:setEnabled(true) memrec=getAddressList().getMemoryRecordByID("5") memrec1=getAddressList().getMemoryRecordByID("6") function CETimer1Timer(sender) if flag == 1 then memoryrecord_unfreeze(memrec) --sleep(5) memoryrecord_freeze(memrec1) flag = 0 else memoryrecord_unfreeze(memrec1) --sleep(5) memoryrecord_freeze(memrec) flag = 1 end end {$ASM} [DISABLE] {$LUA} UDF1.CETimer1:setEnabled(false) {$ASM} For yh1kn v.4 (в видео не рассматривал - дописал потом): Скрытый текст { Game : Tutorial-i386.exe Version: Date : 2017-05-16 Author : Garik66 This script does blah blah blah } [ENABLE] {$LUA} UDF1.show() UDF1.CETimer1:setEnabled(true) memrec = getAddressList().getMemoryRecordByID("8") function CETimer1Timer(sender) if memrec.Value == "0" then sleep "300" memrec.Value = "1" else sleep "300" memrec.Value = "0" end end {$ASM} aobscanmodule(INJECT1,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(flag) registersymbol(flag) registersymbol(INJECT1) newmem: cmp [flag],1 jne @f mov [ebx+00000480],#333 jmp code @@: mov [ebx+00000480],#222 code: cmp [ebx+00000480],000003E8 jmp return flag: dd 0 INJECT1: jmp newmem db 90 90 90 90 90 return: [DISABLE] {$LUA} UDF1.CETimer1:setEnabled(false) {$ASM} INJECT1: db 81 BB 80 04 00 00 E8 03 00 00 unregistersymbol(flag) unregistersymbol(INJECT1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+23AC3 "Tutorial-i386.exe"+23AB1: E8 0A 9D FE FF - call Tutorial-i386.exe+D7C0 "Tutorial-i386.exe"+23AB6: 5E - pop esi "Tutorial-i386.exe"+23AB7: 5B - pop ebx "Tutorial-i386.exe"+23AB8: C9 - leave "Tutorial-i386.exe"+23AB9: C3 - ret "Tutorial-i386.exe"+23ABA: 00 00 - add [eax],al "Tutorial-i386.exe"+23ABC: 00 00 - add [eax],al "Tutorial-i386.exe"+23ABE: 00 00 - add [eax],al "Tutorial-i386.exe"+23AC0: 53 - push ebx "Tutorial-i386.exe"+23AC1: 89 C3 - mov ebx,eax // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+23AC3: 81 BB 80 04 00 00 E8 03 00 00 - cmp [ebx+00000480],000003E8 // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+23ACD: 75 2C - jne Tutorial-i386.exe+23AFB "Tutorial-i386.exe"+23ACF: 8B 83 68 04 00 00 - mov eax,[ebx+00000468] "Tutorial-i386.exe"+23AD5: B2 01 - mov dl,01 "Tutorial-i386.exe"+23AD7: 8B 8B 68 04 00 00 - mov ecx,[ebx+00000468] "Tutorial-i386.exe"+23ADD: 8B 09 - mov ecx,[ecx] "Tutorial-i386.exe"+23ADF: FF 91 20 02 00 00 - call dword ptr [ecx+00000220] "Tutorial-i386.exe"+23AE5: 8B 83 78 04 00 00 - mov eax,[ebx+00000478] "Tutorial-i386.exe"+23AEB: B2 00 - mov dl,00 "Tutorial-i386.exe"+23AED: 8B 8B 78 04 00 00 - mov ecx,[ebx+00000478] "Tutorial-i386.exe"+23AF3: 8B 09 - mov ecx,[ecx] } Видео: For_yh1kn.CT 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 16 мая, 2017 Поделиться Опубликовано 16 мая, 2017 Garik66,сколько отличного видео было выложено тобой,скольким ты уже помог благодаря своим видео,что тут сказать МОЛОДЕЦ. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 мая, 2017 Автор Поделиться Опубликовано 16 мая, 2017 ЗЫ: Посмотрел работу всех 4-х скриптов, если хочешь точнее, то лучше писать непосредственно в адрес (1 и 2 скрипты). Иначе накладывается таймер самой читающей инструкции (скрипты 3 и 4). 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 16 мая, 2017 Поделиться Опубликовано 16 мая, 2017 (изменено) 3 минуты назад, yh1kn сказал: Спасибо за подробное разъяснение но вот беда что когда скрипт активирую ничего не происходит. Имя таймера одинаковое в LUA таймера самого ничего нету. В чем может быть косяк ? Скрипт то выложи! Иначе как понять? Изменено 16 мая, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 мая, 2017 Автор Поделиться Опубликовано 16 мая, 2017 3 минуты назад, yh1kn сказал: 1 @what228 уже опередил: 1 минуту назад, what228 сказал: Скрипты то выложи Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 16 мая, 2017 Поделиться Опубликовано 16 мая, 2017 (изменено) 4 минуты назад, yh1kn сказал: Скрытый текст [ENABLE] {$LUA} flag = 0 UDF1.CETimer1:setEnabled(true) memrec = getAddressList().getMemoryRecordByID("44") function CETimer1Timer(sender) if flag == 1 then memrec.Value = "4" flag = 0 else memrec.Value = "9" flag = 1 end end {$ASM} [DISABLE] {$LUA} UDF1.CETimer1:setEnabled(false) {$ASM} 1. Тег спойлер + код 2. ID адреса правильный? Изменено 16 мая, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 мая, 2017 Автор Поделиться Опубликовано 16 мая, 2017 2 минуты назад, yh1kn сказал: memrec = getAddressList().getMemoryRecordByID("44") Что у тебя в таблице под ID 44 - скрипт или адрес? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 мая, 2017 Автор Поделиться Опубликовано 16 мая, 2017 11 минуту назад, yh1kn сказал: когда отркыт графический редактор ничего не происходит Что за граф.редактор? Это ты наверное про Form Designer? 11 минуту назад, yh1kn сказал: в первом варианте значения меняются с задержкой вне зависимости от значения тика таймера. Ты уверен? Перезапусти игру и СЕ и проверь ещё раз. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения