Перейти к содержанию

Как в Cheat Engine произвести автоматическое нажатие клавиш?


Razi

Рекомендуемые сообщения

В этой сиситеме как в любом деле есть свои нюансы, и их трудно обьяснить.

Это трудно объяснить. Просто отправь мой рабочий скрипт, AntonVitalievich должен по нему понять, что ты хочешь.

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 109
  • Создана
  • Последний ответ

Топ авторов темы

Вот

{ 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]}
Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

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.

Изменено пользователем 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]} 
Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Вариант скрипта для заморозки 3.

 

Вкратце, что он делает.

Имеются два совместно работающих скрипта, но выполняющих каждый свою задачу Первый скрипт "замораживатель" изначально выключен, второй скрипт "копировальщик", активен, и во всю сохраняет значение адреса в специально отведенное для этого место. Как только копировальщик замечает что у того адреса значение изменилось на 2, сразу делает паузу на 2 секунды, (выжидает пока значение наконец таки установиться на 72). Далее он последний раз копирует значение, (заметим что в это время "замораживатель" все ещё не активен), после этого "копировальщик" включает "замораживатель" и выключает сам себя, перестает копировать. В дело вступает "замораживатель. Значение уже успело установиться на 72 и заморозка не предвещает ничего худого. Итак, теперь "копировальщик" не активен, а "замораживатель" активен и во всю морозит. Как только значение изменилось на НЕ 2, "замораживатель" включает "копировальщика" а тот, сразу отключает "замораживателя" и начинает по новой копировать. И так все по кругу.

Если 2 секунды мало, добавь побольше sleep(2000)

 

 

 

 

savedvalue - в таблице, нужно изменить тип на 1 байт..


Попробуй:

 

У меня АА инжектор(окно) не принимает скрипт. Пишет - 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)
Изменено пользователем AntonVitalievich
Ссылка на комментарий
Поделиться на другие сайты

Пишет - Error in line 22. (pushad)

Поправил в том же скрипте. Тяжело без отладки с игрой писать правильно сразу. были пропущены кое-где  popad и pushad

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Поправил в том же скрипте. Тяжело без отладки с игрой писать правильно сразу. были пропущены кое-где  popad и pushad

Не добавляется в таблицу из за call keybd_event. Удалил все 4, добавился.

Еще вопрос. Почему для Code: есть label(code), а для Code1:  нет  label(code1).

Ссылка на комментарий
Поделиться на другие сайты

Ошибку с code1 поправил.

А вот почему не проходят  call keybd_event.не понимаю, у меня теперь тоже СЕ если сделать новую таблицу, тоже не разрешает скрипт вставлять,

так что залью пока табличку где этот скрипт, проверьте.

 

 

Если кто успел качнуть заметил ещё одну ошибку - перекачайте.

 

ForRazi3.CT

Изменено пользователем Garik66
Далее выложу обновлённый скрипт
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

AntonVitalievich,  Работает нормально последний скрипт по заморозке. Уточнял в сообщении #54, что нужно чтоб при заморозке значение могло переключаться на 72, 8, 104 и 40. То есть во время заморозки, разрешать переключаться в адресе 00A444E8 на 72, 8, 104, 40.

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

offtopic.gif И всё-таки странно почему когда я писал скрипт эта строчка (call keybd_event) компилировалась СЕ, а теперь нет. Я этого не понимаю.

Видимо или наше ГБ или ЦРУ блочит, подумали, что хотим взломать белый дом.

Ссылка на комментарий
Поделиться на другие сайты

Пока да, нужно будет еще протестировать минут 20-30, но по идее должен работать. Сейчас как раз и протестирую дополнительно.

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

Чудеса короче да и только. У меня нет слов.


offtopic.gif И всё-таки странно почему когда я писал скрипт эта строчка (call keybd_event) компилировалась СЕ, а теперь нет. Я этого не понимаю.

