Comments 115
Спасибо, топик очень интересный!
А не проще было выловить запрос, который скорее всего шлет игра на сервер для записи рекордов, и подменить там значение? (Если есть сигнатура запроса, можно декомпилировать флешку и вытащить алгоритм подсчета.)
Но конечно очень похвально и круто, что Вы выбрали подходящий язык для подобной цели!
А не проще было выловить запрос, который скорее всего шлет игра на сервер для записи рекордов, и подменить там значение? (Если есть сигнатура запроса, можно декомпилировать флешку и вытащить алгоритм подсчета.)
Но конечно очень похвально и круто, что Вы выбрали подходящий язык для подобной цели!
-6
Всегда пожалуйста!
Вопрос изначально был не в том, чтобы получить много-много очков (там даже рейтинга публичного нету, только среду друзей), а в том, чтобы переложить функции игрока на компьютер. А дальше уже азарт игрока заставлял пытаться набрать больше. =)
Вопрос изначально был не в том, чтобы получить много-много очков (там даже рейтинга публичного нету, только среду друзей), а в том, чтобы переложить функции игрока на компьютер. А дальше уже азарт игрока заставлял пытаться набрать больше. =)
+8
Спасибо, крайне интересно.
0
«Использование ботов рассматривается большинством пользователей AutoIt как нечестная игра, и вам не следует ожидать значительной помощи от сообщества в их создании.» © Википедия
0
Ах да, я в свое время мелких ботов на nnCron писал :)
Но тут вроде все помощнее будет…
Но тут вроде все помощнее будет…
+1
На форуме русского сообщества AutoIt есть целый раздел посвященный бототоводам, где всегда можно обменяться ценной информацией. Правда в основном там содержатся или запросы на написание бота, или самореклама, но иногда попадаются и очень полезные статьи.
0
Огромное спасибо автору, я нашел чем занять себя в воскресенье… Сейчас буду писать на C#
+2
Посмотрел только 5 скрин и загорелся, алгоритмы не хочу смотреть… постараюсь сам сделать.
+1
>>Огромное спасибо автору, я нашел чем занять себя в воскресенье
Счастливый человек…
Счастливый человек…
+2
За годы фриланса выработал правило «НЕ РАБОТАЙ В ВОСКРЕСЕНЬЕ!!!»
+19
это скорее хобби получается чем работа. как раз в воскресенье самое время.
+2
и в субботу тоже не работай…
+1
Весьма полезно — для написания тестов приложений на флэше.
+7
Сто лет назад писал простешие скрипты, на заготовку дров/руды и первичную обработку в Ultima on-line.
+3
Я как-то делал бота для кликомании с помощью java.awt.Robot.
0
Браузерная игра
Почему AutoIt? Проще же взять Javascript и вызывать функции самой игры или эмулировать клики.
Почему AutoIt? Проще же взять Javascript и вызывать функции самой игры или эмулировать клики.
-5
Где бы поиграть в эту игрушку, не регистрируясь в фейсбуках и гуглоплюсах?
-1
Ругается, говорит, Api.Constants скрипта ему не хватает :)
0
А ещё WindowsConstants и Constants. Вот все необходимые файлы — zalil.ru/31585482
После этого нужно прописать путь к template.bmp, в DD_Habr.
Теперь следующая загвоздка, при запуске ошибка —
C:\Users\LostSenSS\Desktop\DiamondDash\ImageSearch.au3 (40): ==> Subscript used with non-Array variable.:
if $result[0]=«0» then return 0
if $result^ ERROR
Что с этим делать?
После этого нужно прописать путь к template.bmp, в DD_Habr.
Теперь следующая загвоздка, при запуске ошибка —
C:\Users\LostSenSS\Desktop\DiamondDash\ImageSearch.au3 (40): ==> Subscript used with non-Array variable.:
if $result[0]=«0» then return 0
if $result^ ERROR
Что с этим делать?
0
С этим я уже сам разобрался :) Вот сам на то же наткнулся, думаю.
0
Это ошибка DLL-ки ImageSearch. Возможно из за того что ее битность не совпадает с битностью системы. Сейчас выложу обе версии.
Еще есть вариант, что ее надо класть не в папку со скриптом, а в Windows(или любую другую прописанную в path)
Еще есть вариант, что ее надо класть не в папку со скриптом, а в Windows(или любую другую прописанную в path)
0
zalil.ru/31585625 — 32 бита
zalil.ru/31585630 — 64 бита
Разархивировать, и переименовать файл в ImageSearchDLL.dll
zalil.ru/31585630 — 64 бита
Разархивировать, и переименовать файл в ImageSearchDLL.dll
0
Нет, ошибка не исчезла :/
Пробовал класть и в папку со скриптом и в System32.
Пробовал класть и в папку со скриптом и в System32.
0
— попробуйте эту, мне помогло.
Кстати, у меня получилось набрать максимум ~ 400 000 очков, при большом числе эффектов картинка начинает тормозить, машина слабовата.
Кстати, у меня получилось набрать максимум ~ 400 000 очков, при большом числе эффектов картинка начинает тормозить, машина слабовата.
0
ImageSearchDLL.dll — парсер съел ссылку.
0
Да, такая проблема есть. Попробуйте увеличить задержку между кликами ($IStepSleep).
+1
Всё получилось.
Скачал с буржуйского форума отдельно ImageSearch.
Тут необходимые файлы и скомпилированный exe файл, если кому-то лень возиться :)
zalil.ru/upload/31585781
Скачал с буржуйского форума отдельно ImageSearch.
Тут необходимые файлы и скомпилированный exe файл, если кому-то лень возиться :)
zalil.ru/upload/31585781
0
Не получается. Процесс в памяти висит, но ни чего не делает. Пробовал с разными dll.
0
Открыл скирпт. Эдит — сэйв — и всё, заработало, очки набивает.
0
Посмотрите Sikuli.
Я ей пользуюсь для таких вещей.
Программируется на jython. Использует OpenCV для обработки экрана, в результате все очень быстро…
Да и вообще, удобная весчь…
Я ей пользуюсь для таких вещей.
Программируется на jython. Использует OpenCV для обработки экрана, в результате все очень быстро…
Да и вообще, удобная весчь…
+2
Посмотрел на демку на их сайте, где они автоматизируют ввод сетевых настроек в MacOS. Интересная штука, но не скажу, что финальный результат там быстро работал. Наоборот. Чё-то по целой секунде оно находит кнопки.
0
Вот сразу ссылка на «Showtime»: #5:09. До «it works» прошло около 25 сек :/ Это 4 клика и заполнение 3-ёх полей.
0
Кстати, обнаружил большой плюс Sikuli в том, что это как раз работает под Mac OS X.
0
Понравилась работа с контролами — находит нужное изображение на экране и и кликает.
0
Читеры )
+1
А просты школьники будут месяцы жизни тратить чтобы дойти до такого результата… )))
+1
Как насчёт бота играющего angry birds?
0
Итак, я запустил-таки скрипт, с увлечением наблюдал за его работой, и теперь хочу задать несколько вопросов. Возможно, если подумать над ними — может и получится преодолеть рубеж в 2 кк очков.
1 — периодически бот начинает затупливать в конце игры (последние секунд 20-15) и тыкать абы-как, куча ошибок, цепочки не составляет, рамочка не загорается. Хотя (при дальнейшем наблюдении выяснилось) в этом может быть виновата сама игра, т.к. после пяти раз за раунд загоревшейся рамочки — она попросту не активируется. Возможно — программное ограничение самой игрушки.
2 — бриллианты — отдельная тема, самый высокий кпд у них — в последние 15 секунд (если избавиться от первой проблемы — тупняк в конце игры. Ну и как только доска сверху начинает пустеть — бриллианты могут помочь с её наполнением. Может, стоит учесть это в их использовании и выявлять их положение на доске каждый раз, как делаем скриншот, и знать, что у нас есть брюлик, если доска полупустая?
3 — совсем брутальный вопрос по улучшению поведения бота: есть такая вещь, как тетрис-бот. Он анализирует следующие выпадающие блоки и выстраивает комбинации ещё до того, как блоки выпадут. Может имеет смысл снизить скорость скрипта, но заставить его делать клики, которые приведут к бОльшим комбинациям через 2-3 хода (т.е. заставить его при прочих равных делать ход, который приведёт к объединению цветового массива)? Хотя (учитывая поведение игрушки в конце партии (произвольная смена цвета кубиков на поле) — все усилия могут сойти на нет.
Что скажете?
1 — периодически бот начинает затупливать в конце игры (последние секунд 20-15) и тыкать абы-как, куча ошибок, цепочки не составляет, рамочка не загорается. Хотя (при дальнейшем наблюдении выяснилось) в этом может быть виновата сама игра, т.к. после пяти раз за раунд загоревшейся рамочки — она попросту не активируется. Возможно — программное ограничение самой игрушки.
2 — бриллианты — отдельная тема, самый высокий кпд у них — в последние 15 секунд (если избавиться от первой проблемы — тупняк в конце игры. Ну и как только доска сверху начинает пустеть — бриллианты могут помочь с её наполнением. Может, стоит учесть это в их использовании и выявлять их положение на доске каждый раз, как делаем скриншот, и знать, что у нас есть брюлик, если доска полупустая?
3 — совсем брутальный вопрос по улучшению поведения бота: есть такая вещь, как тетрис-бот. Он анализирует следующие выпадающие блоки и выстраивает комбинации ещё до того, как блоки выпадут. Может имеет смысл снизить скорость скрипта, но заставить его делать клики, которые приведут к бОльшим комбинациям через 2-3 хода (т.е. заставить его при прочих равных делать ход, который приведёт к объединению цветового массива)? Хотя (учитывая поведение игрушки в конце партии (произвольная смена цвета кубиков на поле) — все усилия могут сойти на нет.
Что скажете?
+2
Ну по порядку:
1 — начало или конец партии — не должно иметь значения для работы скрипта. Возможно начинает тупить из за снижения FPS. Насчет загораний рамки — ограничений не замечал, единственное ограничение которое приходится учитывать — на количество ошибок (или на процент ошибок, не знаю). Если часто ошибаться, то звук кликов становится монотонным, а рамка перестает загораться. Именно для того, чтобы этого не происходило добавлена задержка между кликами.
2 — алмазы вроде и сейчас неплохо определяются. У меня в конце минуты редко остается больше 1-2. Если у вас есть идея по эффективному выявлению алмазов при появлении — предлагайте, испробуем. =) Насчет того, чтобы кликать на них когда доска полупустая (а не когда только нашли)- пожалуй стоит попробовать, займусь этим.
3 — в начальных версиях скрипта были различные алгоритмы просчета на несколько ходов вперед. Но есть два фактора сводящие их эффективность на нет. Первый — спецэффекты и ошибки. ВТорой куда более важен. Если внимательно присмотреться к полю, то можно заметить, что довольно часто квадратики меняют свой цвет, чтобы составить новую область. Сделано это видимо для того, чтобы всегда было куда можно кликнуть. И такие смены, понятное дело, не дают нормально просчитать все.
Да и когда все взрывается мне кажется очков капает больше чем за большие комбинации с длинным просчетом.
Спасибо за замечания!
1 — начало или конец партии — не должно иметь значения для работы скрипта. Возможно начинает тупить из за снижения FPS. Насчет загораний рамки — ограничений не замечал, единственное ограничение которое приходится учитывать — на количество ошибок (или на процент ошибок, не знаю). Если часто ошибаться, то звук кликов становится монотонным, а рамка перестает загораться. Именно для того, чтобы этого не происходило добавлена задержка между кликами.
2 — алмазы вроде и сейчас неплохо определяются. У меня в конце минуты редко остается больше 1-2. Если у вас есть идея по эффективному выявлению алмазов при появлении — предлагайте, испробуем. =) Насчет того, чтобы кликать на них когда доска полупустая (а не когда только нашли)- пожалуй стоит попробовать, займусь этим.
3 — в начальных версиях скрипта были различные алгоритмы просчета на несколько ходов вперед. Но есть два фактора сводящие их эффективность на нет. Первый — спецэффекты и ошибки. ВТорой куда более важен. Если внимательно присмотреться к полю, то можно заметить, что довольно часто квадратики меняют свой цвет, чтобы составить новую область. Сделано это видимо для того, чтобы всегда было куда можно кликнуть. И такие смены, понятное дело, не дают нормально просчитать все.
Да и когда все взрывается мне кажется очков капает больше чем за большие комбинации с длинным просчетом.
Спасибо за замечания!
+1
писал подобное на delphi для mail.ru
1.5 секунды на сканирование цветов поля это сильно много.
в игре Филлер на меилру в текстураз кубиков применяется дизеринг, в итоге пришлось измерять цвета соотношением составляющих
например если R > G > B то это красный работало с дикой скоростью.
1.5 секунды на сканирование цветов поля это сильно много.
в игре Филлер на меилру в текстураз кубиков применяется дизеринг, в итоге пришлось измерять цвета соотношением составляющих
например если R > G > B то это красный работало с дикой скоростью.
0
Пробовал, работает хуже.
Со временем проблем нету, определение всех цветов занимает около 1/10 секунды, проблемы с неточностью определения…
Со временем проблем нету, определение всех цветов занимает около 1/10 секунды, проблемы с неточностью определения…
0
а блюрить и пороги?
0
А почему в этом блоге?
0
Мне не жалко, просто грустно, когда статьи по тематике блога набирают максимум +50, а читерный скрипт, не имеющий собственно к разработке игр никакого отношения, легко уходит за +100 :)
P.S. если на это глаза закрыть, статья хорошая, я плюсик поставил :)
P.S. если на это глаза закрыть, статья хорошая, я плюсик поставил :)
+1
Этот вопрос меня тоже интересовал, я сомневался что тут ему место. Но ничего лучше я не нашел, и поиск показал, что подобные посты лежат здесь.
0
UFO just landed and posted this here
Я ведь и не говорил, что это не интересно, даже наоборот, подчеркнул, что поставил плюс :)
Просто посетовал на то, что статьи по разработке игр не набирают так легко своих ста плюсиков :)
P.S. признаю, возможно я слишком категорично сказал «не имеющего никакого отношения», конечно разработчику игр нужно знать как работают читы или как пишутся кряки
Просто посетовал на то, что статьи по разработке игр не набирают так легко своих ста плюсиков :)
P.S. признаю, возможно я слишком категорично сказал «не имеющего никакого отношения», конечно разработчику игр нужно знать как работают читы или как пишутся кряки
0
со временем они дозревают до того, что им интересно еще и тестирование.
0
Автор не могли бы вы сравнить AutoIt и AutoHotKey, они очень сильно похожи, но хотелось бы узнать ваше мнение, я сколько ни пробовал AutoHotKey всегда прощще мне казался и удобнее AutoIt-а.
Может кто-то раскроет правду?
Может кто-то раскроет правду?
+1
Посмотрю на досуге, возможно следующую задачу на нем напишу, если будет материал, постараюсь оформить в статью.
0
UFO just landed and posted this here
Если вам не сложно, то немогли бы вы снять видео с экрана во время игры бота. Не хочется возиться сейчас с установкой AutoIt, но очень любопытно посмотреть как это когда набирают полтора ляма очков ))
0
В такого рода игрушках обычно дается гораздо больше очков, если уничтожается большое количество камней за раз.
Может есть смысл сделать алгоритм, который 90% времени будет собирать большие пятна правильно убирая мелкие, а в оставшееся время соберет с больших очки.
Может есть смысл сделать алгоритм, который 90% времени будет собирать большие пятна правильно убирая мелкие, а в оставшееся время соберет с больших очки.
0
Чуть выше отвечал на подобный вопрос.
К сожалению так сделать не получится (по факту большие комбинации возможны только когда сразу падают сверху), кроме того в игре могут произвольно меняться цвета некоторых уже упавших кубиков, да и за взрывы дают очень немало очков. С нынешней скоростью бота почти всегда половина поля пустует.
К сожалению так сделать не получится (по факту большие комбинации возможны только когда сразу падают сверху), кроме того в игре могут произвольно меняться цвета некоторых уже упавших кубиков, да и за взрывы дают очень немало очков. С нынешней скоростью бота почти всегда половина поля пустует.
0
Видео добавлено в топик.
+1
Ух. Это будет интересно. Поздновато правда. Но лучше поздно чем никогда. Вечером проштудирую. Спасибо!
0
Я не пытаюсь что-то доказать автору, но всё же вместо «безрекурсивного поиска в глубину» было бы проще и правильнее написать поиск в ширину, который «безрекурсивный» сам по себе.
0
Ну была бы вместо стека очередь, и что?
А для реализации ее на массиве нужно хранить 2 указателя (head и tail), вместо одного у стека. Кроме того места в памяти больше занимает. =) Мелочи это все конечно, но к вопросу о «проще».
А для реализации ее на массиве нужно хранить 2 указателя (head и tail), вместо одного у стека. Кроме того места в памяти больше занимает. =) Мелочи это все конечно, но к вопросу о «проще».
0
Просто это считается нехорошим тоном писать нерекурсивную реализацию рекурсивного алгоритма. Но ещё раз, без претензий.
-1
Ну скажем так, для оптимизации часто разворачивают рекурсию в стек, а DFS со стеком (а не с рекурсией) наверное более правильный чем рекурсивный, просто во втором случае писать чуть меньше.
0
Интересно, спасибо. Я сам вот играю и написал бота для более известной игры — Травиан. Автопостройка, увод войска в лес, Фарм по расписанию и много чего ещё. Всё на C# и запросах к серверу (без gui, онли консоль). Если кому интересно, велком в профиль карму поднимать xDD
+1
Хороший пример того, как из бессмысленного занятия типа игр для домохозяек и 12 летних детей может вырасти что-то весьма интересное и профессиональное. Спасибо вам.
0
Написал свой вариант бота, на Java + JNA (про awt.Robot только сейчас узнал), стараясь не подглядывать в текст статьи. Во многом идеи совпали, но есть и отличия (например, в принципе задержек и в выборе места для клика). Сомневаюсь, впрочем, что это стоит отдельной статьи.
Результат, полученный запуском скрипта время от времени спустя несколько дней:
Пришел к выводу, что вряд ли удастся набрать значительно больше подобным методом — все упирается в длительность анимаций в самой игре.
Результат, полученный запуском скрипта время от времени спустя несколько дней:
Пришел к выводу, что вряд ли удастся набрать значительно больше подобным методом — все упирается в длительность анимаций в самой игре.
+3
Интереснее решать более алгоритмические задачки, например взять игру play with friends. Вот там более широкое поле для воображения, но только вот из-за пошаговости будет тяжело отлаживать бота.
0
Sign up to leave a comment.
Написание макроса-бота для браузерной игры