Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - johnix

Pages: [1]
1
Собственно сабж, просто напечатать текстом?

2
Всем привет!

Наверное ни для кого не секрет, что успех 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=Пример вы можете наблюдать на скриншотах:]

[/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=о чем свидетельствовала картинка][/spoiler]
[spoiler=и дальше все шло по маслу] [/spoiler]

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

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

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

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

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

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



Для того чтобы его отправить мне необходимо сделать последовательность
1) Нажать на компас(верхний правый угол)
2) Выбрать локацию(допустим Амстердам)
2) Выбрать тип приключения(либо это случайный квест, восклицательный знак, либо это сюжетные задания, свиток)
3) Перетащить иконку героя в один из 3 слотов, которого хотим отправить и нажать на кнопку "Отправляемся"


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

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

Пока что все, позже опишу другие пункты, которые вызывают у меня трудности, по мере решения поступления проблем, буду выбираться на форум, Надеюсь на вашу поддержку!

3
Использование / Зацикливание сценария
« on: September 04, 2013, 04:01:27 PM »
Code: (clickermann) [Select]
LCLICK(1232,954) // ïðîïóñòèòü
WAITMS(2000)
LCLICK(810,575) // "ÎÊ" âçÿòü âåùè
WAITMS(2300)
LCLICK(481,741) // åñëè óìåð 2 ðàçà
WAITMS(100)
LCLICK(419,766) // åñëè óìåð 2 ðàçà
WAITMS(500)
LCLICK(336,751) // Êíîïêà îòïðàâëÿåìñÿ 393 554
Вот эту штуку нужно зациклить при определенных условиях. Например: крашнулся флэш плагин, по сценарию это будет что то вроде такого
1) Перезагрузка страницы
2) Ввод пароля(аутентификация)
3) Выход на карту приключений
4) Выбор приключения
5) Снова запустить цикл что дан сверху

Есть предположения что используется SUB(цикл)

То есть
Code: (clickermann) [Select]
SUB(цикл)
LCLICK(1232,954) // ïðîïóñòèòü
WAITMS(2000)
LCLICK(810,575) // "ÎÊ" âçÿòü âåùè
WAITMS(2300)
LCLICK(481,741) // åñëè óìåð 2 ðàçà
WAITMS(100)
LCLICK(419,766) // åñëè óìåð 2 ðàçà
WAITMS(500)
LCLICK(336,751) // Êíîïêà îòïðàâëÿåìñÿ 393 554
1) Перезагрузка страницы
2) Ввод пароля(аутентификация)
3) Выход на карту приключений
4) Выбор приключения
5) Снова запустить цикл что дан сверху goto(цикл)

Поправьте меня, если я не прав.

4
Вот скрипт
Code: [Select]
    getscreen
    IF_PICTURE_IN (1,1,$_xmax,$_ymax, "proj1\server.bmp")
WAITMS(50)

LCLICK($_return1, $_return2)
   
      LOGWRITE("x: ", $_return1," y: ", $_return2)
      HALT
    END_IF
Суть такова, если закоментировать(удалить) LCLICK($_return1, $_return2). То лог показывает, при каждом запуске, что кнопку выбора сервера, он находит, и возрващает правильные координаты. Но только как запустить функцию нажатия клавиши мышки, то она срабатывает единожды, и уже никак не определяеться кликерманом, в чем проблема?

5
Использование / Помогите новичку
« on: August 11, 2013, 03:34:59 PM »
 Имеется игра на движке adobe flash. Попытки сделать простою операцию, найти картинку на экране функцией if_picture_in не увенчалась успехом. Видимо я не совсем понимаю суть этой строки. В хелпе сказано: производит поиск изображения в прямоугольной области буфера анализа. Естественно перед этим я делаю getscreen. Картинку я расположил в корневой папке программы(не считается ли ошибкой, если картинку разместить по пути "Clickermann/bmp/1/bmp" и указывать в скрипте путь if_picture_in "bmp\1.bmp" ?).
 Затем я попробовал сделать скрипт на рабочем столе, итог тот же, координаты картинки не находит, вот код
Code: [Select]
getscreen

IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\zhachok.bmp")

LOGWRITE("x: ", $_return1," y: ", $_return2)
LOGWRITE("x2: ", $vX," y2: ", $vY)
END_IF

Pages: [1]