Видимо или наше ГБ или ЦРУ блочит, подумали, что хотим взломать белый дом.

У меня только одно предположение. Так как я писал скрипт в табличке созданной ещё на СЕ 6.4 и в ней компилируется, то проблема в СЕ 6.5. По-видимому Дарк Байт решил, что функция keybd_event устаревшая и выкинул её из компилятора СЕ 6.5.

Если кто хорошо знает английский, задайте вопрос на форуме СЕ пожалуйста. Выкинул он  keybd_event и как можно восстановить, если выкинул.

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

По скрипту "Эмуляция нажатия клавиши":

Ты написал в ЛС:

Проверил скрипт, работает хорошо. Этот скрипт кстати, дает большие возможности во всех играх. Просто изменяеш кнопки и условие на другие и этот скрипт подойдет к другой игре.

Нет. Не ко всем играм подойдёт.
То что написал я и AntonVitalievich (по сути мы написали одно и тоже на разных ЯП), это частный случай (хорошо, что он подошёл к твоей игре).
Объясню. Мы ввели виртуальный (не игровой) флаг-переключатель. У  меня это flagUp, у AntonVitalievich это forkeys.
Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот).
В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут.
Для того, чтобы написать скрипты для всех игр (и конечно это возможно), нужна ещё дополнительная информация от тебя:
т.е. какое событие в игре происходит при нажатии клавиши Home и какое при нажатии клавиши End, при чём не обязательно знать точные значения, а нужны просто инструкции на запись на это событие при нажатии соответствующей клавиши и вот по изменению адреса в этой инструкции мы можем написать именно универсальный скрипт, который будет подходить ко всем играм.
 
PS: написанное не означает, что нужно прямо сейчас писать такие скрипты :-D  (можно сделать потом для других игр).
 
 
Razi:
Отправлено Сегодня, 20:42

Насчет твоего скрипта незнаю еще не пробовал, да и без твоей помощи может и не получиться попробовать.

Пробовал скрипт AntonVitalievich только что там спокойно нажимается два раза подряд Home а потом 2 раза подряд End. Я просто паузу(промежуток) на всякий случай поставил между нажатиями кнопок подряд. В его скрипте наверно можно даже и держать одну кнопку и отпустить через какое захочеш время. И промежуток между нажатиями можно делать какой хочешь.

Garik66Отправлено Сегодня, 20:44

Авто нажатие? Или нажатие вручную?

ERRARE HUMANUM EST // Человеку свойственно ошибаться
i2npvrd.png

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:17

Razi сказал(а) 03 Фев 2016 - 21:11:

Показать скрипт как у меня выглядит? кусок или целый?

Конечно покажи.

Интересно.

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 (ну берсеркер какой-нибудь   :-D )

а у тебя уже скрипт написан, допустим в том виде, в которым ты мне дал.

 

Так у тебя произойдёт что:

твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать, так как флаг-переключатель не даст ему ничего сделать, только умирать.

 

Или ты быстро ставишь игру на паузу и переписываешь скрипт?  :-D  но учти, что и время между ударами может быть разное, а у тебя в скрипте оно строго прописано.  

 

R;

Отправлено Сегодня, 22:18

Вот об этом я и написал в том посте. А ты не поняв, написал следующий пост, что якобы нет ограничений. 

 

R:

Отправлено Сегодня, 22:26

Так у тебя произойдёт что:

твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать

 

А игрой то управляю я, скрипт лишь усиливает мои действия. ИИ часто теряется и не идет в сравнение с живым человеком.

Например:

Я жму физически кнопку взмаха мечом, а магия дополняя мои действия сама стреляет ( т.е. скрипт).

Это всего лишь пример. На самом деле у меня другие действия происходят.

 

G:

Отправлено Сегодня, 22:30

Если ИИ написан хорошим программистом специально, то не один игрок его не победит.

 

А так это уже отход от темы.

Тема была про ограничения наших скриптов.

  •  

 

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

