PDA

Просмотр полной версии : АвтоФермер, скрипт по автоматизации открывания ферм


vosp
05.08.2013, 14:43
Всем доброго времени суток. Я создал эту тему с целью узнать, нужен ли кому нибудь вообще такой скрипт. Понимаю, что для большинства он абсолютно неактуален, так как это самое большинство либо не донатит вообще, либо донатит копейки. Однако, для тех, кто на этой акции недурно зарабатывает, скрипт может оказаться хорошим подспорьем. В особенности, учитывая, что фермы могут скоро ввести опять.

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

Если скрипт окажется никому не нужен, то просто удалите тему. Если интерес к нему будет, то выложу после того, как доделаю.

Раз нашелся интересующийся пользователь, выкладываю текст скрипта:

; Скрипт написан для автоматизации нудного ручного долбоклюйства во время популярной донат-акции "Жемчужная ферма" проводимой mail.ru в рамках онлайн-игры Perfect World.
; Скрипт работает в любом браузере, но рекомендуется использовать Google Chrome так как в нем наблюдается наименьшее количество тормозов.
; Полезные советы:
; 1. В дни доступные для покупки новых ферм, рекомендуется покупать по одной ферме в процессе открывания ракушек. Это обновит фермы и ускорит процесс созревания ракушек без необходимости прокручивания ферм с самого начала.
; 2. Большое количество открываемых ферм система начинает воспринимать, как ddos-атаку. Поэтому рекомендуется за один заход не открывать более 80-100 ферм. После чего сделать паузу, или сменить IP.
; ©киталец

F5::

Block001: ;блок поиска реперной точки
PixelSearch, reper0X, reper0Y, 5, 130, 300, 900, 0x323525 ; поиск реперной точки по цвету в заданном участке окна
MouseMove, reper0X, reper0Y ; перемещение курсора в реперную точку
Sleep, 5000

Block005: ; блок цикла прокрутки уже открытых ракушек до первой созревшей
Loop
{
PixelSearch, open1X, open1Y, reper0X - 3, reper0Y + 300, reper0X + 50, reper0Y +310, 0x2B2410, 5 ; проверка созрела ли 1-я ракушка по цвету точки в заданном участке окна
if ErrorLevel = 0
Gosub, Block010 ; если да, переходим к открыванию ракушки
PixelSearch, open2X, open2Y, reper0X + 97, reper0Y + 300, reper0X + 150, reper0Y +310, 0x2B2410, 5 ; проверка созрела ли 2-я ракушка
if ErrorLevel = 0
Gosub, Block010
PixelSearch, open3X, open3Y, reper0X + 197, reper0Y + 300, reper0X + 250, reper0Y +310, 0x2B2410, 5 ; проверка созрела ли 3-я ракушка
if ErrorLevel = 0
Gosub, Block010
PixelSearch, open4X, open4Y, reper0X + 297, reper0Y + 300, reper0X + 350, reper0Y +310, 0x2B2410, 5 ; проверка созрела ли 4-я ракушка
if ErrorLevel = 0
Gosub, Block010
PixelSearch, open5X, open5Y, reper0X + 397, reper0Y + 300, reper0X + 450, reper0Y +310, 0x2B2410, 5 ; проверка созрела ли 5-я ракушка
if ErrorLevel = 0
Gosub, Block010
MouseClick, left, reper0X + 496, reper0Y + 285 ; переход к следующей ферме
Sleep, 200
}

Block010: ; блок цикла открывания ракушек в ферме и переход к следующей ферме
Loop, 80
{
Gosub, Block020 ; проверяем, нет ли желтого информационного сообщения (разрыв связи, подождите и т.п.) по цвету точки в заданном участке окна
MouseClick, left, reper0X + 36, reper0Y + 297 ; открываем 1-ю ракушку
Sleep, 400 ; пауза между открываниями созревших ракушек
Gosub, Block020
Gosub, Block030 ; проверяем полностью ли открылась 1-я ракушка
MouseClick, left, reper0X + 136, reper0Y + 297 ; открываем 2-ю ракушку
Sleep, 400
Gosub, Block020
Gosub, Block040 ; проверяем полностью ли открылась 2я ракушка
MouseClick, left, reper0X + 236, reper0Y + 297 ; открываем 3-ю ракушку
Sleep, 400
Gosub, Block020
Gosub, Block050 ; проверяем полностью ли открылась 3-я ракушка
MouseClick, left, reper0X + 336, reper0Y + 297 ; открываем 4-ю ракушку
Sleep, 400
Gosub, Block020
Gosub, Block060 ; проверяем полностью ли открылась 4-я ракушка
MouseClick, left, reper0X + 436, reper0Y + 297 ; открываем 5-ю ракушку
Sleep, 400
Gosub, Block020
Gosub, Block070 ; проверяем полностью ли открылась 5-я ракушка
MouseClick, left, reper0X + 496, reper0Y + 285 ; переход к следующей ферме
Sleep, 300
}
Pause ; пауза после открытия 80 ферм
Gosub, Block001 ; возврат в начало скрипта

Block020: ; блок поиска желтого информационного сообщения
Loop
{
PixelSearch, npc0X, npc0Y, reper0X + 71, reper0Y + 72, reper0X + 386, reper0Y + 107, 0x7DEDFE ; поиск желтого информационного сообщения по цвету точки в заданном участке окна
if ErrorLevel
Return ; если нет сообщения, возврат в цикл и переходим к следующей ракушке
Sleep, 1000 ; если есть, ждем
}

Block030: ; блок проверки полного открытия 1-й ракушки
Loop, 25
{
PixelSearch, open1X, open1Y, reper0X + 6, reper0Y + 247, reper0X + 66, reper0Y + 262, 0xEECC80
if ErrorLevel = 0
Return ; если ракушка открыта, возврат в цикл и переходим к следующей ракушке
Sleep, 200 ; если еще не открылась полностью, ждем
}
Gosub, Block100 ; если в течении 5 секунд ракушка не открылась, переход к обновлению ферм

Block040: ; блок проверки полного открытия 2-й ракушки
Loop, 25
{
PixelSearch, open2X, open2Y, reper0X + 106, reper0Y + 247, reper0X + 166, reper0Y + 262, 0xEECC80
if ErrorLevel = 0
Return
Sleep, 200
}
Gosub, Block100

Block050: ; блок проверки полного открытия 3-й ракушки
Loop, 25
{
PixelSearch, open3X, open3Y, reper0X + 206, reper0Y + 247, reper0X + 266, reper0Y + 262, 0xEECC80
if ErrorLevel = 0
Return
Sleep, 200
}
Gosub, Block100

Block060: ; блок проверки полного открытия 4-й ракушки
Loop, 25
{
PixelSearch, open4X, open4Y, reper0X + 306, reper0Y + 247, reper0X + 366, reper0Y + 262, 0xEECC80
if ErrorLevel = 0
Return
Sleep, 200
}
Gosub, Block100

Block070: ; блок проверки полного открытия 5-й ракушки
Loop, 25
{
PixelSearch, open5X, open5Y, reper0X + 406, reper0Y + 247, reper0X + 466, reper0Y + 262, 0xEECC80
if ErrorLevel = 0
Return
Sleep, 200
}
Gosub, Block100

Block100: ; блок обновления ферм
SendInput, {F5} ; обновление страницы
Gosub, Block005 ; возврат к блоку прокрутки открытых ферм

F6::Pause ; пауза в скрипте
F7::ExitApp ; выход из скрипта

Просто скопируйте код в блокнот, сохраните и измените расширение с .txt на .ahk
Естественно на компе должен стоять AutoHotKey. Софтина бесплатная, качаем с офсайта тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Должен работать в любом браузере, но рекомендую хром. Так как в нем сами фермы меньше зависают.
При авторизации на сайте поставьте галочку "запомнить". Благодаря этому вас через некоторое время не разлогинит во время открывания ферм и не придется авторизоваться по новой и прокручивать все с самого начала.
Открыв страницу с фермами после авторизации, перед запуском скрипта сделайте так, чтобы вся флэшка, целиком была в окне браузера. Дальше скрипт сам рассчитает координаты.
Если скрипт дошел до еще не созревшей ракушки он автоматически обновит страницу, прокрутит до первой созревшей и продолжит работу.
Скрипт настроен на открывание 80 ферм. После чего переходит в паузу. Это сделано потому, что после открывания 80-100 ферм сайт начинает вас воспринимать, как DDOS-атаку и блокирует по IP. Здесь есть 3 выхода из ситуации. Либо после остановки скрипта выдерните кабель, воткните снова, опять авторизуйтесь на сайте и запустите скрипт снова. Либо сделайте перекур минут на 10 (не всегда помогает). Либо играйтесь с проксями. По идее, смену IP можно и в скрипте реализовать, но я пока не заморачивался этим. Введут фермы, попробую.

Тапками не кидать. Я ни разу не программист, хотя и написал вполне рабочего бота-мобопаса на этом языке для одной из браузерок. Скрипт успешно работал в прошлые фермы. Сейчас я его немного доработал, но не думаю, что это повлияет на правильность его работы. В любом случае с очередным вводом ферм подправлю, если вдруг что-то не так.

Скрипт СУЩЕСТВЕННО облегчает жизнь мультифермерам. Естественно, использовать его имеет смысл при покупке 100+ ферм. Продавать я его не собираюсь, поэтому даже не компилировал, а привел исходник. ОДНАКО. Учитывая, что пользоваться им будут люди покупающие СОТНИ ферм (тысячи голда) с, как минимум, 70% прибылью с акции, я не откажусь от вознаграждения после проведения акции от тех, кто сочтет скрипт полезным и существенно сэкономившим им время на тупом долбоклюйстве по клавишам в течении многих часов, в течении двух недель. Кошелек укажу позже.

JOX
05.08.2013, 15:32
Всем доброго времени суток. Я создал эту тему с целью узнать, нужен ли кому нибудь вообще такой скрипт. Понимаю, что для большинства он абсолютно неактуален, так как это самое большинство либо не донатит вообще, либо донатит копейки. Однако, для тех, кто на этой акции недурно зарабатывает, скрипт может оказаться хорошим подспорьем. В особенности, учитывая, что фермы могут скоро ввести опять.

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

Если скрипт окажется никому не нужен, то просто удалите тему. Если интерес к нему будет, то выложу после того, как доделаю.

Все скрипты на AutoHotKey дешевки, это простой Tasker, можно так сказать, так что баг, мало кому интересен... /okay

AEBus
06.08.2013, 03:12
Все скрипты на AutoHotKey дешевки, это простой Tasker, можно так сказать, так что баг, мало кому интересен... /okay
плохо выделился с текстом, нужно еще шрифт комиксанс поставить, размер шрифта максимальный и еще жирность, курсив, и цвет более вырвиглазный, тогда будет норм, да

hhh2010
07.08.2013, 10:53
на чем бы не был написан, если ралотает и хоошо работает, то очень нужен рядовым пользователям.
Буду ожидать сей продукт

vosp
07.08.2013, 13:34
на чем бы не был написан, если ралотает и хоошо работает, то очень нужен рядовым пользователям.
Буду ожидать сей продукт

Собственно, в шапке выложил код. Если модераторы сочтут целесообразным, создам тему в разделе с софтом.