По скрипту "Эмуляция нажатия клавиши": Ты написал в ЛС: Нет. Не ко всем играм подойдёт.То что написал я и AntonVitalievich (по сути мы написали одно и тоже на разных ЯП), это частный случай (хорошо, что он подошёл к твоей игре).Объясню. Мы ввели виртуальный (не игровой) флаг-переключатель. У меня это flagUp, у AntonVitalievich это forkeys.Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот).В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут.Для того, чтобы написать скрипты для всех игр (и конечно это возможно), нужна ещё дополнительная информация от тебя:т.е. какое событие в игре происходит при нажатии клавиши Home и какое при нажатии клавиши End, при чём не обязательно знать точные значения, а нужны просто инструкции на запись на это событие при нажатии соответствующей клавиши и вот по изменению адреса в этой инструкции мы можем написать именно универсальный скрипт, который будет подходить ко всем играм. PS: написанное не означает, что нужно прямо сейчас писать такие скрипты (можно сделать потом для других игр). Конечно покажи. Интересно. 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 Если ИИ написан хорошим программистом специально, то не один игрок его не победит. А так это уже отход от темы. Тема была про ограничения наших скриптов.