С помощью SER[G]ANT, связались с Дарк Байтом по поводу как вставить тот мой скрипт в новую табличку он ответил:

icon_minipost.gifДобавлено: Ср 3 февраля 2016 8:29 утра     Заголовок сообщения: icon_quote.gif Цитата:
Как добавить этот скрипт к столу без ручного редактирования файла .CT? 
Просто откройте любой процесс (ну, любой процесс с пользовательским интерфейсом или тот, который загружает user32.dll), вставьте его в автомобильной ассемблере и нажмите File-> Назначить обмануть таблицу 

 
Dark Byte
Site Admin
_475-.png
 
Reputation: 286

Joined: 09 May 2003
Posts: 17990
Location: The netherlands
icon_minipost.gifPosted: Wed Feb 03, 2016 8:29 am    Post subject: icon_quote.gif 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 
_________________

ЗЫ: Проверил:

Открыл СЕ, запустил Туториал, подключился к процессу Туториала, скопировал скрипт и вставил.

Вот таким образом мне удалось написать этот рабочий скрипт. Прикол - век живи - век учись. :-D

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Кстати, я добавил в скрипт AntonVitalievich еще дополнительное нажатие еще одной кнопки: тоже самое сравнение по адресу, и когда адрес меняется на 1 автонажатие кнопки del потом сразу home, когда адрес снова поменялся на 0 автонажатие end потом del, и работает так как надо. Даже потом поставил паузу между нажатиями этих кнопок. В Lua я добавил всего пару строчек с нажатием кнопок. А вот в твоем АА скрипте, мне кажется будет сложнее такое сделать, но я еще не смотрел. В Lua как-то попроще нажатие клавиш сделано.

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

В Lua как-то попроще нажатие клавиш сделано.

Я тебе сразу говорил, что на первый вопрос из твоего задания, будет проще сделать на LUA, 

а второй вопрос - проще на АА, так как заморозка это просто операнд MOV.

Кстати, я добавил в скрипт AntonVitalievich еще дополнительное нажатие еще одной кнопки: тоже самое сравнение по адресу, и когда адрес меняется на 1 автонажатие кнопки del потом сразу home, когда адрес снова поменялся на 0 автонажатие end потом del, и работает так как надо.

Razi, если ты это написал в ответ на мой пост # 67, то ты опять торопишься и прочитал невнимательно.

Причём здесь количество клавиш, в мой скрипт ты тоже можешь добавить сколько угодно клавиш.

 

Попробуй авто-нажать два раза подряд любую из этих клавиш, флаг-переключатель это не позволит.  

Ссылка на комментарий
Поделиться на другие сайты

Уточнял в сообщении #54, что нужно чтоб при заморозке значение могло переключаться на 72, 8, 104 и 40. То есть во время заморозки, разрешать переключаться в адресе 00A444E8 на 72, 8, 104, 40.

 

Если нужно такое условие, то как я думаю, можно попробовать использовать - инструкцию, записывающую эти значения в адрес 00A444E8, в качестве помощника.

 

Нужна инструкция. Выложи её сюда. Весь АА скрипт с ней.

Ссылка на комментарий
Поделиться на другие сайты

Выложи её сюда. Весь АА скрипт с ней.

AntonVitalievich, возьмите из этого сообщения,  все три скрипта на основе АА скрипта Razi.

А в этом сообщении окончательный скрипт.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

AntonVitalievich,  Готовый рабочий скрипт из сообщения 34: http://forum.gamehacklab.ru/topic/4323-kak-v-cheat-engine-proizvesti-avtomaticheskoe-nazhatie-kla/?p=32346

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

Razi, ты опять торопишься, не на то дал ссылку, ты дал на АА -скрипт, для авто-нажатия, а не для заморозки.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

АА скрипт на заморозку значит уже есть? Зачем еще делать. В нем если 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?

 

Простите, вновь забыл про тег.

Изменено пользователем NullAlex
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.