|
Игровой бот Небеса: уникальная игра! |
|
|
dimоn |
10.2.2015, 17:53
|
Novice
Сообщений: 97
Регистрация: 24.10.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.079
Возраст: 27
|
Добрался, наконец-то, все никак руки не доходили... В общем, появилось немного свободного времени, задался вопросом написания бота, самого обычного, для поиска, выноса мобов и разбора... Пошарил поиск, видел несколько незаконченных тем, но решил создать новую, потому что работает немного по другой структуре. Хотелось бы выразить благодарность DarkMaster'у Все-таки, не каждый человек, будет сидеть на каком-то форуме, что бы помочь народу с написанием какой-то, нужной им, лабуды, с целью их умственного развития... Честно скажу, времени ушло много, но в основном это зависело от наличия свободного и в тот или иной момент, желания. Не обошлось и без блок-схемы. Только так смог собрать все посещающие голову мысли в единое целое. (IMG: http://clip2net.com/clip/m359722/2d2fd-clip-82kb.jpg) Итак, значит бот построен по следующей структуре: (IMG: http://clip2net.com/clip/m359722/3c33e-clip-25kb.jpg) Блок поиска и нападения - это все индивидуально, в зависимости от хар-к и направленности. Блок дропа, соответственно, от блока поиска, то есть от задач. Хотелось бы разобрать блок боя. Основными задачами были возможность самостоятельной безконтрольной игры, ну и, конечно же, не засветиться с ботом, то есть, к минимуму свести холостые и однотипные"тыки" ... Исходный код set #h workwindow set workwindow #h :boy while_not (1147, 456 72864) or (1154, 454 778406) while_not 840, 204 936748 wait 2000 if 1190, 474 2249471 goto boy_okonchen end_if end_while if 658, 214 16763649 if (731, 612 16777215 ) or ( 782, 612 16711665 ) if 731, 612 16777215 left 728, 615 wait 1000 + random (2500) set #x 841 + random (210) set #y 263 + random (200) left #x #y goto boy end_if if 782, 612 16711665 left 784, 613 wait 1000 + random (2500) set #x 841 + random (210) set #y 263 + random (200) left #x #y goto boy end_if else if_not (733, 607 15592941) and ( 787, 615 8928750) start_script 2 stop_script end_if end_if else if 989, 616 7484429 wait 1000 left 1007, 616 wait 1000 left 919, 644 wait 1000 else start_script 2 stop_script end_if end_if end_while :boy_okonchen If 1175, 455 92751 left 964, 516 wait 3500 left 788, 515 wait 1500 left 1000, 530 wait 1000 goto boy end_if
start_script 3 pause_script resume_script 0
stop_script На момент написания отдельных элементов стоял образ архангела, поэтому, чтобы не переделывать, в конечной версии осталось так же. Следующей задачей был алгоритм хода, на случай, если ни квадрата, ни креста нет. На самом деле, не придумал ничего проще, чем сходить по подсказке... Исходный код // (межстрочный интервал 10) set #h workwindow set workwindow #h
while_not #x1 > 0 set $l findimage (792, 210 1094, 517 (\image\стрелки\лево.bmp)%lv 2 20 1 5) if ($l > 0) set #x1 %lv[1 1] set #y1 %lv[1 2] set #x2 #x1 + 40 set #y2 #y1 end_if
set $v findimage (792, 210 1094, 517 (\image\стрелки\верх.bmp)%up 2 21 1 5) if ($v > 0) set #x1 %up[1 1] set #y1 %up[1 2] set #x2 #x1 set #y2 #y1 + 40 end_if if_not 840, 204 936748 goto end end_if end_while wait 1000 left #x1 #y1 wait 1000 + random (1500) left #x2 #y2 left #x2 #y2 wait 1500 :end start_script 1 stop_script
лево.bmp ( 3,33 килобайт )
Кол-во скачиваний: 8479
верх.bmp ( 2,27 килобайт )
Кол-во скачиваний: 8120Долго мучался со стрелками, их вращением и считыванием именно той, которой нужно. Так вроде работает. Скрипт_0 - поиск, нападение, 1 - бой, 2 - ход, 3 - дроп, разбор, с него уходим "resume_script 1" Народ, скрипт сырой, если появятся какие-то правки, замечания, изменения, не будьте единоличниками, выкладывайте. Так же, выкладываю все на безвозмездной основе, попытки продать, как бота - это, как минимум свинство и того не стоит. Что не понравилось, с сохранением у пилота, какая-то беда, и в настройках указал, сохранять при выходе: то, писал что-то, возьмет, не сохранит, то возьмет заменит чем-нибудь.. В общем беда. Так же не понравилось и добавило объема - в пилоте, почему то, нет ф-ции отрицания... т.е. есть if_not, while_not, но нет not_and, not_or и пр. а это дополнительные проверки... По крайней мере не нашел ни описания, к ним, ни синтаксиса.
Прикрепленные файлы
бой.txt ( 1,63 килобайт )
Кол-во скачиваний: 40786
ход.txt ( 697 байт )
Кол-во скачиваний: 6469
|
|
|
|
|
|
Ответов
dimоn |
25.5.2015, 21:46
|
Novice
Сообщений: 97
Регистрация: 24.10.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.079
Возраст: 27
|
Цитата(veiron @ 25.5.2015, 17:49) А зачем ждать подсказки игры и искать ход по стрелкам. В этой ТЕМЕ есть почти готовый скрипт. Его нужно или полностью доделать или взять кусок скрипта, прикрутить ифы и будет собирать все имеющиеся ходы, а ты уже сам выберешь что тебе нужно, черепа или ХП или другое. Почитай, пожалуйста тему сначала... Мне не нужны подсказки.. Он сам делает ходы. Мне нужна самостоятельная бесконтрольная, в то же время беспалевная игра, что бы, задал, на кого нападать и ушел... в то же время, что бы не засветиться с прогой... Цитата(DarkMaster @ 25.5.2015, 18:54) Ворквиндов - это номер окна. Это не процент совпадения, к точности тоже отношения не имеет. Когда вы нажимаете ctrl+a вы этим задаете именно workwindow. Поэтому совершенно не понятно, что он тут делает и почему изменяется. Это не нормально.
Я не знаю, может это версия клиента, может настройки, ворквиндов - он выдает результат работы команды. Опять же, писал, что бы оттестировать, загнал на цикл, вайл, четыре строчки printscreen 1 0 0 0 0 c:\client window.bmp set $v findimage (792, 210 1094, 517 (\verkh.bmp)%up (c:\client window.bmp) 20 1 5) set $l findimage (792, 210 1094, 517 (\levo.bmp)%lv (c:\client window.bmp) 21 1 5) set $g findimage (716, 156 920, 330 (\ход.bmp)%p (c:\client window.bmp) 90 1 5) и по логу смотрю, как они работают. После строки самой команды, он мне выдает результат ее работы.
|
|
|
|
veiron |
25.5.2015, 23:32
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(dimоn @ 25.5.2015, 21:46) Почитай, пожалуйста тему сначала... Мне не нужны подсказки.. Он сам делает ходы. Мне нужна самостоятельная бесконтрольная, в то же время беспалевная игра, что бы, задал, на кого нападать и ушел... в то же время, что бы не засветиться с прогой...
Да, я почитал тему. Вот у тебя выложен скрипт боя: Код if 989, 616 7484429 wait 1000 left 1007, 616 wait 1000 left 919, 644 wait 1000 else start_script 2 stop_script end_if
Клики в одну точку в этой игре это палево 100%, уже проверено не на одном акке. Вот ты пишешь что не нужны подсказки, а сам ход определяешь по стрелкам подсказки хода в игре. Это не палево, но полностью отсувствует выбор хода, то что тебе игра подсказала, то ты и нажимаешь. Тогда уже проще сделать бой с использованием вина и снега, а не выбором хода. И зачем такие бешенные задержки wait 1000 + random (2500) или wait 3500
|
|
|
|
dimоn |
26.5.2015, 3:40
|
Novice
Сообщений: 97
Регистрация: 24.10.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.079
Возраст: 27
|
Цитата(veiron @ 25.5.2015, 23:32) Да, я почитал тему. Вот у тебя выложен скрипт боя: Код if 989, 616 7484429 wait 1000 left 1007, 616 wait 1000 left 919, 644 wait 1000 else start_script 2 stop_script end_if
Клики в одну точку в этой игре это палево 100%, уже проверено не на одном акке. Ты понял, что это за клик и в каких случаях он кликает? Цитата Вот ты пишешь что не нужны подсказки, а сам ход определяешь по стрелкам подсказки хода в игре. Это не палево, но полностью отсувствует выбор хода, то что тебе игра подсказала, то ты и нажимаешь. Нет, тему, видимо, ты не почитал.. Призываю, еще раз, это сделать - да бы разобраться с назначением.. Цитата Тогда уже проще сделать бой с использованием вина и снега, а не выбором хода. В чем же тогда проблема? Где его можно посмотреть??? Цитата И зачем такие бешенные задержки wait 1000 + random (2500) или wait 3500 Цитата(dimоn @ 10.2.2015, 17:53) Народ, скрипт сырой, если появятся какие-то правки, замечания, изменения, не будьте единоличниками, выкладывайте. Сообщение отредактировал DarkMaster - 26.5.2015, 3:53
|
|
|
|
Сообщений в этой теме
dimоn Игровой бот Небеса: уникальная игра! 10.2.2015, 17:53 DarkMaster
это я так понимаю подразумевается отрицание услов... 10.2.2015, 18:09 dimоn
[code] !(3 > 4)
истинность второ... 10.2.2015, 18:27 dimоn Тишина, гробовая.. Навязывается вопрос, это вообще... 9.4.2015, 17:21 cirus
Может кому-то и пригодится когда-нибудь.
Точка я... 10.4.2015, 2:45 dimоn
Точка явно лишняя.
Почему? Что в ней не так? 10.4.2015, 11:09 dimоn
Почему? Что в ней не так?
А, я понял..
Нет, ... 10.4.2015, 11:30 DarkMaster
Пилот скачивают сотни тысяч раз. Сколько людей пр... 10.4.2015, 8:01 cirus Так смысл точки в условии в чём?
if $v >.... 10.4.2015, 12:03 dimоn Не знаю, куда написать, тему создавать, смысла, ос... 16.5.2015, 5:30 cirus
Нельзя. 16.5.2015, 11:35 dimоn Ок, а если сделать скрин и его стрельнуть два раза... 16.5.2015, 16:24 DarkMaster столько же + время на скрин. 16.5.2015, 16:30 dimоn Такой вопрос, на сколько и в какую сторону изменяе... 24.5.2015, 13:18 DarkMaster Откуда в коде два адреса? Откуда после массива адр... 24.5.2015, 13:58 dimоn Начал разбираться с командами, и в описании к find... 24.5.2015, 14:17 DarkMaster
Вы можете пояснить, как адрес в скобках может явл... 24.5.2015, 14:18 dimоn
Вы можете пояснить, как адрес в скобках может явл... 24.5.2015, 14:45 dimоn
Что именно? Вы хотите искать в изображении на вин... 24.5.2015, 16:25 DarkMaster
Исходя из синтаксиса там написано "handle... 24.5.2015, 16:26 dimоn Исходя из синтаксиса там написано "handle... 24.5.2015, 18:19 DarkMaster
Я цитирую кусок про принтскрин и пишу про него, в... 24.5.2015, 18:59 dimоn Ладно, спорить можно было бы бесконечно :duel: , н... 24.5.2015, 19:14 dimоn
Я цитирую кусок про принтскрин и пишу про него, в... 24.5.2015, 21:42 DarkMaster
Это не более чем схожие либо связанные по смыслу/... 24.5.2015, 22:10 dimоn На самом деле, тоже не удивлюсь, если это просто с... 24.5.2015, 22:39 dimоn Да и фиг бы с ними, с показателями, так, для общег... 24.5.2015, 22:50 DarkMaster В частности вы нашли три изображения "verkh... 24.5.2015, 23:00 dimоn
В частности вы нашли три изображения "verkh... 25.5.2015, 14:31 veiron А зачем ждать подсказки игры и искать ход по стрел... 25.5.2015, 17:49 WKnight А чего там вообще workwindow в логе делает? 25.5.2015, 11:03 DarkMaster
Ворквиндов - это номер окна. Это не процент совпа... 25.5.2015, 18:54 dimоn Я понят твою мысль, уж эти моменты, действительно,... 29.5.2015, 3:33 veiron
Но бой состоит не из одного хода.
У меня просто ... 29.5.2015, 10:20 dimоn
У меня просто статы позволяют обходиться с одним ... 30.5.2015, 14:17 dimоn Было дело, DarkMaster посоветовал проверить скрипт... 18.6.2015, 14:19 DarkMaster Я надеюсь возвращением к этой теме стал не бан? 18.6.2015, 15:30 dimоn Нет, по крайней мере у меня все норм.
Хотя, не у в... 19.6.2015, 0:36 guetajazz Тема близка и интересна))) Сам играю и часто польз... 28.6.2015, 21:40 dimоn
Было бы хорошо,если бы автор указывал,что именно... 29.6.2015, 19:21 dimоn
Использую пилот для арены,куча лишних тыков,клик... 29.6.2015, 21:59 DarkMaster Первое в чем косяки - это читаемость скрипта:
1) В... 28.6.2015, 22:40 guetajazz В общем- да! Я и не спорю. Сказал об этом сраз... 29.6.2015, 23:46 dimоn Основные команды, которые для этого могут подойти,... 30.6.2015, 0:17 DarkMaster
С какого перепугу? Это очень практично и очень эф... 30.6.2015, 3:50 dimоn Я, наверное, что-то не так понял..
Можно поподробн... 30.6.2015, 4:53 DarkMaster Например, нам необходимо кликнуть по предмету и вы... 30.6.2015, 5:08 veiron
left 1 1
while_not x y c // Пока не появится меню... 30.6.2015, 8:41 dimоn
А если в этот момент произошел разрыв с сервером,... 30.6.2015, 14:27 veiron
Значит while_not заменяется на while
Не вариант,... 30.6.2015, 18:05 cirus
Для этого в условие добавляется таймер. 30.6.2015, 10:59 veiron
Для этого в условие добавляется таймер.
while_no... 30.6.2015, 11:14 DarkMaster
И чем это отличается от wait'ов которые в сам... 30.6.2015, 18:33 veiron
То делается подпрограмма и в нее передается набор... 30.6.2015, 18:56 dimоn
И чем это отличается от wait'ов которые в сам... 1.7.2015, 9:58 DarkMaster Подпрограмма которая выполняет функцию ожидания и ... 30.6.2015, 20:16 DarkMaster
Т.е. у вас на 1 строку приходится 1-3 строки wait... 1.7.2015, 10:27 dimоn
Т.е. у вас на 1 строку приходится 1-3 строки wait... 1.7.2015, 13:27 DarkMaster
Вам виднее. Из того, что вы написали выше (размер... 1.7.2015, 14:55 dimоn в 4 раза он уменьшится, если использовать вариант ... 2.7.2015, 1:25 DarkMaster
В скрипте нет ни одной строки кроме кликов что ли... 2.7.2015, 7:50 dimоn
В скрипте нет ни одной строки кроме кликов что ли... 2.7.2015, 10:45 dimоn
// Примитивная подпрограмма на ожидание будет 5 с... 2.7.2015, 10:55 DarkMaster
Это уже не клик, а условие. Соответственно оно по... 2.7.2015, 11:01 dimоn
Это уже не клик, а условие. Соответственно оно п... 2.7.2015, 11:52 DarkMaster
Цепляюсь и цепляюсь оправданно. Потому, что ваши ... 2.7.2015, 12:07 dimоn
Кстати можно и вовсе создать подпрограмму-комбайн... 2.7.2015, 14:08 DarkMaster
Можно и так, но я бы просто задал некоторую точку... 2.7.2015, 14:40 sefi Прочитал данную дискуссию ... увидел, что автор де... 14.7.2015, 9:29 dimоn Ну да, понял не особо...
То есть, Вы хотите сказат... 14.7.2015, 13:01 DarkMaster
В этом есть смысл, но в плане скриптов и объемных... 14.7.2015, 19:39 Triniti Всем утро/день/вечер/другое (нужное подчеркнуть) :... 26.7.2015, 23:05 dimоn
Всем утро/день/вечер/[u]другое (нужное подчеркнут... 27.7.2015, 0:33 Triniti
А на лог возможно взглянуть? //к налоговой инспек... 27.7.2015, 0:50 dimоn
Лог поиска на 8.1 здесь
Лог поиска на (виртуалке)... 27.7.2015, 1:36 Triniti
Разрешение экрана на 8-ке?
У тебя стоит поиск на... 27.7.2015, 1:48 dimоn
И там (виртуалка) и тут 1920х1080. Поиск же идёт ... 27.7.2015, 1:59 cirus
Причин может быть множество. Зависит от того в ка... 27.7.2015, 0:10 Triniti
Причин может быть множество. Зависит от того в ка... 27.7.2015, 0:25 DarkMaster
Выкинуть к чертям собачьим ВСЕ goto, кроме зацикл... 27.7.2015, 0:25 DarkMaster А зачем вы привязываетесь к конейнеру? Это фактиче... 27.7.2015, 0:29 Triniti
А зачем вы привязываетесь к конейнеру?
Вы уже гд... 27.7.2015, 0:35 DarkMaster у вас версия браузера которой пара лет? Вообще вы ... 27.7.2015, 0:48 DarkMaster
опечатался, исправил. frompoint. Справка должна с... 27.7.2015, 0:59 Triniti
опечатался, исправил. frompoint. Справка должна с... 27.7.2015, 1:06 DarkMaster Ну это олдстайл. Возможно хром отказался от идеи и... 27.7.2015, 1:26 Triniti
Вообще даже если все это действительно так, то те... 27.7.2015, 1:34 DarkMaster
Если работает по моему скрипту, то с поинтом разв... 27.7.2015, 1:40 DarkMaster
Процессы пофиг. Главное хендлы. Хэндл в вашем слу... 27.7.2015, 1:56 Triniti
Процессы пофиг. Главное хендлы. Хэндл в вашем слу... 27.7.2015, 1:59 dimоn
В процессе флэша 200 600 - избыточны, всё что нуж... 27.7.2015, 2:12 dimоn Если поставишь вот эту галочку
http://c2n.me/iXrFa... 27.7.2015, 2:05 DarkMaster
Остался не отвеченным вопрос cirus'a, о том в... 27.7.2015, 2:08 Triniti
Остался не отвеченным вопрос cirus'a, о том в... 27.7.2015, 14:31 dimоn
а у меня правый нижний угол (избранные) это 805,... 27.7.2015, 15:24 dimоn И еще...
http://c2n.me/3lh8Fqv.png 27.7.2015, 2:30
2 страниц 1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|