Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 В 02.02.2016 в 15:32, Razi сказал: В этой сиситеме как в любом деле есть свои нюансы, и их трудно обьяснить.Это трудно объяснить. Просто отправь мой рабочий скрипт, AntonVitalievich должен по нему понять, что ты хочешь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 (изменено) Вот Показать контент { Game : ePSXe ENG.exe Version: Date : 2016-02-02 Author : User This script does blah blah blah}[ENABLE]aobscan(INJECT,88 1C 08 81 E2 FC FF 1F 00) // should be uniquealloc(newmem,$1000)label(code)label(return)newmem:code: mov [eax+ecx],bl and edx,001FFFFC jmp returnINJECT: jmp newmem nop nop nop nopreturn:registersymbol(INJECT)[DISABLE]INJECT: db 88 1C 08 81 E2 FC FF 1F 00unregistersymbol(INJECT)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: 02C802B402C8028B: 81 FA 00 00 80 1F - cmp edx,1F80000002C80291: 74 62 - je 02C802F502C80293: 8B 0D 84 0A 51 00 - mov ecx,["ePSXe ENG.exe"+110A84]02C80299: F7 C1 00 00 01 00 - test ecx,1000002C8029F: 75 53 - jne 02C802F402C802A1: 8B C8 - mov ecx,eax02C802A3: 89 C2 - mov edx,eax02C802A5: C1 E9 10 - shr ecx,1002C802A8: 25 FF FF 00 00 - and eax,0000FFFF02C802AD: 8B 0C 8D 40 AF 82 00 - mov ecx,[ecx*4+"ePSXe ENG.exe"+42AF40]// ---------- INJECTING HERE ----------02C802B4: 88 1C 08 - mov [eax+ecx],bl02C802B7: 81 E2 FC FF 1F 00 - and edx,001FFFFC// ---------- DONE INJECTING ----------02C802BD: BB 20 00 E9 02 - mov ebx,02E9002002C802C2: 03 DA - add ebx,edx02C802C4: 8B 03 - mov eax,[ebx]02C802C6: 3D 40 00 C8 02 - cmp eax,02C8004002C802CB: 75 01 - jne 02C802CE02C802CD: C3 - ret 02C802CE: B8 40 00 C8 02 - mov eax,02C8004002C802D3: 8B 0C 10 - mov ecx,[eax+edx]02C802D6: B8 20 00 12 03 - mov eax,0312002002C802DB: 8B 04 10 - mov eax,[eax+edx]} Изменено 2 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 В 02.02.2016 в 15:57, Razi сказал: инструкция на запись на адрес 00A47010 Ок буду пробовать и кидать варианты в личку, может что и прокатит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 (изменено) AntonVitalievich, Вот АА скрипт рабочий, который написан Garik66,http://forum.gamehacklab.ru/topic/4323-kak-v-cheat-engine-proizvesti-avtomaticheskoe-nazhatie-kla/?p=32346 Вчера только узнал, что при заморозке адреса 00A444E8 нужно разрешить ему двигаться в четырех значениях главные 72 и 8, и 104 и 40. То есть значение призаморозке может переключаться на 72, 8, 104 и 40. Изменено 2 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 (изменено) В 02.02.2016 в 15:57, Razi сказал: ВотПопробуй: Показать контент { Game : ePSXe ENG.exe Version: Date : 2016-02-02 Author : User This script does blah blah blah}[ENABLE]aobscan(INJECT,88 1C 08 81 E2 FC FF 1F 00) // should be uniquealloc(newmem,$1000)label(code)label(code1)label(return)label(flagUp)registersymbol(INJECT)newmem: cmp [00A47010],1 jne code1 cmp [flagUp],0 jne code1 pushad push 0 push 0 push 0 push #36 // Home call keybd_event push 0 push 2 push 0 push #36 call keybd_event mov [flagUp],1 popad jmp codecode1: cmp [00A47010],0 jne code cmp [flagUp],1 jne code pushad push 0 push 0 push 0 push #35 // End call keybd_event push 0 push 2 push 0 push #35 call keybd_event mov [flagUp],0 popadcode: mov [eax+ecx],bl and edx,001FFFFC jmp returnflagUp:dd 0INJECT: jmp newmem nop nop nop nopreturn:[DISABLE]INJECT: db 88 1C 08 81 E2 FC FF 1F 00unregistersymbol(INJECT)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: 02C802B402C8028B: 81 FA 00 00 80 1F - cmp edx,1F80000002C80291: 74 62 - je 02C802F502C80293: 8B 0D 84 0A 51 00 - mov ecx,["ePSXe ENG.exe"+110A84]02C80299: F7 C1 00 00 01 00 - test ecx,1000002C8029F: 75 53 - jne 02C802F402C802A1: 8B C8 - mov ecx,eax02C802A3: 89 C2 - mov edx,eax02C802A5: C1 E9 10 - shr ecx,1002C802A8: 25 FF FF 00 00 - and eax,0000FFFF02C802AD: 8B 0C 8D 40 AF 82 00 - mov ecx,[ecx*4+"ePSXe ENG.exe"+42AF40]// ---------- INJECTING HERE ----------02C802B4: 88 1C 08 - mov [eax+ecx],bl02C802B7: 81 E2 FC FF 1F 00 - and edx,001FFFFC// ---------- DONE INJECTING ----------02C802BD: BB 20 00 E9 02 - mov ebx,02E9002002C802C2: 03 DA - add ebx,edx02C802C4: 8B 03 - mov eax,[ebx]02C802C6: 3D 40 00 C8 02 - cmp eax,02C8004002C802CB: 75 01 - jne 02C802CE02C802CD: C3 - ret02C802CE: B8 40 00 C8 02 - mov eax,02C8004002C802D3: 8B 0C 10 - mov ecx,[eax+edx]02C802D6: B8 20 00 12 03 - mov eax,0312002002C802DB: 8B 04 10 - mov eax,[eax+edx]} Изменено 2 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 (изменено) Вариант скрипта для заморозки 3. Вкратце, что он делает.Имеются два совместно работающих скрипта, но выполняющих каждый свою задачу Первый скрипт "замораживатель" изначально выключен, второй скрипт "копировальщик", активен, и во всю сохраняет значение адреса в специально отведенное для этого место. Как только копировальщик замечает что у того адреса значение изменилось на 2, сразу делает паузу на 2 секунды, (выжидает пока значение наконец таки установиться на 72). Далее он последний раз копирует значение, (заметим что в это время "замораживатель" все ещё не активен), после этого "копировальщик" включает "замораживатель" и выключает сам себя, перестает копировать. В дело вступает "замораживатель. Значение уже успело установиться на 72 и заморозка не предвещает ничего худого. Итак, теперь "копировальщик" не активен, а "замораживатель" активен и во всю морозит. Как только значение изменилось на НЕ 2, "замораживатель" включает "копировальщика" а тот, сразу отключает "замораживателя" и начинает по новой копировать. И так все по кругу.Если 2 секунды мало, добавь побольше sleep(2000) Показать контент savedvalue - в таблице, нужно изменить тип на 1 байт.. В 02.02.2016 в 16:27, Garik66 сказал: Попробуй: Показать контент У меня АА инжектор(окно) не принимает скрипт. Пишет - Error in line 22. (pushad) This instruction cant be complitedА от себя, хотел спросить, то что в скрипте есть code1: но наверху скрипта нет label(code1) - это ничего, так можно делать в СЕ?{ Game : ePSXe ENG.exe Version: Date : 2016-02-02 Author : User This script does blah blah blah}[ENABLE]aobscan(INJECT,88 1C 08 81 E2 FC FF 1F 00) // should be uniquealloc(newmem,$1000)label(code)label(return)label(flagUp)registersymbol(INJECT)newmem: cmp [00A47010],1 jne code1 cmp [flagUp],0 jne code1 pushad push 0 push 0 push 0 push #36 // Home call keybd_event push 0 push 2 push 0 push #36 call keybd_event mov [flagUp],1 jmp codecode1: cmp [00A47010],0 jne code cmp [flagUp],1 jne code1 push 0 push 0 push 0 push #35 // End call keybd_event push 0 push 2 push 0 push #35 call keybd_event mov [flagUp],0code: mov [eax+ecx],bl and edx,001FFFFC jmp returnflagUp:dd 0INJECT: jmp newmem nop nop nop nopreturn:[DISABLE]INJECT: db 88 1C 08 81 E2 FC FF 1F 00unregistersymbol(INJECT)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: 02C802B402C8028B: 81 FA 00 00 80 1F - cmp edx,1F80000002C80291: 74 62 - je 02C802F502C80293: 8B 0D 84 0A 51 00 - mov ecx,["ePSXe ENG.exe"+110A84]02C80299: F7 C1 00 00 01 00 - test ecx,1000002C8029F: 75 53 - jne 02C802F402C802A1: 8B C8 - mov ecx,eax02C802A3: 89 C2 - mov edx,eax02C802A5: C1 E9 10 - shr ecx,1002C802A8: 25 FF FF 00 00 - and eax,0000FFFF02C802AD: 8B 0C 8D 40 AF 82 00 - mov ecx,[ecx*4+"ePSXe ENG.exe"+42AF40]// ---------- INJECTING HERE ----------02C802B4: 88 1C 08 - mov [eax+ecx],bl02C802B7: 81 E2 FC FF 1F 00 - and edx,001FFFFC// ---------- DONE INJECTING ----------02C802BD: BB 20 00 E9 02 - mov ebx,02E9002002C802C2: 03 DA - add ebx,edx02C802C4: 8B 03 - mov eax,[ebx]02C802C6: 3D 40 00 C8 02 - cmp eax,02C8004002C802CB: 75 01 - jne 02C802CE02C802CD: C3 - ret02C802CE: B8 40 00 C8 02 - mov eax,02C8004002C802D3: 8B 0C 10 - mov ecx,[eax+edx]02C802D6: B8 20 00 12 03 - mov eax,0312002002C802DB: 8B 04 10 - mov eax,[eax+edx]} function freezeriftwo(timer)if Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value=="2" thenAdr00A444E8.Value=savedvalue.Valueelsetimer_setEnabled(t3, true)endendendendt=createTimer(nil)timer_setInterval(t, 10)timer_onTimer(t, freezeriftwo)timer_setEnabled(t, false)function freezeriftwoCOPYVALUE(timer)if savedvalue.Value~="??" thenif Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value~="2" thensavedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, false)elsesleep(2000)savedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, true)timer_setEnabled(t3, false)endendendendendt3=createTimer(nil)timer_setInterval(t3, 10)timer_onTimer(t3, freezeriftwoCOPYVALUE)timer_setEnabled(t3, true) Изменено 2 февраля, 2016 пользователем AntonVitalievich Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 (изменено) В 02.02.2016 в 17:15, AntonVitalievich сказал: Пишет - Error in line 22. (pushad)Поправил в том же скрипте. Тяжело без отладки с игрой писать правильно сразу. были пропущены кое-где popad и pushad Изменено 2 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 В 02.02.2016 в 17:27, Garik66 сказал: Поправил в том же скрипте. Тяжело без отладки с игрой писать правильно сразу. были пропущены кое-где popad и pushadНе добавляется в таблицу из за call keybd_event. Удалил все 4, добавился.Еще вопрос. Почему для Code: есть label(code), а для Code1: нет label(code1). Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 (изменено) Ошибку с code1 поправил. А вот почему не проходят call keybd_event.не понимаю, у меня теперь тоже СЕ если сделать новую таблицу, тоже не разрешает скрипт вставлять, так что залью пока табличку где этот скрипт, проверьте. Если кто успел качнуть заметил ещё одну ошибку - перекачайте. ForRazi3.CT Изменено 4 февраля, 2016 пользователем Garik66 Далее выложу обновлённый скрипт 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 (изменено) AntonVitalievich, Работает нормально последний скрипт по заморозке. Уточнял в сообщении #54, что нужно чтоб при заморозке значение могло переключаться на 72, 8, 104 и 40. То есть во время заморозки, разрешать переключаться в адресе 00A444E8 на 72, 8, 104, 40. Изменено 2 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 И всё-таки странно почему когда я писал скрипт эта строчка (call keybd_event) компилировалась СЕ, а теперь нет. Я этого не понимаю.Видимо или наше ГБ или ЦРУ блочит, подумали, что хотим взломать белый дом. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 (изменено) Garik66, Работает последний третий скрипт потестировал 5 минут. Изменено 2 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 Работает как надо?Тогда странно почему его нельзя вставить в новую таблицу. Видимо нужно отдохнуть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 (изменено) Пока да, нужно будет еще протестировать минут 20-30, но по идее должен работать. Сейчас как раз и протестирую дополнительно. Изменено 2 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 (изменено) Чудеса короче да и только. У меня нет слов. В 02.02.2016 в 18:18, Garik66 сказал: И всё-таки странно почему когда я писал скрипт эта строчка (call keybd_event) компилировалась СЕ, а теперь нет. Я этого не понимаю.Видимо или наше ГБ или ЦРУ блочит, подумали, что хотим взломать белый дом. У меня только одно предположение. Так как я писал скрипт в табличке созданной ещё на СЕ 6.4 и в ней компилируется, то проблема в СЕ 6.5. По-видимому Дарк Байт решил, что функция keybd_event устаревшая и выкинул её из компилятора СЕ 6.5.Если кто хорошо знает английский, задайте вопрос на форуме СЕ пожалуйста. Выкинул он keybd_event и как можно восстановить, если выкинул. Изменено 2 февраля, 2016 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 2 февраля, 2016 Автор Поделиться Опубликовано 2 февраля, 2016 Garik66, Спасибо огромное, за помощь. Добавил плюсиков. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 (изменено) По скрипту "Эмуляция нажатия клавиши":Ты написал в ЛС: В 02.02.2016 в 19:57, Razi сказал: Проверил скрипт, работает хорошо. Этот скрипт кстати, дает большие возможности во всех играх. Просто изменяеш кнопки и условие на другие и этот скрипт подойдет к другой игре.Нет. Не ко всем играм подойдёт.То что написал я и AntonVitalievich (по сути мы написали одно и тоже на разных ЯП), это частный случай (хорошо, что он подошёл к твоей игре).Объясню. Мы ввели виртуальный (не игровой) флаг-переключатель. У меня это flagUp, у AntonVitalievich это forkeys.Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот).В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут.Для того, чтобы написать скрипты для всех игр (и конечно это возможно), нужна ещё дополнительная информация от тебя:т.е. какое событие в игре происходит при нажатии клавиши Home и какое при нажатии клавиши End, при чём не обязательно знать точные значения, а нужны просто инструкции на запись на это событие при нажатии соответствующей клавиши и вот по изменению адреса в этой инструкции мы можем написать именно универсальный скрипт, который будет подходить ко всем играм. PS: написанное не означает, что нужно прямо сейчас писать такие скрипты (можно сделать потом для других игр). Показать контент Razi:Отправлено Сегодня, 20:42Насчет твоего скрипта незнаю еще не пробовал, да и без твоей помощи может и не получиться попробовать.Пробовал скрипт AntonVitalievich только что там спокойно нажимается два раза подряд Home а потом 2 раза подряд End. Я просто паузу(промежуток) на всякий случай поставил между нажатиями кнопок подряд. В его скрипте наверно можно даже и держать одну кнопку и отпустить через какое захочеш время. И промежуток между нажатиями можно делать какой хочешь. Garik66Отправлено Сегодня, 20:44Авто нажатие? Или нажатие вручную?ERRARE HUMANUM EST // Человеку свойственно ошибатьсяR:Отправлено Сегодня, 20:46Автонажатие конечно. дописал здесь же предидущее сообщение, то что перед этим. G:Отправлено Сегодня, 20:51Сейчас проверю у себя (мне кажется ты меня всё-таки не понял.), но мне придётся переписать кое-что и разобраться в его скрипте. R:Отправлено Сегодня, 20:54Из твоего сообщения: В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут. Проверял два раза подряд автонажатие Home и два раза автонажатие End G:Отправлено Сегодня, 21:01Ты менял значение forkeys вручную в таблице? R:Отправлено Сегодня, 21:06И по идее в том скрипте можно даже: держа автоматически(нам ничего нажимать вообще не надо) держа например любую скажем кнопку F нажать на стрелки влево еще раз влево потом вверх еще раз вверх потом вправо и вниз и кнопка F при этом все время была нажатой пока нажимали стрелки и в конце отпустить кнопку F.R;Отправлено Сегодня, 21:07Нет, ничего не менял. Вписывал только в скрипт что надо нажать. Между нажатием одних и тех же кнопок может поставь команду sleep(100) между нажатиями, нажимаеш кнопку промежуток в 0,1 секунды и снова нажимаешь ту же кнопку. Не забывай что нужно как сначала писать keydown промежуток а потом keyup.R:Отправлено Сегодня, 21:11Показать скрипт как у меня выглядит? кусок или целый?G:Отправлено Сегодня, 21:17Короче при проверке скрипта Антона, я был прав этот скрипт, абсолютно такой же как и у меня и имеет те же ограничения.Для того чтобы объяснить тебе, что я имею ввиду, мне слишком много нужно сделать переделать скрипты для показа примера и записать видео, чтобы ты понял. А мне если честно влом это делать. Не понял, значит не понял. Главное скрипт устраивает.В моём скрипте можно сделать всё, что можно сделать в его скрипте. Но как я и говорил, на ассемблер первый вопрос из твоего задания реализовать гораздо сложнее, чем на LUA. G:Отправлено Сегодня, 21:17Razi сказал(а) 03 Фев 2016 - 21:11: В 03.02.2016 в 18:11, Razi сказал: Показать скрипт как у меня выглядит? кусок или целый?Конечно покажи.Интересно.G:Отправлено Сегодня, 21:18целый R:Отправлено Сегодня, 21:26Просто больше всего выделяется в твоем сообщении: В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут.А вот тут так сказал что понять не просто, что-то догадываюсь: Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот). Показать контент autoAssemble([[globalalloc(forkeys, 4)]])autoAssemble([[globalalloc(savedvalue, 4)]])al = getAddressList()Adr00A3F3E5 = al.getMemoryRecordByDescription("Adr00A3F3E5")Adr00A444E8 = al.getMemoryRecordByDescription("Adr00A444E8")Adr00A47010 = al.getMemoryRecordByDescription("Adr00A47010")forkeys = al.getMemoryRecordByDescription("forkeys")savedvalue = al.getMemoryRecordByDescription("savedvalue")function freezeriftwo(timer)if Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value=="2" thenAdr00A444E8.Value=savedvalue.Valueelsetimer_setEnabled(t3, true)endendendendt=createTimer(nil)timer_setInterval(t, 100)timer_onTimer(t, freezeriftwo)timer_setEnabled(t, false)function freezeriftwoCOPYVALUE(timer)if savedvalue.Value~="??" thenif Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value~="2" thensavedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, false)elsesleep(2000)savedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, true)timer_setEnabled(t3, false)endendendendendt3=createTimer(nil)timer_setInterval(t3, 100)timer_onTimer(t3, freezeriftwoCOPYVALUE)timer_setEnabled(t3, true)function forsimu(timer)if Adr00A47010.Value~="??" thenif Adr00A47010.Value=="1" thenif forkeys.Value=="0" thenforkeys.Value="1"keyDown(VK_DELETE)sleep(100)keyUp(VK_DELETE)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)endelseif Adr00A47010.Value~="??" thenif Adr00A47010.Value=="0" thenif forkeys.Value=="1" thenforkeys.Value="0"keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_DELETE)sleep(100)keyUp(VK_DELETE)endendendendendendt2=createTimer(nil)timer_setInterval(t2, 400)timer_onTimer(t2, forsimu)timer_setEnabled(t2, true) R:Отправлено Сегодня, 21:32Вручную меняеш в таблице или в игре нажимаеш на кнопку и значение меняется? G:Отправлено Сегодня, 21:32Я понял твою идею. в скрипте который ты выложил выше, но я говорю не про это G:Отправлено Сегодня, 21:33Короче давай так забили на этот вопрос.Я уже писал выше, что мне нужно много сделать, чтобы объяснить что я имею ввиду R:Отправлено Сегодня, 21:35В общем скрипт меня устраивает. G:Отправлено Сегодня, 21:40Что скрипт устраивает я понял, мой тоже работает абсолютно также. Я писал в теме не для этого. Короче сформулирую чуть,чуть по другому.Введение флага-переключателя (не игрового), который сделали мы с Антоном, это полумера, как я писал частный случай. Чтобы написать скрипт, который подойдёт абсолютно для всех игр, нужно реализовать игровой флаг-переключатель, т.е. из инструкция самого события, которое происходит при нажатии клавиш Home и End. R;Отправлено Сегодня, 21:43Кстати с самого начала забыл тебе сказать. Кнопки Home и Del абсолютно не влияют на процесс самой игры и никакие инструкции не выполняются внутри игры при нажатии Home и Del. G:Отправлено Сегодня, 21:49Ты всё продолжаешь .Если хочешь могу попробовать по другому пояснить, что я имею ввиду?Но поверь мне наши скрипты имеют ограничения и не ко всему подойдут.Хорошо, что они тебе подходят. R;Отправлено Сегодня, 21:51Ладно мы и так много времени потратили, давай лучше если тратить, то на более продуктивные вещи. G:Отправлено Сегодня, 21:59Допустим я пишу бота, который должен драться с врагом. о - враг открыт1 - враг бьёт Home - мы должны ударитьEnd - мы должны заблочить. Так вот, то что ты написал здесь:keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)это просто два раза взмах мечом, а здесьkeyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)просто два раза поднятие щита. За это время твоего бота убьют, потому что скрипт не отслеживает событие после удара. т.е. это не реакция на игру. Вот, если отследить событие после удара (нажатия кнопки Home) и после блока (нажатие кнопки End), вот тогда можно написать правильный скрипт. Надеюсь такой пример, тебе объяснит, что я хотел сказать про ограничение в наших скриптах. R:Отправлено Сегодня, 22:10То ты говоришь про автомат(чуть ли не ИИ), а меня как раз устраивает полу автомат. Меня устраивает например я махнул мечом и после или во время взмаха какая-то магия сама выстрелила во врага, ты и так это знаешь. R:Отправлено Сегодня, 22:12Про то что ты говоришь выходит далеко за рамки, того что я хотел, я про такое даже и близко не думал. G:Отправлено Сегодня, 22:16Так я и говорю, что хорошо что наши скрипты тебе подошли, но они имеют ограничения. Т.е.Допустим враг лупит 1,1,1,1,1,1,1,1 (ну берсеркер какой-нибудь )а у тебя уже скрипт написан, допустим в том виде, в которым ты мне дал. Так у тебя произойдёт что:твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать, так как флаг-переключатель не даст ему ничего сделать, только умирать. Или ты быстро ставишь игру на паузу и переписываешь скрипт? но учти, что и время между ударами может быть разное, а у тебя в скрипте оно строго прописано. R;Отправлено Сегодня, 22:18Вот об этом я и написал в том посте. А ты не поняв, написал следующий пост, что якобы нет ограничений. R:Отправлено Сегодня, 22:26Так у тебя произойдёт что:твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать А игрой то управляю я, скрипт лишь усиливает мои действия. ИИ часто теряется и не идет в сравнение с живым человеком.Например:Я жму физически кнопку взмаха мечом, а магия дополняя мои действия сама стреляет ( т.е. скрипт).Это всего лишь пример. На самом деле у меня другие действия происходят. G:Отправлено Сегодня, 22:30Если ИИ написан хорошим программистом специально, то не один игрок его не победит. А так это уже отход от темы.Тема была про ограничения наших скриптов. Изменено 3 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 (изменено) С помощью SER[G]ANT, связались с Дарк Байтом по поводу как вставить тот мой скрипт в новую табличку он ответил:Добавлено: Ср 3 февраля 2016 8:29 утра Заголовок сообщения: Цитата:Как добавить этот скрипт к столу без ручного редактирования файла .CT? Просто откройте любой процесс (ну, любой процесс с пользовательским интерфейсом или тот, который загружает user32.dll), вставьте его в автомобильной ассемблере и нажмите File-> Назначить обмануть таблицу Dark ByteSite Admin Reputation: 286Joined: 09 May 2003Posts: 17990Location: The netherlands Posted: Wed Feb 03, 2016 8:29 am Post subject: Quote:How to add this script to the table without manual editing of the .CT file? Just open ANY process(well, any process with a userinterface or one that loads user32.dll ) , paste it in the auto assembler and click file->assign to cheat table _________________ЗЫ: Проверил:Открыл СЕ, запустил Туториал, подключился к процессу Туториала, скопировал скрипт и вставил.Вот таким образом мне удалось написать этот рабочий скрипт. Прикол - век живи - век учись. Изменено 3 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 3 февраля, 2016 Автор Поделиться Опубликовано 3 февраля, 2016 (изменено) Кстати, я добавил в скрипт AntonVitalievich еще дополнительное нажатие еще одной кнопки: тоже самое сравнение по адресу, и когда адрес меняется на 1 автонажатие кнопки del потом сразу home, когда адрес снова поменялся на 0 автонажатие end потом del, и работает так как надо. Даже потом поставил паузу между нажатиями этих кнопок. В Lua я добавил всего пару строчек с нажатием кнопок. А вот в твоем АА скрипте, мне кажется будет сложнее такое сделать, но я еще не смотрел. В Lua как-то попроще нажатие клавиш сделано. Изменено 3 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 В 03.02.2016 в 16:15, Razi сказал: В Lua как-то попроще нажатие клавиш сделано.Я тебе сразу говорил, что на первый вопрос из твоего задания, будет проще сделать на LUA, а второй вопрос - проще на АА, так как заморозка это просто операнд MOV. В 03.02.2016 в 16:15, Razi сказал: Кстати, я добавил в скрипт AntonVitalievich еще дополнительное нажатие еще одной кнопки: тоже самое сравнение по адресу, и когда адрес меняется на 1 автонажатие кнопки del потом сразу home, когда адрес снова поменялся на 0 автонажатие end потом del, и работает так как надо.Razi, если ты это написал в ответ на мой пост # 67, то ты опять торопишься и прочитал невнимательно.Причём здесь количество клавиш, в мой скрипт ты тоже можешь добавить сколько угодно клавиш. Попробуй авто-нажать два раза подряд любую из этих клавиш, флаг-переключатель это не позволит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 В 02.02.2016 в 18:06, Razi сказал: Уточнял в сообщении #54, что нужно чтоб при заморозке значение могло переключаться на 72, 8, 104 и 40. То есть во время заморозки, разрешать переключаться в адресе 00A444E8 на 72, 8, 104, 40. Если нужно такое условие, то как я думаю, можно попробовать использовать - инструкцию, записывающую эти значения в адрес 00A444E8, в качестве помощника. Нужна инструкция. Выложи её сюда. Весь АА скрипт с ней. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 (изменено) В 03.02.2016 в 16:46, AntonVitalievich сказал: Выложи её сюда. Весь АА скрипт с ней.AntonVitalievich, возьмите из этого сообщения, все три скрипта на основе АА скрипта Razi.А в этом сообщении окончательный скрипт. Изменено 3 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 3 февраля, 2016 Автор Поделиться Опубликовано 3 февраля, 2016 (изменено) AntonVitalievich, Готовый рабочий скрипт из сообщения 34: http://forum.gamehacklab.ru/topic/4323-kak-v-cheat-engine-proizvesti-avtomaticheskoe-nazhatie-kla/?p=32346 Изменено 3 февраля, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 (изменено) В 03.02.2016 в 16:53, Razi сказал: AntonVitalievich, http://forum.gamehac...ie-kla/?p=32346Razi, ты опять торопишься, не на то дал ссылку, ты дал на АА -скрипт, для авто-нажатия, а не для заморозки. Изменено 3 февраля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 3 февраля, 2016 Поделиться Опубликовано 3 февраля, 2016 (изменено) АА скрипт на заморозку значит уже есть? Зачем еще делать. В нем если 2 то замораживается на 72? А что такое @@: в скрипте?@@:cmp ebx,#72jne code1mov [eax+ecx],#72 ==================================================================// ---------- INJECTING HERE ----------03050434: 89 1C 08 - mov [eax+ecx],ebx03050437: 81 E2 FC FF 1F 00 - and edx,001FFFFC// ---------- DONE INJECTING ----------В каком регистре здесь в этом скрипте 72, 8, 104 и 40?ebx - это что ли и есть ониа [eax+ecx], - это что, адрес 00A444E8? Простите, вновь забыл про тег. Изменено 3 февраля, 2016 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения