Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: johnix on September 05, 2013, 09:38:23 PM

Title: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 05, 2013, 09:38:23 PM
Всем привет!

Наверное ни для кого не секрет, что успех clickermann'a больше частью затрагивает онлайн игры, в частности браузерные. И если кто в теме, то тот прекрасно понимает почему, каждая игра основана по принципу, сиди целыми днями и кликай на пиксели, и будешь ты самым сильным, могущественным, богатым и т.д..
Ну и напоследок, даже самый последний ценитель этого "хардкора" поймет меня так, как никто другой, потому что все эти рутинные движения настолько надоедают, что особого то удовольствия от игры совсем и не получаешь, как следовало бы ожидать.
И вот тут то приходит на помощь нам замечательный эмулятор всех этих лишних и ненужных действий clickermann.

Поначалу я играл, просто играл , потому что не знал и еще не прочувствовал все "прелести" этой игры(mycultures online - далее просто culture).  Поэтому просто получал удовольствие и только много позже понял, для чего все это. Для вытягивания денег, дада и ничего в этом удивительного нет. Потому что если хочешь быть, как сказано выше, мегамогущественным всея и всего, плати. Ну а простым смертным, вроде меня, остается лишь клацать кнопкой мыши по этим цветным квадратикам, дабы приблизиться, хоть немного к элите. И все бы ничего, но это же так утомительно, и самое главное, отнимает уйму времени, которое дороже всего!

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

Для начала я сделал совсем маленький код, который дал возможность не сидеть у экрана по 6 часов в день, и делать 5 кликов, а пойти и почитать iptables, например. Возможности этого решения будут показаны ниже, на скриншотах.

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

[spoiler=Экскурс в суть дела]В этой игре я уже около полутора лет, с перерывами. Пришел на нее из травиана, трава игра конечно очень затягивающая, но отнимающая просто все твое время свободное и не свободное, к тому же она временная, и вся соль в том чтобы как можно быстрее успеть все сделать за выделенное время и в конце раунда(игры) все твои достижения теряются. Поэтому решил я уйти от всех этих бессонных ночей к размеренной и спокойной жизни, где от тебя не требуется следить за количеством пропитания, дабы войска твои не подохли от голода. Ну вот опять отвлекся, так вот culture игра многое мне напоминает из клиентской MMMORPG World of Warcraft а так как я очень большой поклонник творениям близардов, то меня это очень заинтересовало. Здесь не нужно пропадать и окунаться в нее с головой так, чтобы добиться каких-то успехов. Он придет к тебе и так, со временем, но чтобы добиться его, на это нужно потратить, ну по крайней мере года 2-2.5. И понятное дело ежедневное присутствие, небольшое 1.5 часа в день на один из 4-х серверов, который дают в сумме уже 6. А это уже много. А если хочешь лучшие достижения, которые дают бонусы. Можно на это тратить и все дни напролет. Так вот. Игра основана на героях. Вы отправляете их в приключения(квесты) где по их прохождению вы получаете деньги либо же ресурсы, опыт, который повышает уровень ваших героев и вещи(шмот, лут). Не правда ли похожая система в ВоВе? Так же как и в онлайн РПГ, присутствуют классы героев их 3, берсеркер, лучник, воин. Разновидности оружия и одежды для каждого разные. Существуют подземелья, где есть возможность получить самые настоящие трофеи, сетовые вещи, который в полных комплектах дают поистине могущественные бонусы. В купе с этим присутствуют альянсы, но, к сожалению, клановые прохождения инстансов не предусмотрены, возможно это невозможно или еще не ввели разработчики игры. Все плюшки вроде пвп игрок-игрок или альянс-альянс так же есть. В общем очень много параллелей с "той самой" игрой. Описывать конечно можно бесконечно долго но суть я из этого я вам так и не рассказал. В игре присутствую полоска приключений, которая измеряется во времени, то есть обычные минуты. По идее вся движуха то и заключена в их количестве, у кого их больше, тот дольше и сможет плавать, получать бесценный ресурсы, трофеи и опыт для главного героя. Выделяется их небольшое количество 100 минут в день, плюс возможность докупая дополнительную жажду(так ее величают в игре) за руны, которые покупаются за самые что ни наесть  реальные деньги, плавать дольше, тем самым увеличивать свои превосходства над другими. Разработчики игры, видимо, вполне такие щедрые люди, и раз в одну или две недели, делают эту жажду нескончаемой! То есть плавать можно хоть сколько, а ее хватит на все время, которое ее выделяется. Только дается она на сутки. Вот и считай, не просидишь же за компом целый день, чтобы делать 4 действия, так я и пришел к кликерману.  Вроде бы небольшой экскурс в суть я сделал, теперь можно и вернуться к самому боту.[/spoiler]

В самом начале пути, для использования жажды по максимум(все пояснения присутствуюв в "Экскурс в суть дела") был написан тот самый первый кусочек скрипта, который делал те простые 3 действия

Code: (clickermann) [Select]
LCLICK(1232,954) // пропустить
WAITMS(2000)
LCLICK(810,575) // "ОК" взять вещи
WAITMS(2300)
LCLICK(336,751) // кнопка отправляемся

[spoiler=Пример вы можете наблюдать на скриншотах:]

(http://s5.hostingkartinok.com/uploads/thumbs/2013/09/c55b2b195efebe9b96a9540ef0801b86.png) (http://hostingkartinok.com/show-image.php?id=c55b2b195efebe9b96a9540ef0801b86) (http://s3.hostingkartinok.com/uploads/thumbs/2013/09/922cb017887b912c5287a57b32c29c56.png) (http://hostingkartinok.com/show-image.php?id=922cb017887b912c5287a57b32c29c56) (http://s3.hostingkartinok.com/uploads/thumbs/2013/09/b9418087f54da1e40971d9158ea27d6d.png) (http://hostingkartinok.com/show-image.php?id=b9418087f54da1e40971d9158ea27d6d) (http://s5.hostingkartinok.com/uploads/thumbs/2013/09/88a9d0d3bf784d4861ef1c50212540d0.png) (http://hostingkartinok.com/show-image.php?id=88a9d0d3bf784d4861ef1c50212540d0)[/spoiler]

Позже я добавил проверку, на предмет жив и здоров ли герой, потому что выяснилось, что мог и не вернуться из приключения.
Code: (clickermann) [Select]
LCLICK(1232,954) // пропустить
WAITMS(2000)
LCLICK(810,575) // "ОК" взять вещи
WAITMS(2300)
LCLICK(481,741) // если умер(возможность плавать еще )
WAITMS(100)
LCLICK(419,766) // тоже самое
WAITMS(500)
LCLICK(336,751) // кнопка отправляемся
[spoiler=о чем свидетельствовала картинка](http://s6.hostingkartinok.com/uploads/thumbs/2013/09/d5d8fc3af0a25924eb3bf893b0658066.png) (http://hostingkartinok.com/show-image.php?id=d5d8fc3af0a25924eb3bf893b0658066)[/spoiler]
[spoiler=и дальше все шло по маслу](http://s5.hostingkartinok.com/uploads/thumbs/2013/09/c55b2b195efebe9b96a9540ef0801b86.png) (http://hostingkartinok.com/show-image.php?id=c55b2b195efebe9b96a9540ef0801b86) (http://s3.hostingkartinok.com/uploads/thumbs/2013/09/922cb017887b912c5287a57b32c29c56.png) (http://hostingkartinok.com/show-image.php?id=922cb017887b912c5287a57b32c29c56) (http://s3.hostingkartinok.com/uploads/thumbs/2013/09/b9418087f54da1e40971d9158ea27d6d.png) (http://hostingkartinok.com/show-image.php?id=b9418087f54da1e40971d9158ea27d6d) (http://s6.hostingkartinok.com/uploads/thumbs/2013/09/d5d8fc3af0a25924eb3bf893b0658066.png) (http://hostingkartinok.com/show-image.php?id=d5d8fc3af0a25924eb3bf893b0658066) (http://s5.hostingkartinok.com/uploads/thumbs/2013/09/88a9d0d3bf784d4861ef1c50212540d0.png) (http://hostingkartinok.com/show-image.php?id=88a9d0d3bf784d4861ef1c50212540d0)[/spoiler]

Это конечно все замечательно, герой плавает сам, и следить за эти не нужно, но до этого интерфейса еще нужно дайти самому и вручную, а имея под рукой такой инструмент, естественно хочется большего, и просто запустив скрипт, чтобы он сделал все за тебя сам, прямо как в том мультике про приключения про хомяка Хому :)

Поэтому я и пришел сюда, к вам, знатокам за советами. Задачи которые я хотел бы решить:

• Возможность логиниться(ввод логина и пароля в форму заполнения)
• Прохождение лотереи Бьярни (при заходе на один из 4-х серверов пройти лотерею Бьярни)
• Закрывать спам-сообщения(различные конкурсы, призы, покупки рун, в общем любого вида сообщения, блокирующие вохможность использования кликера по инструкции дальше)
Отправлять героя в приключения
Перезапуск игры при сбоях(различные ухищрения разработчиков от таких программ как кликерман, чтобы блокировать возможность их использования)
• Продавать вещи(продавать вещи которые даются в обычных приключениях, сделать эту функцию включаемой)
Возвращать героя к работе(после окончании жажды, отправлять героя добывать ресурсы)
• Удалять новые сообщения и отчеты о нападениях
• Проходить PvP-поединки
• Чтобы герой не простаивал
• Склады( следить чтобы не переполнялись склады)
• Печати(покупка печатей для возможности проходить подземелья)
• Нажатие молнии
• Подземелья(возможность проходить подземелья)
• Тур Бьярни(покупка тура , по окончании его действия)
• Переход между серверами(Казань, Москва,Тагил,Новгород)
• Делать все вышеуказанные действия на всех серверах(желательно одновременно когда действует жажда)
Привязка к окну(чтобы работало это все в фоновом режиме)

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

Теперь для более детального рассмотрения вопроса, буду предоставлять всю информацию со скриншотами, по каждому из пунктов. Итак начнем c тех этапов, который я выделил, как важные:

Отправка героя в приключения
Допустим я уже залогинился, выбрал один из 4-х миров. И перед мной такая картина, моя деревня:

(http://s6.hostingkartinok.com/uploads/images/2013/09/13ade51523630e55a4b5c56f921f23f4.bmp) (http://hostingkartinok.com)

Для того чтобы его отправить мне необходимо сделать последовательность
1) Нажать на компас(верхний правый угол) (http://s5.hostingkartinok.com/uploads/images/2013/09/ef94362197830a778652c281058a06c3.bmp) (http://hostingkartinok.com)
2) Выбрать локацию(допустим Амстердам) (http://s5.hostingkartinok.com/uploads/images/2013/09/f4dff758915776bac0c8caf38c947377.bmp) (http://hostingkartinok.com)
2) Выбрать тип приключения(либо это случайный квест, восклицательный знак, либо это сюжетные задания, свиток) (http://s3.hostingkartinok.com/uploads/images/2013/09/6bd5adfb8b56e8f3441e4fce0a7593ba.bmp) (http://hostingkartinok.com)
3) Перетащить иконку героя в один из 3 слотов, которого хотим отправить и нажать на кнопку "Отправляемся" (http://s3.hostingkartinok.com/uploads/images/2013/09/6e8d5ce7fed8c8451fecc3c04b0a6cc1.bmp) (http://hostingkartinok.com)


Все по сути, с этого момента, можно делать цикл тех 3 кликов, которые были у меня с самого начала.  Но уже на этапе выбора типа приключения у меня происходит загвоздка, к примеру если я создаю поисковую картинку для функции if_picture_in в амстердтаме, то уже в другой локации, она может не найтись, а может и найтись, размер я делаю 5х5 пикселей, с чем это связано, есть догадки, но как обойти такую ситуацию?

Конечно если делать под себя, можно сделать все в ручную, но нетрудно будет догадаться, что код получеться очень большим, и об автоматизме не будет идти и речи. Поэтому и спрашиваю, как можно это сделать?

Пока что все, позже опишу другие пункты, которые вызывают у меня трудности, по мере решения поступления проблем, буду выбираться на форум, Надеюсь на вашу поддержку!
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 06, 2013, 09:16:06 AM
к примеру если я создаю поисковую картинку для функции if_picture_in в амстердтаме, то уже в другой локации, она может не найтись, а может и найтись, размер я делаю 5х5 пикселей, с чем это связано, есть догадки, но как обойти такую ситуацию?
Может неправильно делаешь картинки? Все твои выложенные скрины зачем в BMP? Ты из них нарезал картинки для поиска? Спрашиваю, потому что они пережаты из JPEG.
По  if_picture_in и другим похожим, потренеруйся сначала на рабочем столе не нужно пока лезть в игру. Когда будешь уверен, что всё делаешь правильно, тогда разбирайся с игрой. Может необходимо применить процент совпадения или COLORMODE? а может и то и другое сразу.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 06, 2013, 09:25:21 AM
к примеру если я создаю поисковую картинку для функции if_picture_in в амстердтаме, то уже в другой локации, она может не найтись, а может и найтись, размер я делаю 5х5 пикселей, с чем это связано, есть догадки, но как обойти такую ситуацию?
Может неправильно делаешь картинки? Все твои выложенные скрины зачем в BMP? Ты из них нарезал картинки для поиска? Спрашиваю, потому что они пережаты из JPEG.
Эти скрины я делал через кликер
Code: (clickermann) [Select]
getscreen
screenshot
halt
Для создания картинки поиска, делаю так: PrtScn -> Paint -> ctrl+v -> увеличиваю нужный мне участок -> вырезаю нужный мне участок необходомиго размера -> создаю новый документ -> подгоняю размер холста под вырезанные пиксели -> save "testpicture.bpm"

Повторюсь, созднанная картинка поиска на том скриншоте, где я создавал, жмет отлично, на следующей локации, к примеру Лондон, он может найти свиток\восклицательный знак, а может и не найти. В каком то мануале видел что есть  "упрощение графики" через кликер пробовал смотреть, и на самом деле, этот участок, где беруться квесты, рисунки вослкицательного знака\свитка приобретают чуть другие формы, я так думаю, что это как защита от таких ботов, незаметная человеческому глазу. Вот как ее обойти...
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 06, 2013, 10:44:45 AM
Меня ввела в заблуждение картинка выбора задания. Увеличил, она вся в квадратах... На панель и не глянул. Панель отрисовывается игрой, а картинка тупо вставлен статичный JPEG. Тогда всё нормально.

Для начала задай процент совпадения картинки не 100%. Пробуй У меня чаще всего прокатывает 80-85%
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "somefile.bmp",-1,85)

При вырезании своего кусочка, старайся вырезать внутри накладываемого элемента (восклицательного знака), чтобы не попадали крайние сглаженные пиксели. Ну или чтобы их было минимум.

"...я так думаю, что это как защита от таких ботов..."  - чаще всего это распи...ство художников. Сталкивался неоднократно. Например нарисуют картинку 100х100 (твой знак например) так удобней рисовать, а используют в игре 60х60. Вот берут и пережимают. Вроде всё нормально.  Через пол года нужно добавить локацию. Искать картинку готовую лень, размеров тоже можно не помнить. Берут исходник 100х100 и пережимают в 65х65... вроде такой...
Для нас проблема, более 50% пикселов изменили цвет. Процентом тут уже не отделаешься, а то будет кликать куда не попадя. В таких случаях нужно Использовать COLORMODE+% или искать 2+ картинки.
Code: (clickermann) [Select]
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "image_1.bmp")
   //нашёл 1
ELSE
   IF_PICTURE_IN (0,0,$_xmax,$_ymax, "image_2.bmp")
      //нашёл 2
   ELSE
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "image_3.bmp")
         //нашёл 3
      ELSE
         // не нашёл ни одного варианта
      END_IF
   END_IF
END_IF
Иногда это быстрей чем подобрать COLORMODE.

Бывает картинка загнана в Флэш уже 100х100, но при выводе пережимает под 60х60, но он делает это всегда по разному в зависимости от места. Сместилось всплывающее окно на 0,5 пиксела вправо или вправо-вверх, рендерится по другому. За это вообще руки бы поотрывать, мне как-то раз одно приложение мозги попарило этим. Какого чёрта не сдвигать на целое число пикселов. Возьми же ты округли вычисленные координаты отбросив дробную часть...
Ладно с этим.

Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 06, 2013, 12:12:51 PM
Благодарю, попробую с процентом попадания через if_picture_in пытался до этого, но видимо неправильно составил надпись, после чего поиск вовсе перестал происходить, как протестирую, отпишусь о результатах.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 10, 2013, 09:46:43 AM
В общем с погрешностью в 85% для "восклицательного знака" не помогло, даже под 4% не всегда кликает. А уже тем более если локация схожа с картинкой-донором, то начинает кликать туда, куда не нужно. По colormode не совсем понял, читал инструкции, не разобрался, что делать, помогите?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 10, 2013, 10:23:49 AM
Выложи скрины выбора типа приключения с нескольких локаций (для сравнения).
Если даже на одной локации она бывает в разных местах, нужно хоть пару вариантов.
Надеюсь картинка не анимирована?
А также выложи свою подготовленную картинку. Ещё выложи кусок кода, которым ты ищешь. Может до поиска и дело не всегда доходит.

Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 10, 2013, 10:54:40 AM
Сделал, все что просили. Все лежит   тут  (http://ftp://2.93.224.1)
Картинка-донор, была сделана с локации Grenlandia. Эта картинка ищется еще в двух других локациях (trondheim, dublin), без применения процента совпадения. Можете убедиться в этом сами. Сделал скрины локаций, в остальных не ищет совсем, даже с применением сжатия под 5 процентов...
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 10, 2013, 10:59:52 AM
Как сделать такой FTP?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 10, 2013, 11:04:32 AM
Как сделать такой FTP?
Обычный пакет сервера фтп vsftpd на линуксе (:
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 10, 2013, 11:42:26 AM
Вот вроде теперь находит "!" стабильно.
По крайней мере на твоих скриншотах...
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 10, 2013, 11:46:34 AM
Как сделать такой FTP?
Обычный пакет сервера фтп vsftpd на линуксе (:

 :o
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 10, 2013, 12:03:21 PM
Андрей опередил. Там восклицательный знак рендерится на 0,5 пиксела сдвинутым по диагонали, соответственно все цвета "плывут". Как я и говорил. В этом сложном случае только колормод+%.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 10, 2013, 12:24:16 PM
И правда, работает! Чтобы создать картинку-донора , как создавать скриншот в таком случае?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 10, 2013, 12:43:56 PM
И правда, работает! Чтобы создать картинку-донора , как создавать скриншот в таком случае?
Самим кликером:
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5,0,0,$_xmax,$_ymax)
SCREENSHOT
HALT
5- нужный тебе режим коррекции.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 01:07:14 PM
Не могу понять в чем проблема. Прошлое решение удачно работает на моем домашнем компьютере. Там использую WinXP Pro FireFox (last update) 4.7 se clickermann и все находит.
На другом компьютере все тоже самое, за исключением винды, стоит сборка, типа зверьсд. И не находит по коду
Даже когда я меняю процент совпадения, то при написании сообщения FIND! он не передвигает стрелку к нужной мне картинке...
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\bigquestcm.bmp",-1,62)
   MOVE($_return1, $_return2)
   HINTPOPUP("FIND!")
Else
   HINTPOPUP("Не нашел")
END_IF

HALT

Влияет ли на это присутствия в системе еще одной версии кликера 4.5 ?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 11, 2013, 01:25:43 PM
4.5 не влияет, если только скрипт не запускаешь в нём.
Непонятно о чём речь, что за "FIND" ? Где он? Это картинка в браузерной игре или это текст в другом месте. Покажи пример.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 02:04:24 PM
find он пишет если нашел картинку, что-то вроде дополнительной проверки, а картинка сделана на подобие восклицательного знака, тоже брать квест, но свитком, в началетемы есть скриншот. Создавал как и говорили через колормод, но на моем компе все находит отлично, я бы сказал даже постоянно. А на другом не хочет искать и все...
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 11, 2013, 02:09:56 PM
Проверь в каком кликере запускаешь. Может не 4.7 SE
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 02:12:50 PM
Проверь в каком кликере запускаешь. Может не 4.7 SE
В том то и дело, что все правильно запускаю, это исключено!
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 11, 2013, 02:40:09 PM
Вот этот твой скрипт выдаёт в трее FIND но мышь не передвигает?
Может передвигает, но не туда? потому что находит не там?

Это ВЕСЬ скрипт? или это кусок из большого? Если из большого... в $_return1, $_return2 ничего не писал?

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\bigquestcm.bmp",-1,62)
  MOVE($_return1, $_return2)
    LOGWRITE("Найден в координатах X=", $_return1, ", Y=", $_return2)
  wait(100)
Else
  HINTPOPUP("Не нашел")
END_IF
HALT

Какие значения получились в логе?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 03:01:48 PM
Да, выдает FIND! но мышь не передвигает, совсем никуда.

Code: (clickermann) [Select]
    GETSCREEN
    COLORMODE(5)
    IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\bigquestcm.bmp",-1,62)
     MOVE($_return1, $_return2)
       LOGWRITE("Найден в координатах X=", $_return1, ", Y=", $_return2)
     wait(100)
    Else
     HINTPOPUP("Не нашел")
    END_IF
    HALT

Координаты находит, но мышь стоит на месте
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Vint on September 11, 2013, 03:08:49 PM
Нужно проверять, не блокирует ли кликер антивирус.
Случайно не включена привязка к окну?
Попробуй в другом браузере. Попробуй на рабочем столе с другой картинкой.
Включи запись движения мыши в настройках и просто запиши движения, потом попробуй воспроизвести.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 03:40:51 PM
Что то было в антивире, отключил, попробовал выполнить скрипт, не двигает мышь.
Привязка к окну не включена.
В другом браузере аналогично.
Запись включил, попробовал воспроизвести, мышь стоит на месте
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 09:28:29 PM
Появился вопрос. Допустим мне нужно выполнить действие если оно удовлетворяет двум условиям, существую две картинки, это возможно?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 11, 2013, 09:45:30 PM
то есть у тебя кликер перестал работать а ты уже 2е картинки хочешь найти? Перезагрузи комп.

Функции можно вкладывать друг в друга.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\1.bmp",-1,62) // если эта картинка найдена
   IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\2.bmp",-1,62) // и если эта тоже
      MOVE($_return1, $_return2) // то двигаем мышь на последнюю картинку
      LOGWRITE("Найден в координатах X=", $_return1, ", Y=", $_return2)
      wait(100)
   Else
      HINTPOPUP("Не нашел")
   END_IF
END_IF
HALT

Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 11, 2013, 09:49:39 PM
то есть у тебя кликер перестал работать а ты уже 2е картинки хочешь найти? Перезагрузи комп.
Нет, кликер у меня на моем, компьютере работает. А на другом почему то не хочет. Вот я и спрашваю, в чем загвоздка может быть
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 12, 2013, 12:02:09 PM
Проблема неработоспособности кликера на другом компе решилась. Перезагрузка и вправду творит чудеса...
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 13, 2013, 03:38:25 PM
ПОявился вопрос, можно ли реализовать счетчик  по найденым изображениям. К примеру если изображение будет найдено, то это надо будет зафиксировать. И по этой же теме еще вопрос, можно ли реализовать, что если изображение будет найдено более 2-х раз, выполнить какое-либо действие?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 13, 2013, 04:13:38 PM
Ну конечно! для этого есть переменные.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
   INC($check_image,1)
END_IF
WAIT(1)

IF($check_image = 1)
   LOGWRITE ("Картинка найдена 1 раз")
END_IF

IF($check_image > 2)
   LOGWRITE ("Картинка найдена больше 2х раз")
   HALT
END_IF
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 13, 2013, 10:16:22 PM
Как мне научиться так писать код? Кстати с праздником!
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 17, 2013, 12:30:37 AM
Начинаю вникать, и вылезают непонятные вещи, к примеру написанный код удаления отчетов, работает если я нажимаю зеленую кнопку пуска скрипта, при нажатии ALT+A. Скрипт картинку находит на экарне, но действия дальше не делает, как будто окно с приложением не активно, в чем проблема?

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\prishlosoobsheniefuul24bit.bmp")
   MOVE($_return1+130, $_return2-40)
   wait(3)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (913,213,1016,238, "bmp\zakritotchet2bit.bmp",-1,45)
      LCLICK($_return1, $_return2)
     
   END_IF
Else
   HINTPOPUP("Ñîîáùåíèé íåò")
END_IF
MOVE($_xmax,$_ymax)
wait(2)

GETSCREEN
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\otchetosragenii24bit.bmp")
   MOVE($_return1+50, $_return2-40)
   wait(3)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (913,213,1016,238, "bmp\zakritotchet2bit.bmp",-1,30)
      LCLICK($_return1, $_return2)
     
   END_IF
Else
   HINTPOPUP("Îò÷åòîâ íåò")
END_IF
Else
HINTPOPUP("Íè÷åãî íå ïðèøëî")


HALT


P.S. У меня в браузере комментарии скрипта абракадаброй показываются, как исправить?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 17, 2013, 01:22:20 AM
Лишний Else в конце

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\prishlosoobsheniefuul24bit.bmp")
   MOVE($_return1+130, $_return2-40)
   wait(3)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (913,213,1016,238, "bmp\zakritotchet2bit.bmp",-1,45)
      LCLICK($_return1, $_return2)
     
   END_IF
Else
   HINTPOPUP("Сообщений нет")
END_IF
MOVE($_xmax,$_ymax)
wait(2)

GETSCREEN
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\otchetosragenii24bit.bmp")
   MOVE($_return1+50, $_return2-40)
   wait(3)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (913,213,1016,238, "bmp\zakritotchet2bit.bmp",-1,30)
      LCLICK($_return1, $_return2)
     
   END_IF
Else
   HINTPOPUP("Отчетов нет")
END_IF

HINTPOPUP("Ничего не пришло")

HALT

При нажатии кнопки Alt происходит потеря фокуса, нужно предварительно кликнуть по игре (можно прописать в скрипте) чтобы фокус восстановился.

Исправить кодировку помогает изменение вот этих параметров в ключе CodePage
Тут имеется ввиду 3 параметра
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
Сделай бекап ключа, исправь и перезагрузи комп.


Code: [Select]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1253.nls"
"1254"="c_1254.nls"
"1255"="c_1255.nls"
"1256"="c_1256.nls"
"1257"="c_1257.nls"
"1258"="c_1258.nls"
"1361"="c_1361.nls"
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 17, 2013, 12:59:30 PM
Изменение реестра не помогло, заметил что в телефонном браузере та же фигня, но когда вы пишите мой код, он отображает русские символы, что за прикол?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 17, 2013, 01:19:39 PM
Это потому что я декодировал твой текст.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on September 17, 2013, 01:25:00 PM
Это потому что я декодировал твой текст.
Как?
Проверил, в новом сообщении русские символы отображает правильно, спасибо!
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on September 17, 2013, 02:50:37 PM
Давно уже у меня лежит старая программка "Shtirlitz IV". Она для декодирования текстов из разных кодировок.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on October 01, 2013, 06:12:34 AM
Этот скрипт зациклиться?
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\login.bmp",-1,80)
 DBLCLICK($_return1+50, $_return2) //
   KEYSTRING($login)
   WAIT(1)
   LCLICK($_return1+50, $_return2+40)
   WAIT(10)
   LCLICK(988,616)  // 10412001
   wait(1)
   LCLICK(885,449)  // 5931704
ELSE wait(10)
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on October 01, 2013, 12:37:11 PM
После Else ничего не пишется.

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\login.bmp",-1,80)
   DBLCLICK($_return1+50, $_return2) //
   KEYSTRING($login)
   WAIT(1)
   LCLICK($_return1+50, $_return2+40)
   WAIT(10)
   LCLICK(988,616)  // 10412001
   wait(1)
   LCLICK(885,449)  // 5931704
ELSE
   wait(10)
END_IF
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on October 01, 2013, 01:18:37 PM
Понятно, так этот поиск картинки зациклиться? Мне нужно сделать так, что если он не найдет картинку, он будет ее искать бесконечно, если найдет, то выполняется действие
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on October 01, 2013, 02:54:06 PM
Такой код буедт отражать то что я хочу?
Code: (clickermann) [Select]
start:   
GETSCREEN
    COLORMODE(5)
    IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\login.bmp",-1,80)
      DBLCLICK($_return1+50, $_return2) //
      KEYSTRING($login)
      WAIT(1)
      LCLICK($_return1+50, $_return2+40)
      WAIT(10)
      LCLICK(988,616)  // 10412001
      wait(1)
      LCLICK(885,449)  // 5931704
    ELSE
      goto (start)
    END_IF
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on October 01, 2013, 06:20:45 PM
Я так понял это только часть кода, немного по нубски но да это будет работать. Но я бы добавил небольшую задержку если login.bmp не найден, это разгрузит процессор.

Code: (clickermann) [Select]
start:
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\login.bmp",-1,80)
   DBLCLICK($_return1+50, $_return2) //
   KEYSTRING($login)
   WAIT(1)
   LCLICK($_return1+50, $_return2+40)
   WAIT(10)
   LCLICK(988,616)  // 10412001
   wait(1)
   LCLICK(885,449)  // 5931704
ELSE
   WAITMS(100)
   goto (start)
END_IF
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on October 01, 2013, 10:05:11 PM
а что вы можете предложить, чобы это было менее нубски?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on October 01, 2013, 11:02:21 PM
а что вы можете предложить, чобы это было менее нубски?

Использование специально для этого предназначенных циклов конечно!

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\login.bmp",-1,80)
      $check = 1
      DBLCLICK($_return1+50, $_return2) //
      KEYSTRING($login)
      WAIT(1)
      LCLICK($_return1+50, $_return2+40)
      WAIT(10)
      LCLICK(988,616)  // 10412001
      wait(1)
      LCLICK(885,449)  // 5931704
   ELSE
      WAITMS(100)
   END_IF
END_CYC

Эта GOTO очень быстро превращается в клубок с беготней по всему скрипту во всех мыслимых и не мыслимых направлениях. Цикл же, выполняется логично построчно. Переменная $check изменилась, цикл больше не действует.
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: johnix on October 01, 2013, 11:15:33 PM
А теперь для понимания. Правильно ли я вас понимаю, если переменная "проверка" равна нулю, и картинка логина не находилась, будет выполнять условие задержка 100 мс, но если картинка была найдена, то выполниться условие "аутентификация" и переменной "проверка" присвоится значение единицы, исключая ее тем самым из скрипта на совсем?
Title: Re: Помощь в создании бота на примере браузерной игры mycultures online
Post by: Oraven on October 02, 2013, 01:07:52 AM
Обрати внимание перед циклом переменной $check присвоено 0
$check = 0
WHILE($check = 0) - условие цикла, если $check равно 0 то цикл выполняется
В какой то момент переменная $check меняет свое значение, цикл прокрутится до конца и скрипт продолжится дальше.

При последующем проходе переменной $check снова присваивается 0
$check = 0
WHILE($check = 0) - цикл снова выполняется

Кстати такие циклы WHILE($check = 0) можно писать друг за другом если нужно ожидать появления чего то и даже имя переменной менять не нужно.