Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: naftik on October 09, 2013, 01:00:28 PM
-
Помощи прошу в создании бота для Fantastic Fishing.
Цель - ловля в автоматическом режиме на 3! удочки.
На сегодня с грехом пополам слепил работающий скрипт на 1 удочку
SUB(check)
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005) - ищет изменяющийся пиксель цвета (при поклёвке) иконки на АКТИВНОЙ удочке
wait(1)
GOSUB(check)
Else
LCLICK(346,519) - по иконке АКТИВНОЙ удочки
WAIT(7) - ожидание перед подсечкой
WAITMS(54 * $K_SPEED)
KEYDOWN(32) - подсечка
WAITMS(31 * $K_SPEED)
KEYUP(32)
WAITMS(1 * $K_SPEED)
KEYDOWN(72) - тянет удочку
WAITMS(20 * $K_SPEED)
KEYUP(72) - тянет удочку
WAITMS(1 * $K_SPEED)
KEYDOWN(71) - мотает катушку
WAITMS(20 * $K_SPEED)
KEYUP(71) - мотает катушку
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(20 * $K_SPEED)
KEYDOWN(84) - забрасывает удочку
WAITMS(5[20 * $K_SPEED)
KEYUP(84) - забрасывает удочку
Помогите сделать что то примерно такое только на 3 удочки т.е. что бы скрипт искал изменяющиеся цвета пикселя иконки удочки в трёх разных местах экрана и при нахождении сначала активизировал именно эту удочку (клик по иконке удочки либо одна из клавиш 1,2,3) и запускал цикл с подсечкой, выматыванием, забросом и возвращался к поиску.
-
Скрипт не верный.
Комментарии пишутся через две косых черты - // коммент
SUB - это субпрограмма. ей здесь не место. Скрипт по логике и так перейдет в начало если пиксел найден.
при записи переменная $K_SPEED = 4 это число умножается на задержку WAITMS(31 * $K_SPEED) то есть фактическая задержка при записи была 124
Ты эту переменную не прописал и все задержки ускорились в 4 раза
В конце вообще какая то хрень WAITMS(5[20 * $K_SPEED)
Ну а про то что в конце условия надо писать завершающий END_IF тебе видать вообще наплевать :-\
Хотя бы так напиши, а то на это смотреть страшно...
$K_SPEED = 4
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
wait(1)
Else
// тут твоя запись
END_IF
-
Исправил ... согласен так правильнее но сути это не меняет
[/$K_SPEED = 4
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005) // ищет изменяющийся пиксель цвета (при поклёвке) иконки на АКТИВНОЙ удочке
wait(1)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
WAITMS(54 * $K_SPEED)
KEYDOWN(32)
WAITMS(31 * $K_SPEED)
KEYUP(32)
WAITMS(1 * $K_SPEED)
KEYDOWN(72)
WAITMS(20 * $K_SPEED)
KEYUP(72)
WAITMS(1 * $K_SPEED)
KEYDOWN(71)
WAITMS(20 * $K_SPEED)
KEYUP(71)
KEYDOWN(84)
WAITMS(52 * $K_SPEED)
KEYUP(84)
END_IF]
-
Это поиск только одного параметра а как их 3 задать и при условии нахождения одного из них срабатывал клик по возвращённому адресу и дальше по схеме пробел, выматывание, заброс и поиск сначала
-
Так и пропиши по порядку для трех удочек. Только координаты анализа поправь.
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
WAITMS(200) // общая задержка
-
Андрей привет посмотри пожалуйста вот этот скрипт на тему fantastik fishing чего здесь не так и как сделать на три удочки. как ты говорил прописать 3 раза я прописал но не работает.
GETSCREEN
IF_PIXEL_IN(478,557,478557,10460908)
LCLICK(478,557)
WAIT(15)
KEYPRESS(#SPACE)
WAIT(2)
KEYUP(#SPACE)
WAIT(1)
KEYDOWN(#G)
WAIT(2)
KEYUP(#G)
WAIT(2)
KEYDOWN(#H)
WAIT(2)
KEYUP(#H)
WAIT(1)
KEYDOWN(#SPACE)
WAIT(1)
KEYUP(#SPACE)
WAIT(1)
KEYPRESS(#T)
WAIT(1)
KEYUP(#T)
END_IF
-
как сохранить и запустить этого бота?
-
Интересует бот для вышесказанной программы, работа будет оценена соответствующе. Есть неплохая заготовка, нужна поддержка.
-
есть у кого рабочий скрипт на эту игру?
-
Так и пропиши по порядку для трех удочек. Только координаты анализа поправь.
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
Else
LCLICK($_return1,$_return2) // по иконке удочки
wait(7)
KEYDOWN(#SPACE)
WAITMS(150)
KEYUP(#SPACE)
WAITMS(50)
KEYDOWN(#H)
WAITMS(100)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(100)
KEYUP(#G)
WAITMS(50)
KEYDOWN(#T)
WAITMS(200)
KEYUP(#T)
END_IF
WAITMS(200) // общая задержка
что толку в этом повторении для трех удочек если одна работает неправильно!
-
Есть компилированный рабочий исходник, но как вытащить код из него? требует маленькой доработки*
-
Есть компилированный рабочий исходник, но как вытащить код из него? требует маленькой доработки*
никак, файл с раширением exe невозможно полностью декомпилировать
компилированный рабочий исходник
вы путаете понятия
-
Возможно, я не мастер в этой среде, так что там? Получается?
-
//Определяем координаты
While($x=0)
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Координаты",$x,$y)
Else
WAITMS(50)
end_if
end_cyc
//Заброс удочки
LCLICK($x,$y)
LOGWRITE (Забросили)
wait(3)
b:
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
IF(PXL ($x+23,504)=16777215)
//LOGWRITE (Не клюет)
wait(1)
goto (b)
Else
LOGWRITE (Клюнула)
LCLICK($x+23,505) // по иконке
wait(8)
KEYDOWN(#SPACE)
WAITMS(50)
KEYUP(#SPACE)
wait(1)
// Цикл тянем
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
while(PXL ($x+23,503)=16777215)
else
LOGWRITE (Тянем)
WAITMS(50)
KEYDOWN(#H)
WAITMS(300)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(280)
KEYUP(#G)
WAITMS(200)
GETSCREEN
COLORMODE(7, 10,30,981,518)
IF(PXL (415,448)=8388607)
INC($myvar, 1);
LOGWRITE (Поймали," ",$myvar)
wait(2)
LCLICK(411,476) // 8355711
wait(1)
keypress(#SPACE)
goto(a);
END_IF
end_cyc
END_IF
a:
Вот мой вариант. для одной удочки
-
Вот мой вариант. для одной удочки
Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
//Определяем координаты
While($x=0)
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Координаты: ",$x," ",$y)
Else
WAITMS(50)
end_if
end_cyc
//Заброс удочки
LCLICK($x,$y)
LOGWRITE ("Забросили")
wait(3)
b:
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
IF(PXL($x+23,504)=16777215)
//LOGWRITE ("Не клюет")
wait(1)
goto(b)
Else
LOGWRITE ("Клюнула")
LCLICK($x+23,505) // по иконке
wait(8)
KEYDOWN(#SPACE)
WAITMS(50)
KEYUP(#SPACE)
wait(1)
// Цикл тянем
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
$check = 0
while((PXL($x+23,503)=16777215) & ($check = 0))
LOGWRITE ("Тянем")
WAITMS(50)
KEYDOWN(#H)
WAITMS(300)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(280)
KEYUP(#G)
WAITMS(200)
GETSCREEN
COLORMODE(7, 10,30,981,518)
IF(PXL(415,448)=8388607)
INC($myvar, 1)
LOGWRITE ("Поймали ",$myvar)
wait(2)
LCLICK(411,476)
wait(1)
keypress(#SPACE)
$check = 1
END_IF
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
end_cyc
END_IF
-
Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
Код: Clickermann
Спасибо!
-
Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
Код: Clickermann
Спасибо!
Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно
-
Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно
1) запускаем скрипт
2) щелчек левойкнопкой в месте заброса
3) все!
-
Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно
1) запускаем скрипт
2) щелчек левойкнопкой в месте заброса
3) все!
Такое дело зашел в игру, потом зашел в кликерман загрузил в редактор вот это:
//Определяем координаты
While($x=0)
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Координаты: ",$x," ",$y)
Else
WAITMS(50)
end_if
end_cyc
//Заброс удочки
LCLICK($x,$y)
LOGWRITE ("Забросили")
wait(3)
b:
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
IF(PXL($x+23,504)=16777215)
//LOGWRITE ("Не клюет")
wait(1)
goto(b)
Else
LOGWRITE ("Клюнула")
LCLICK($x+23,505) // по иконке
wait(8)
KEYDOWN(#SPACE)
WAITMS(50)
KEYUP(#SPACE)
wait(1)
// Цикл тянем
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
$check = 0
while((PXL($x+23,503)=16777215) & ($check = 0))
LOGWRITE ("Тянем")
WAITMS(50)
KEYDOWN(#H)
WAITMS(300)
KEYUP(#H)
WAITMS(50)
KEYDOWN(#G)
WAITMS(280)
KEYUP(#G)
WAITMS(200)
GETSCREEN
COLORMODE(7, 10,30,981,518)
IF(PXL(415,448)=8388607)
INC($myvar, 1)
LOGWRITE ("Поймали ",$myvar)
wait(2)
LCLICK(411,476)
wait(1)
keypress(#SPACE)
$check = 1
END_IF
GETSCREEN
COLORMODE(8, $x+21,503,$x+23,505)
end_cyc
END_IF
после нажал значок плэй прямо в редакторе, потом закинул удочку.. после этого кликерман начал повторять заброс гдето каждые 2 секунды и все..
подскажите что я не так сделал? Это я был тупанул и не все скопировал, сечас все скопировал, но всеравно не получается почмуто, закинул удочку кликермэн начал закидывать удочку и подсикать с определенным интервалом т.е. тогда когда это того не требуется в игре использую кликерман версии 4.10, подскажите пожалуйста что не так я делаю может надо чтото еще вписать?
-
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.
-
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.
7 LOGWRITE ("Координаты: ",$x," ",$y)
написал в эту строчку координаты примерно вот так LOGWRITE ("Координаты: ",512," ",611) все тоже самое, может я не туда вписал или еще что надо сделать?
-
ну подскажите кто, как пользоваться по пунктам, а то я в этом деле не понимаю..
-
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.
ну подскажите если у вас все получилось как вы делали, а то у меня чтото не получается
-
что всех жаба душит чтоли? жалко 5 минут объяснить человеку?
-
Немного переделал. Работает база Неро, лока Львы. Одна донка. Сам продает и возвращается. Есть шероховатости, но работает.
//Îïðåäåëÿåì êîîðäèíàòû
While($x=0)
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Êîîðäèíàòû: ",$x," ",$y)
Else
WAITMS(50)
//Çàáðîñ óäî÷êè
LCLICK(783,389)
LOGWRITE ("Çàáðîñèëè")
wait(1)
b:
hgGETSCREEN
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
//LOGWRITE ("Íå êëþåò")
wait(5)
goto(b)
Else
LOGWRITE ("Êëþíóëà")
wait(1)
KEYDOWN(#SPACE)
WAITMS(50)
KEYUP(#SPACE)
wait(1)
LOGWRITE ("Òÿíåì")
WAITMS(10)
KEYDOWN(#H)
WAITMS(600)
KEYUP(#H)
WAITMS(20)
KEYDOWN(#G)
WAITMS(400)
KEYUP(#G)
WAITMS(30)
GETSCREEN
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
wait(2)
Else
LCLICK($x+972,51) // ïâåðíóòüñÿ íà áàçó
wait(2)
LCLICK($x+60,604) // ñàäîê
wait(2)
LCLICK($x+745,492) // ïðîäàòü âñå
wait(2)
LCLICK($x+399,438) // ïî èêîíêå
wait(2)
LCLICK($x+523,440) // ïî èêîíêå
wait(2)
LCLICK($x+63,630) // ïî èêîíêå
wait(2)
LCLICK($x+393,338) // ïî èêîíêå
GETSCREEN
COLORMODE(7, 10,30,981,518)
IF(PXL(415,448)=8388607)
LOGWRITE ("Ïîéìàëè ",$myvar)
wait(2)
LCLICK(411,490)
wait(1)
keypress(#SPACE)
end_cyc
END_IF
-
Немного переделал. Работает база Неро, лока Львы. Одна донка. Сам продает и возвращается. Есть шероховатости, но работает.
Как оно может работать если в коде куча ошибок?!
Исправленный код
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Координаты: ",$x," ",$y)
Else
WAITMS(50)
//Заброс удочки
LCLICK(783,389)
LOGWRITE ("Забросили")
wait(1)
b:
GETSCREEN
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
//LOGWRITE ("Не клюет")
wait(5)
goto(b)
Else
LOGWRITE ("Клюнула")
wait(1)
KEYDOWN(#SPACE)
WAITMS(50)
KEYUP(#SPACE)
wait(1)
LOGWRITE ("Тянем")
WAITMS(10)
KEYDOWN(#H)
WAITMS(600)
KEYUP(#H)
WAITMS(20)
KEYDOWN(#G)
WAITMS(400)
KEYUP(#G)
WAITMS(30)
GETSCREEN
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
wait(2)
Else
LCLICK($x+972,51) // пвернуться на базу
wait(2)
LCLICK($x+60,604) // садок
wait(2)
LCLICK($x+745,492) // продать все
wait(2)
LCLICK($x+399,438) // по иконке
wait(2)
LCLICK($x+523,440) // по иконке
wait(2)
LCLICK($x+63,630) // по иконке
wait(2)
LCLICK($x+393,338) // по иконке
waitms(50)
GETSCREEN
COLORMODE(7, 414,447,416,449)
IF(PXL(415,448)=8388607)
LOGWRITE ("Поймали")
wait(2)
LCLICK(411,490)
wait(1)
keypress(#SPACE)
END_IF
END_IF
END_IF
END_IF
-
А я и не говорил, что все идеально. Просто взял выложенный выше и, практически методом научного тыка, сделал, чтоб хоть как-то работало.
-
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
Уважаемый Oraven, а что это за картинки ? откуда их взять ?
Спасибо.
-
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
Уважаемый Oraven, а что это за картинки ? откуда их взять ?
Спасибо.
А это нужно у ssanarhist спросить. Ведь это его код здесь: http://crapware.aidf.org/forum/index.php?topic=320.msg7297#msg7297
А лучше написать самому.
-
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
Уважаемый Oraven, а что это за картинки ? откуда их взять ?
Спасибо.
А это нужно у ssanarhist спросить. Ведь это его код здесь: http://crapware.aidf.org/forum/index.php?topic=320.msg7297#msg7297
А лучше написать самому.
ne kl.bmp - индикатор удочки
sadok.bmp - проверяет садок на заполнение
-
IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
Уважаемый Oraven, а что это за картинки ? откуда их взять ?
Спасибо.
А это нужно у ssanarhist спросить. Ведь это его код здесь: http://crapware.aidf.org/forum/index.php?topic=320.msg7297#msg7297
А лучше написать самому.
ne kl.bmp - индикатор удочки
sadok.bmp - проверяет садок на заполнение
А не подскажите откуда их взять?
-
Сделать.
-
неужели нельзя поделится информацией о боте
-
неужели нельзя поделится информацией о боте
я бы с радостью, вот только сам не могу разобраться
-
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.
-
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.
Это к какой-то 1 локе привязано ? Пробовал на паре локаций... не работает. Либо что-то править надо ?
-
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.
Это к какой-то 1 локе привязано ? Пробовал на паре локаций... не работает. Либо что-то править надо ?
тоже не работает, надо что-то вписывать еще или просто загрузить в кликер?
-
Переделал в версии 4.11. Работает уже 2 дня с небольшими замечаниями (иногда не подсекает рыбу, в связи с тем что время ожидания подсечки задано явно, а рыба всегда клюет по разному - но это мелочи, бот просто перезабрасывает уду). Ловит, после заполнения садка идет на базу, продает всю рыбу, возвращается на локацию и продолжает ловить. Так по кругу до остановки или выпрыгивания какого-нибудь неожиданного окна (достижение и т.д.) - это нужно отслеживать вручную. Количество потяжек при вываживании установлено 3, но в цикле можно уменьшить время нажатия клавиш "G" и "H" и увеличить количество итераций цикла, что будет нужно при вываживании крупной рыбины , я этим не заморачивался , так как ловлю Щитовку на 20 гр.
При использовании необходимо сделать пару картинок (индикатор клюющей удочки и пустого садка) - 2 маленьких квадратика и положить их в папку Кликермана. Также необходимо под себя подстроить координаты точек кликанья и областей в которых кликер будет искать индикатор поклевки и индикатор садка. Точку первоначального заброса тоже необходимо задать вручную (строка 9).
Не могу заставить работать кликер в режиме привязке к окну, он просто не видит область для анализа. Что делать не знаю, может кто подскажет? Игра клиентская, может с этим связано? Пробовал установить клиент игры на виртуальные машины (Win XP, Win 7) - клиент не работает ни на одной, путь тупиковый. Клиент работает в оконном режиме размером 1000х750. Будем пытаться разбираться дальше.
Есть еще мысли организовать ловлю на три удочки с помощью потоков, но это в будущем, еще не конца понял, собственно сам алгоритм.
if(iskeydown(1)=1)
$x=$_xmouse
$y=$_ymouse
LOGWRITE ("Координаты: ",$x," ",$y)
Else
WAITMS(50)
// Заброс удочки
LCLICK (1100, 390)
LOGWRITE ("Забросили")
wait (1)
// ожидаем поклевки
b:
GETSCREEN
IF_PICTURE_IN (800, 300, 1330, 514, "nekl.bmp", -1, 50)
wait (4)
goto (b)
Else
LOGWRITE ("Клюнула")
wait (5)
// подсекаем
KEYDOWN (#SPACE)
WAITMS (50)
KEYUP (#SPACE)
wait (1)
LOGWRITE ("Тянем")
// тянем
$var = 1
while ($var < 4)
WAITMS (10)
KEYDOWN (#H)
WAITMS (900)
KEYUP (#H)
WAITMS (20)
KEYDOWN (#G)
WAITMS (900)
KEYUP (#G)
WAITMS (30)
inc ($var)
end_cyc
// проверяем садок
GETSCREEN
IF_PICTURE_IN (345,540, 475, 590, "sadok.bmp")
wait(2)
Else
LCLICK (1290,45) // вернуться на базу
wait (2)
LCLICK (410,570) // садок
wait (2)
LCLICK (1070,463) // продать все
wait (2)
LCLICK (730,410) // подтв. продажи
wait (2)
LCLICK (850,410) // рыба продана
wait (2)
LCLICK (410,590) // карта
wait (2)
LCLICK (765,257) // перешеек
wait (2)
END_IF
END_IF
END_IF
-
В оконном режиме не работают зажатия клавиш, поэтому он тут вообще не применим.
-
В оконном режиме не работают зажатия клавиш, поэтому он тут вообще не применим.
Ок, спасибо понял, а как можно организовать? А зажатия клавиш мышки работают?
-
Зажатия клавиш мыши могут работать, но не всегда корректно. Но у тебя же кликер ничего не видит. Такой окно что поделать....
-
Спасибо) Буду репу чесать чего делать, мож начешу)))
-
Накодил на 3 удочки, работает нормально. Но не очень красиво выглядят "костылики" GOTO в строках 27, 85, 99, 130. Правда как их победить, пока ума не хватает. Буду очень признателен за подсказки, а то что-то голова уже дымится...
#ps2_keyboard
$x1 = 838
$y1 = 455
$x2 = 1285
$y2 = 505
// подпрограмма вываживания рыбы
SUB(VYLOV)
// подсечка
WAIT (RND(4,6))
KEYPRESS (#SPACE)
WAIT (0.3)
// вываживание
a:
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "Katush.bmp", -1, 75)
KEYDOWN (#H)
WAITMS (175)
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (175)
KEYUP (#G)
WAITMS (5)
GOTO (a)
ELSE
WAITMS (300)
KEYPRESS (#T)
END_IF
END_SUB
// основное тело программы
b:
WAIT (2)
// заброс удочки 1
KEYPRESS (#1)
LCLICK (RND(838,846), RND(412,420))
WAIT (2)
// заброс удочки 2
KEYPRESS (#2)
LCLICK (RND(1080,1120), RND(380,400))
WAIT (2)
// заброс удочки 3
KEYPRESS (#3)
LCLICK (RND(1242,1250), RND(351,359))
WAIT (2)
// перемещение уды вверх карты (чтобы не мешалась)
MOVE (RND(900,1120), RND(150,250))
c:
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "1kl.bmp", -1, 70)
KEYPRESS (#1)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "11kl.bmp", -1, 70)
KEYPRESS (#1)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "2kl.bmp", -1, 70)
KEYPRESS (#2)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "22kl.bmp", -1, 70)
KEYPRESS (#2)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "3kl.bmp", -1, 70)
KEYPRESS (#3)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "33kl.bmp", -1, 70)
KEYPRESS (#3)
VYLOV()
ELSE
WAIT (1)
GOTO (c)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
// проверка садка
GETSCREEN (355, 550, 460, 580)
COLORMODE (6, 355, 550, 460, 580)
IF_PICTURE_IN (355, 550, 460, 580, "sadok.bmp", -1, 90)
WAIT (0.5)
GOTO (c)
ELSE
// возврат на базу
LCLICK (RND(1285,1305), RND(35,55))
WAIT (RND(3,5))
// открытие садка
LCLICK (RND(370,450), RND(558,573))
WAIT (RND(3,5))
// продажа рыбы
LCLICK (RND(1030,1120), RND(453,468))
WAIT (RND(3,5))
// подтверждение продажи
LCLICK (RND(690,780), RND(402,417))
WAIT (RND(3,5))
// рыба продана
LCLICK (RND(805,895), RND(402,417))
WAIT (RND(3,5))
// переход на локальную карту
LCLICK (RND(370,450), RND(582,597))
WAIT (RND(3,5))
// переход на локацию
LCLICK (RND(755,775), RND(245,265))
WAIT (RND(3,5))
END_IF
GOTO (b)
-
Как-то так:
#ps2_keyboard
$x1 = 838
$y1 = 455
$x2 = 1285
$y2 = 505
// подпрограмма вываживания рыбы
SUB(VYLOV)
// подсечка
WAIT (RND(4,6))
KEYPRESS (#SPACE)
WAIT (0.3)
// вываживание
$a = 1
WHILE($a = 1)
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "Katush.bmp", -1, 75)
KEYDOWN (#H)
WAITMS (175)
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (175)
KEYUP (#G)
WAITMS (5)
ELSE
WAITMS (300)
KEYPRESS (#T)
$a = 0
END_IF
END_CYC
$c = 0
END_SUB
// основное тело программы
WAIT (2)
// заброс удочки 1
KEYPRESS (#1)
LCLICK (RND(838,846), RND(412,420))
WAIT (2)
// заброс удочки 2
KEYPRESS (#2)
LCLICK (RND(1080,1120), RND(380,400))
WAIT (2)
// заброс удочки 3
KEYPRESS (#3)
LCLICK (RND(1242,1250), RND(351,359))
WAIT (2)
// перемещение уды вверх карты (чтобы не мешалась)
MOVE (RND(900,1120), RND(150,250))
$c = 1
WHILE($c = 1)
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "1kl.bmp", -1, 70)
KEYPRESS (#1)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "11kl.bmp", -1, 70)
KEYPRESS (#1)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "2kl.bmp", -1, 70)
KEYPRESS (#2)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "22kl.bmp", -1, 70)
KEYPRESS (#2)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "3kl.bmp", -1, 70)
KEYPRESS (#3)
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "33kl.bmp", -1, 70)
KEYPRESS (#3)
VYLOV()
ELSE
WAIT (1)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
IF($c = 1)
// проверка садка
GETSCREEN (355, 550, 460, 580)
COLORMODE (6, 355, 550, 460, 580)
IF_PICTURE_IN (355, 550, 460, 580, "sadok.bmp", -1, 90)
WAIT (0.5)
ELSE
$c = 0
// возврат на базу
LCLICK (RND(1285,1305), RND(35,55))
WAIT (RND(3,5))
// открытие садка
LCLICK (RND(370,450), RND(558,573))
WAIT (RND(3,5))
// продажа рыбы
LCLICK (RND(1030,1120), RND(453,468))
WAIT (RND(3,5))
// подтверждение продажи
LCLICK (RND(690,780), RND(402,417))
WAIT (RND(3,5))
// рыба продана
LCLICK (RND(805,895), RND(402,417))
WAIT (RND(3,5))
// переход на локальную карту
LCLICK (RND(370,450), RND(582,597))
WAIT (RND(3,5))
// переход на локацию
LCLICK (RND(755,775), RND(245,265))
WAIT (RND(3,5))
END_IF
END_IF
END_CYC
-
О даааа, спасибо большое, пойду тестить и думать чего с ботом сделать еще!
-
Vint, позвольте вопрос? Строка 34, обнуление переменной $c, ведь после этого программа выходит из цикла по строке 59 и начинает работу сначала, а нам этого не надо, нам надо чтоб она продолжала крутить цикл. Удалил строку 34 и бот заработал как положено. Это ошибка или я чего-то снова не допонял?
Еще вопросик, картинки готовим в формате .bmp в 24 битном, а если сделать скрин с помощью кликермана и посмотреть свойства файла, то там будет - глубина цвета 32... Это как так? Кликер делает скрины не в том фомате с которым работает сам?
-
Vint, позвольте вопрос? Строка 34, обнуление переменной $c, ведь после этого программа выходит из цикла по строке 59 и начинает работу сначала, а нам этого не надо, нам надо чтоб она продолжала крутить цикл. Удалил строку 34 и бот заработал как положено. Это ошибка или я чего-то снова не допонял?
Еще вопросик, картинки готовим в формате .bmp в 24 битном, а если сделать скрин с помощью кликермана и посмотреть свойства файла, то там будет - глубина цвета 32... Это как так? Кликер делает скрины не в том фомате с которым работает сам?
Ну так было в оригинале.
Оригинальный скрипт при поиске "1kl.bmp"...."33kl.bmp" вызывал VYLOV() и тоже не повторял, шёл дальше на поиск "sadok.bmp". Повторял он только если не найдено ничего.
стр. 85 GOTO (c)
Кликерм сохраняет с альфа каналом 32 бита. Ищется всё прекрасно. При создании в 24 бита без альфы тоже всё нормально.
Он альфа канал не задействует, прозрачность в функциях по другому задаётся.
-
Ок, спасибо)
-
Допилил бота, выношу на Ваш суд :D
Бот умеет ловить на 3 удочки, определяет момент начала клева, активирует соответствующую удочку, корректно определяет момент подсечки, подсекает и вываживает рыбу. Рыбачит до полного садка, затем идет на базу, продает всю рыбу из садка и возвращается на локацию, где вновь начинает ловить. И так до "посинения" пока его не остановят или не сломаются снасти (садок) или не кончится наживка. За этим необходимо следить вручную. Можно, конечно, это все автоматизировать, но увеличится нагрузка на процессор, да и проверку снастей делаем редко, посему будет вручную. Благодарю всех, кто помогал и подсказывал, без Вас бы не обошелся :).
Чуть позже, распишу как его настроить и использовать.
#ps2_keyboard
$x1 = 840
$y1 = 470
$x2 = 1280
$y2 = 505
// подпрограмма вываживания рыбы
SUB(VYLOV)
WAITMS (300)
$a = 1
WHILE ($a = 1)
GETSCREEN (540, 280, 590, 330)
COLORMODE (6, 540, 280, 590, 330)
IF_PICTURE_IN (540, 280, 590, 330, "kurs.bmp", -1, 70)
$a = 0
ELSE
GETSCREEN ($x11, $y1, $x21, $y2)
COLORMODE (6, $x11, $y1, $x21, $y2)
IF_PICTURE_IN ($x11, $y1, $x21, $y2, $e, -1, 70)
WAITMS (300)
ELSE
$a = 0
END_IF
END_IF
END_CYC
// подсечка
WAIT (RND(0.3, 0.5))
KEYPRESS (#SPACE)
WAIT (RND(0.3, 0.5))
// вываживание
$a = 1
WHILE($a = 1)
GETSCREEN (540, 280, 590, 330)
COLORMODE (6, 540, 280, 590, 330)
IF_PICTURE_IN (540, 280, 590, 330, "kurs.bmp", -1, 70)
KEYDOWN (#H)
WAITMS (175)
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (175)
KEYUP (#G)
WAITMS (5)
ELSE
WAITMS (300)
KEYPRESS (#T)
$a = 0
END_IF
END_CYC
WAIT (1)
END_SUB
// основное тело программы
WAIT (2)
KEYPRESS (#1) // заброс удочки 1
LCLICK (RND(838,846), RND(412,420))
WAIT (2)
KEYPRESS (#2) // заброс удочки 2
LCLICK (RND(1080,1120), RND(380,400))
WAIT (2)
KEYPRESS (#3) // заброс удочки 3
LCLICK (RND(1242,1250), RND(351,359))
WAIT (2)
MOVE (550, 290) // перемещение курсора
$c = 1
WHILE($c = 1)
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "1kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "11kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "2kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1090
$x21 = 1130
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "22kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1090
$x21 = 1130
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "3kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "33kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
IF($c = 1)
GETSCREEN (355, 550, 460, 580) // проверка садка
COLORMODE (6, 355, 550, 460, 580)
IF_PICTURE_IN (355, 550, 460, 580, "sadok.bmp", -1, 90)
WAIT (0.5)
ELSE
$c = 0
LCLICK (RND(1285,1305), RND(35,55)) // возврат на базу
WAIT (RND(3,5))
LCLICK (RND(370,450), RND(558,573)) // открытие садка
WAIT (RND(3,5))
LCLICK (RND(1030,1120), RND(453,468)) // продажа рыбы
WAIT (RND(3,5))
LCLICK (RND(690,780), RND(402,417)) // подтверждение продажи
WAIT (RND(3,5))
LCLICK (RND(805,895), RND(402,417)) // рыба продана
WAIT (RND(3,5))
LCLICK (RND(370,450), RND(582,597)) // переход на локальную карту
WAIT (RND(3,5))
LCLICK (RND(755,775), RND(245,265)) // переход на локацию
WAIT (RND(3,5))
END_IF
END_IF
END_CYC
-
Итак, приступим к настройке бота под твои, конкретно твои нужды, мой юный
паддаван , гм...рыболов.
Делать мы это будем пошагово и неторопясь :). Во первых строках своего письма, спешу сообщить тебе, мой друг, о первой строке моего бота...если у тебя нет PS/2 клавиатуры, то смело удаляй первую строку - она тебе не нужна :)
1. Запускаем "Fantast Fish" и "Кликерман" в кликере жмем кнопку "Менеджер окон", выбираем из списка нашу рыбалку и смотрим на параметры окна. Вводим необходимые нам циферки в поля "X", "Y" - координаты левого верхнего левого окна программы, "Ширина", "Высота" - это, как ты уже догадался, ширина и высота окна программы. Я рекомендую располагать окно в правых 3/4 экрана. К примеру, мое разрешение 1366х768 и задаю я такие параметры окна: 350, 0, 1000, 750. Эти цифирки необходимо записать (запомнить, выколоть на спине и т.д.) потому что в боте идет четкая привязка к координатной сетке и нужно будет вводить их каждый раз, когда ты запускаешь рыбалку и бота. Функция определения "hwnd" окна (и еже с ней) у меня не срабатывали, если что..., как сказал Oraven: "...вот такое у тебя, брат, окно..". Теперь нам нужно поймать хотя бы одну рыбку и положить ее в садок (пригодится позже, я объясню ниже).
2. Теперь нам необходимо определить точки, в которые мы будем забрасывать удочки. С помощью форума определяемся, где и что будем ловить, с помощью эхолота находим 3 точки, в которые забрасываем удочки и после того как решились, вносим координаты в мозг бота, удочка №1 - строка 61, удочка №2 - строка 65, удочка №3 - строка 69. Чтобы нас не поймали на использовании бота, координаты вносим так: точка заброса +- 4 пикселя, ибо невозможно руками попадать точно в одну и ту же координату на протяжении многих и многих часов. К примеру, моя удочка №1 забрасывается в координату 842, 416.
3. Пункт, как говорится №3. Важный пункт, не пропусти его, бо тут мы будем прикручивать индикатор по которому определяется, а схавала ли рыба наживку и не пора ли, ее вытягивать и до каких пор тянуть эту самую рыбу, пока она не окажется в садке.
Тебе необходимо найти такую точку на активной карте (т.е. там, где ты еще можешь забросить удочку и где индикатор удочки будет иметь вид "поплавка"), где индикатор подсечки (типа "треугольник") будет находится в месте, где фон вокруг него будет пассивным. Я, нашел такое место в тени от деревьев, ты, конечно, можешь найти другое место, но никто не гарантирует, что потом программа найдет твой индикатор подсечки. Координату забиваем в строку 72. Тута, я рандом координат не делал, ибо лень :) потом сделаю ::), а может и не сделаю, но если есть желание, сделай сам.
Итак, мой френд, ты уже внес три координаты для заброса удочек и можешь попробовать запустить бота, он конечно же работать не будет, но забросить все 3 твои удочки, просто обязан, а также должен переместить курсор в выбранную тобою точку. Если сего не происходит, то начинай с самого начала, пока не добьешься заброса в нужные тебе 3 точки. Не забывай останавливать бота по команде "Alt+S'. Если все у тебя получилось, то возьми с полки пирожок и идем дальше. Не забудь сохранить изменения в боте, они нам еще пригодятся :).
4. В этом пункте , мы будем задавать область для поиска индикаторов поклевки.
Запускаем бота ('Alt+A'), эабрасываем удочки и останавливаем бота. ИтоГо, на экране мы видим закинутые удочки и внизу 3 квадратика индикаторов поклевки (вот эти квадратики нам и нужны). переходим в режим "Редактор", затем "Включение лупы" и наводим курсор на левый верхний угол индикатора поклевки удочки №1, записываем координаты, наводим курсор на правый нижний угол индикатора поклевки удочки №3, записываем координаты. Теперь от координат левого верхнего угла по 'X" и 'Y' отнимаем по 20 и это будут переменные $x1 и $y1, вносим их в строки 2 и 3. Повторяем для правого нижнего угла, только не отнимаем, а прибавляем и вносим координаты в строки 4 и 5. Введение переменных, обусловлено их многократным использованием, аж целых 6 раз в одном прогоне программы :o (хотя это не так и важно, программер, я так себе 8))
5. В котором мы найдем координаты кнопки "Садок".
Кнопка "Садок" должна быть зеленой, то есть, ты еще не наловил полный садок рыбы. Определяем координаты для поиска изображения кнопки "Садок", левый верхний - 20, правый нижний + 20 и вносим получившиеся координаты в строчки 129, 130, 132. Расписывать действия не буду, ибо ты уже опытный и это уже умеешь, если же нет, то громко скажи " ОЙ, ВСЕ!" и начинай ловить руками :P (шутка юмора такая, ога), короч тренируйся, пока не получится.
6. Пункт, рассказывает тебе, дружище, как уйти на базу, продать выловленную рыбу и вернуться на локацию для продолжения рыбалки.
Наводим курсор на "домик" - переход на базу, определяем границы рандома и вносим их в строку 136.
Жмем мышкой на "домик" и переходим на базу.
На базе, наводим курсор на кнопку "Садок" (ну да, снова "Садок" ну а фигли, не я такой, игра так сделана) определяем координаты (не забываем про границы рандома) и вносим в строку 138, жмем кнопку "Садок" и выплывает окно садка в котором мы находим кнопку "Продать все", (вот тут-то нам и пригодилась рыба, которую мы поймали вручную, в самом начале), определяем ее координаты, в смысле кнопки, (границы рандома), вносим в строку 140 и жимкаем эту кнопку.
Появляется окно, в котором нас спрашивают, а точно продать (название окна - "Продать все?")?, вновь определяем координаты (границы рандома) кнопки "Продать" и вносим в строку 142.
Появляется окно, в котором нас уведомили, что мы продали рыбу на какую-то огромную сумму, оно называется "Продажа рыбы". В этом окне, нам нужно найти кнопку "Закрыть" и внести ее координаты (границы рандома) в строку 142. Закрываем окно с уведомлением.
Далее, ищем кнопку "Карта" (ну дык, слева посмотри) определяем координаты (границы рандома), вносим в строку 146, жмем эту кнопку и выходим в локальную карту.
На локальной карте, выбираем кнопку локации в которой мы начинали/продолжали ловить рыбу, определяем ее координаты (границы рандома), жмем кнопку и переходим в локу, где будем рыбачить. Ну а дальше, бот сам забросит удочки, проверит садок и при необходимости уйдет на базу, продаст рыбу, вернется на локу и продолжит 8).
7.Воооот, теперича друже, мы с тобой переходим в редактирование подпрограммы подсечки и вываживания. Оно не так страшно, как ты думаешь,. Ну блин, подпрограмма, слово то какое-то матершинное. Это как звание "подполковник", т.е. находящийся под "полковником"
Не боись, осилим. Подпрограмма, это программа, которая выполняется внутри программы (сам то понял что сказал?). ;D
Так, заканчиваем, завтра продолжу 8)
-
Ну нифига себе автоматизация. А научить бота самого все это находить? А то получается полуфабрикат.
Все эти чудо шаги пройдет только истинный рыболов, в смысле - человек у которого терпение безгранично. И то, только если будет постоянно напоминать себе известную фразу: "лучше день потерять зато потом за час долететь".
-
На самом деле, там все просто и эти шаги, если играешь руками, делаешь каждый раз. Нужно внести всего-то 7 координат (хотя, нет вру - 14 точек). Морозиться с автоматическим определением координат как-то не очень хочется :) да и бот разрастется, как добрый кабанчик :o А так один раз забил точки и все.
-
Продолжаем настраивать бота.
7. Воооот, теперича друже, мы с тобой переходим в редактирование подпрограммы подсечки и вываживания. Оно не так страшно, как ты думаешь,. Ну блин, подпрограмма, слово то какое-то матершинное. Это как звание "подполковник", т.е. находящийся под "полковником"
Не боись, осилим. Подпрограмма, это программа, которая выполняется внутри программы (сам то понял что сказал?). ;D
В строки 12, 13 и 15 вносим координаты области, в которой будем искать индикатор определения момента подсечки (это из пункта №3). Т.е. если рыба хапнет крючек, то изображение поплавка сменится на изображение курсора (типа треугольничек такой, повернутый влево на 45 градусов).
Далее в строки 36, 37 и 39 снова пишем те же самые координаты. Не забудь расширить область поиска на 10-20 пикселей.
Ну вот собственно и все с подпрограммой 8)
8. Возвращаемся к нашим баранам, ой, к основной программе :)
В строки 81 (левый верх), 82 (правый низ) и 88 (левый верх), 89 (правый низ) вписываем область поиска индикатора удочки №1 (квадратик слева от первой удочки). Заметь, что вписываем только координаты по "Х", ибо координаты по "Y" мы уже описывали в строках 3 и 5, а они, как ты уже понял, не меняются.
Точно также вписываем координаты "X" для удочки №2, строки 95, 96 и 102, 103.
Ищем квадратик для удочки №3 и вписываем координаты в строки 109, 110 и 116, 117.
На этом самый муторный этап настройки бота заканчивается и его можно смело запустить в работу ;D
Запустил? И ничего не работает? А кто сказал что будет легко???
Ты же еще не сделал картинки, по которым бот будет работать. Итак, начинаем креативить :P
Нам понадобится 8 шт скриншотов:
- "kurs.bmp" - скрин курсора из пункта №3
- "1kl.bmp" - индикатор удочки №1 когда рыба клюет, но удочка не активна
- "11kl.bmp" - индикатор удочки №1 когда рыба клюет, удочка активна
- "2kl.bmp" - индикатор удочки №2 когда рыба клюет, но удочка не активна
- "11kl.bmp" - индикатор удочки №2 когда рыба клюет, удочка активна
- "3kl.bmp" - индикатор удочки №3 когда рыба клюет, но удочка не активна
- "33kl.bmp" - индикатор удочки №3 когда рыба клюет, удочка активна
- "33kl.bmp" - скриншот неполного (зеленого) садка
Для облегчения твоей нелегкой доли, в деле изготовления картинок, вот тебе маленькая программка для делания скринов:
$x1 = 550
$y1 = 290
$x2 = 580
$y2 = 320
$z = "kurs.bmp"
WAIT (2)
KEYPRESS (#1)
LCLICK ($x1, $y1)
WAIT (2)
GETSCREEN ($x1-10, $y1-10, $x2+10, $y2+10) // делаем снимок в буфер кликера
COLORMODE (6, $x1-10, $y1-10, $x2+10, $y2+10)
SCREENSHOTEX ($x1-10, $y1-10, $x2+10, $y2+10, "Image_", 0) // сохраняем снимок
HALT // стоп
Где $x1, $y1, $x2, $y2 координаты области скрина.
Убираем из первого слота удочку, вписываем в строки 1, 2, 3, 4 координаты курсора из пункта №3 (строка 72 основной программы бота), жмем 'Alt+A' и получаем скрин в папке "screens" кликермана. Грузим полученный скрин в графический редактор, вырезаем изображение курсора размером ~ 20х20 пикселей и сохраняем файл под именем "kurs.bmp" в папке с кликерманом.
В программе изготовления скринов комментим строки 7, 8, 9 и разбираемся со скрином садка (он будет побольше чем 20х20 пикселей).
Так же делаем скрины индикаторов удочек (6 шт).
Все изготовленные файлы складываем в рабочую папку кликермана и вуаля...у нас все готово для автоматической рыбалки! 8)
Запускаем рыбалку, запускаем кликенмана, жмем 'Alt+A' и идем пить пиво, пока бот ловит рыбу :D
На этом, мой поток сознания заканчивается, до скорых встреч, мой юный паддаван! Ни хвоста, ни чешуи тебе :)
-
Дык вопросы в личке задают, а тут расписал один раз и все 8)
Ну и на всяк случай прикладываю архив со скринами, которые нужны.
Добавил небольшое видео:
https://drive.google.com/file/d/0B2p1e64YGUkkZHBnMkZaWWg1YkE/view?usp=sharing
-
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104). Причем, код сначала проверил - все сработало, а вот в окне рыбалки прыгает а не плавно ведет :'(
Это особенность окна или я туплю?
#ps2_keyboard
$x1 = 840
$y1 = 470
$x2 = 1280
$y2 = 505
// подпрограмма обязательно выше вызова
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_SPEED = 30 // множитель скорости
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
IF($MOVE_SPEEDVAR < 1)
$MOVE_SPEEDVAR = 1
END_IF
$MOVE_step=($dist-1)/$MOVE_SPEEDVAR
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i, $MOVE_i<INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
WAITMS(1)
END_CYC
MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB
// подпрограмма вываживания рыбы
SUB(VYLOV)
WAITMS (300)
$a = 1
WHILE ($a = 1)
GETSCREEN (540, 280, 590, 330)
COLORMODE (6, 540, 280, 590, 330)
IF_PICTURE_IN (540, 280, 590, 330, "kurs.bmp", -1, 70)
$a = 0
ELSE
GETSCREEN ($x11, $y1, $x21, $y2)
COLORMODE (6, $x11, $y1, $x21, $y2)
IF_PICTURE_IN ($x11, $y1, $x21, $y2, $e, -1, 70)
WAITMS (300)
ELSE
$a = 0
END_IF
END_IF
END_CYC
// подсечка
WAIT (RND(0.3, 0.5))
KEYPRESS (#SPACE)
WAIT (RND(0.3, 0.5))
// вываживание
$a = 1
WHILE($a = 1)
GETSCREEN (540, 280, 590, 330)
COLORMODE (6, 540, 280, 590, 330)
IF_PICTURE_IN (540, 280, 590, 330, "kurs.bmp", -1, 70)
KEYDOWN (#H)
WAITMS (150)
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (175)
KEYUP (#G)
WAITMS (5)
ELSE
WAITMS (300)
KEYPRESS (#T)
$a = 0
END_IF
END_CYC
WAIT (1)
END_SUB
// основное тело программы
WAIT (2)
KEYPRESS (#1) // заброс удочки 1
LCLICK (RND(838,846), RND(412,420))
WAIT (2)
KEYPRESS (#2) // заброс удочки 2
LCLICK (RND(1080,1120), RND(380,400))
WAIT (2)
KEYPRESS (#3) // заброс удочки 3
LCLICK (RND(1242,1250), RND(351,359))
WAIT (2)
//MOVE (550, 290) // перемещение курсора
mouse_move(550,290) // двигаем мышь сюда
WAITMS(500)
$c = 1
WHILE($c = 1)
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "1kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "11kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "2kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1080
$x21 = 1140
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "22kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1080
$x21 = 1140
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "3kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "33kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
IF($c = 1)
GETSCREEN (355, 550, 460, 580) // проверка садка
COLORMODE (6, 355, 550, 460, 580)
IF_PICTURE_IN (355, 550, 460, 580, "sadok.bmp", -1, 90)
WAIT (0.5)
ELSE
$c = 0
LCLICK (RND(1285,1305), RND(35,55)) // возврат на базу
WAIT (RND(3,5))
LCLICK (RND(370,450), RND(558,573)) // открытие садка
WAIT (RND(3,5))
LCLICK (RND(1030,1120), RND(453,468)) // продажа рыбы
WAIT (RND(3,5))
LCLICK (RND(690,780), RND(402,417)) // подтверждение продажи
WAIT (RND(3,5))
LCLICK (RND(805,895), RND(402,417)) // рыба продана
WAIT (RND(3,5))
LCLICK (RND(370,450), RND(582,597)) // переход на локальную карту
WAIT (RND(3,5))
LCLICK (RND(755,775), RND(245,265)) // переход на локацию
WAIT (RND(3,5))
END_IF
END_IF
END_CYC
-
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104).
Ты про этот? http://crapware.aidf.org/forum/index.php?topic=8.msg2276#msg2276
Потерял обнуление переменной цикла
FOR($MOVE_i=0, ......
для версии 4.11
-
Спасибо буду пробовать дальше
-
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104).
Ты про этот? http://crapware.aidf.org/forum/index.php?topic=8.msg2276#msg2276
Потерял обнуление переменной цикла
FOR($MOVE_i=0, ......
для версии 4.11
Ввел обнуление переменной, все равно не арбайтен(
-
С помощью более опытных и понимающих товарищей, разобрался с плавным перемещением мыши прикрутил таки к боту. Также, поправил кое-где задержки, чтоб было больше похоже на человека ;D
Также чуток изменил подпрограмму вываживания рыбы, для снижения нагрузок на удилище и катушку при вытягивании. Теперь можно смело тянуть рыбу в 30-35% от мощности снастей (хотя, рекомендуется не более 20%).
#name "FanFish"
#ps2_keyboard
$x1 = 840
$y1 = 470
$x2 = 1280
$y2 = 505
// подпрограмма плавного движения мыши
SUB(MOUSE_MOVE, $MOVE_END_X, $MOVE_END_Y)
$MOVE_SPEED = 25 // множитель скорости, вносим вручную
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X, $MOVE_END_Y, $MOVE_Start_X, $MOVE_Start_Y)
$MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
IF ($MOVE_SPEEDVAR < 1)
$MOVE_SPEEDVAR = 1
END_IF
$MOVE_step = ($dist-1)/$MOVE_SPEEDVAR
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR ($MOVE_i=0, $MOVE_i<INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE (ROUND($MOVE_X, 0), ROUND($MOVE_Y, 0))
WAITMS (1)
END_CYC
MOVE ($MOVE_END_X, $MOVE_END_Y)
$LC1 = $MOVE_END_X
$LC2 = $MOVE_END_Y
END_SUB
// подпрограмма подсечки и вываживания рыбы
SUB(VYLOV)
WAITMS (300)
// ожидание монента подсечки и проверка, а не бросила ли рыба наживку
$a = 1
WHILE ($a = 1)
GETSCREEN (530, 270, 600, 340)
COLORMODE (6, 530, 270, 600, 340)
IF_PICTURE_IN (530, 270, 600, 340, "kurs.bmp", -1, 70)
$a = 0
ELSE
GETSCREEN ($x11, $y1, $x21, $y2)
COLORMODE (6, $x11, $y1, $x21, $y2)
IF_PICTURE_IN ($x11, $y1, $x21, $y2, $e, -1, 70)
WAITMS (300)
ELSE
$a = 0
END_IF
END_IF
END_CYC
// подсечка
WAIT (RND(0.3, 0.5))
KEYPRESS (#SPACE)
WAIT (RND(0.3, 0.5))
// вываживание
$b = 1
WHILE ($b = 1)
GETSCREEN (530, 270, 600, 340)
COLORMODE (6, 530, 270, 600, 340)
IF_PICTURE_IN (530, 270, 600, 340, "kurs.bmp", -1, 70)
KEYDOWN (#H)
WAITMS (150)
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (140)
KEYUP (#G)
WAITMS (200)
ELSE
WAITMS (300)
KEYPRESS (#T)
$b = 0
END_IF
END_CYC
WAIT (1)
END_SUB
// основное тело программы
WAIT (2)
// заброс удочки 1
KEYPRESS (#1)
MOUSE_MOVE (RND(838, 846), RND(412, 420))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (2)
// заброс удочки 2
KEYPRESS (#2)
MOUSE_MOVE (RND(1096, 1104), RND(386, 394))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (2)
// заброс удочки 3
KEYPRESS (#3)
MOUSE_MOVE (RND(1242, 1250), RND(351, 359))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (2)
// сдвигаем курсор
MOUSE_MOVE (RND(545, 555), RND(285, 295))
WAITMS (500)
// ожидание поклевки и вылов рыбы
$c = 1
WHILE ($c = 1)
GETSCREEN ($x1, $y1, $x2, $y2)
COLORMODE (6, $x1, $y1, $x2, $y2)
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "1kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "11kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = 840
$x21 = 875
$e = "11kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "2kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1080
$x21 = 1140
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "22kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = 1080
$x21 = 1140
$e = "22kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "3kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "33kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = 1245
$x21 = 1280
$e = "33kl.bmp"
VYLOV()
ELSE
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
// проверка садка
IF ($c = 1)
GETSCREEN (355, 550, 460, 580)
COLORMODE (6, 355, 550, 460, 580)
IF_PICTURE_IN (355, 550, 460, 580, "sadok.bmp", -1, 80)
WAIT (0.5)
ELSE
$c = 0
WAIT (RND(2, 4))
MOUSE_MOVE (RND(1285,1305), RND(35,55)) // возврат на базу
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(370,450), RND(558,573)) // открытие садка
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(1030,1120), RND(453,468)) // продажа рыбы
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(690,780), RND(402,417)) // подтверждение продажи
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(805,895), RND(402,417)) // рыба продана
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(370,450), RND(582,597)) // переход на локальную карту
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
MOUSE_MOVE (RND(755,775), RND(245,265)) // возврат на локацию
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(3,5))
END_IF
END_IF
END_CYC
-
Привет BubukaBomb, сегодня сделал все как ты написал, все получилось, но после того как бот закидывает 3 удочки, он сразу же идет на базу и продает всю рыбу. Т.е не ждет пока рыба клюнет. что может быть не так? Координаты все твои, весь код твой, лока перешеек, короче все как и у тебя, может в скайп позвонишь мне посмотришь, в долгу не останусь? скайп makar25619, спасибо
-
вопросик а можете сделать самого простого бота чтобы ловил на 1 спининг и никуда неходил ничего непроверял и непродавал тупо ловил ибо сам я в этом просто нуб
-
заплачу за бота. необходимо ловля на 1 удочку и 1 донку с переходом на базу,продажа рыбы и обратно
-
Таки я не понял, нужно ловить на спиннинг или все же 1 поплавок + 1 донка? Спиннинг у меня есть - ловит нормально, сделать 2-е удочки легко из 3-х.
-
тут дело вот в чем версия 4,11 почемуто скрины черного экрана делает а 4,07 невидит клаву вот и немогу определиться как проще будет сделать бота и на что отпишись в скайп prostowild я в инвизе как увижу сообщугу отвечу
-
важно чтобы ловил на 2 удочки разного типа
-
Ответил в личку
P.S. Там на главной странице сайта есть кошельки, вот туда и закинь денег, скок не жалко)
-
Всем привет! Пришло время для новой версии бота фантастической рыбалки. Так как в личку достаточное количество вопросов, вновь постараюсь объяснять поподробнее.
Новый бот обзавелся потоками, которые отслеживают всплывающие окна (вылов клада, достижения, разрыв связи с сервером) и автоматически закрывают все эти окна и восстанавливают связь с сервером. Также бот отслеживает наличие крючков на уде и если крючок износился, автоматически ставит из рюкзака крючок на удочку (для этого нужно иметь в рюкзаке запас в 3-6 крючков). Также бот отслеживает нагрузку (диапазон контроля регулируется) на снасти и при перегрузе сбрасывает рыбу во избежание обрыва снастей. Естественно стандартно ловит, идет на базу, продает рыбу и возвращается на локу для ловли и продолжает ловить. В теле бота есть заготовка для сдачи рыбы в лабораторию, если кому нужно, удаляем комментарии (2 косые черты), прописываем свои координаты кнопок в лабе и бот будет сдавать рыбу в лабу, а не продавать ее. Проведена дальнейшая оптимизация бота, теперь он грузит процессор всего на 3-4%.
Отдельно написал скрипт (бота) для ловли на спиннинг (пока только на один спиннинг), спин должен стоять в 1-м слоте.
Итак, скачиваем архив, распаковываем его, копируем все файлы из архива в корневую папку Кликермана. Можно смело применять мои файлы скринов, как показала практика - все будет работать.
Бот предназначен для игры в оконном режиме "без привязки", с окном клиента игры размером: ширина=1000, высота=750. Координаты необходимых точек вносятся при положении окна X=0, Y=0. После внесения всех необходимых координат, можно переместить окно игры в требуемое положение на экране (например X=360, Y=0) и внести новые координаты окна в строки 11 и 13. Размеры и положение окна клиента игры устанавливаются в "Менеджере окон" программы "Кликерман".
Запускаем кликерман, запускаем ФФ в оконном режиме, устанавливаем положение окна X=0, Y=0, размеры окна: ширина=1000, высота=750.
Удочки должны идти по порядку слева направо - 1, 2, 3.
В строке 5 прописано применение ps/2 клавиатуры, если таковой нет, то строку следует закомментировать.
В строки 15-25 вносим координаты точек заброса удочек 1, 2, 3.
В строки 27-33 вносим координаты прямоугольной области, куда будет перемещен курсор, чтоб не мешался (важно - курсор должен быть на воде).
В строки 35-37 вносим координаты центра кружка локации для ловли, на карте.
В строку 39 вносим коэффициент коэффициент контроля нагрузки на снасти. Минимум 26, максимум 115. Рекомендованные значения 30-36, но все подбирается индивидуально, в зависимости от рыбы.
В строку 41 вносим разброс координат при забросе, пикс. Т.е. бот будет кидать удочки не точка в точку, а с рандомом на указанную величину.
В строку 43 вносим период перезаброса удочек, сек. С указанной периодичностью, бот будет перезабрасывать все удочки.
В строках 114, 118 и 120 можно регулировать (при необходимости) время нажатия клавиш "H" и "G" и паузу между циклами "H"-"G", опять же подбирается индивидуально, в зависимости от веса вылавливаемой рыбы.
Настройка спиннинга отличается только строкой 35, в эту строку вносим продолжительность проводки. Если проводка №1, то ставим 19 сек, если проводка №2, то ставим 10 сек. Другие проводки не пробовал, но думаю алгоритм понятен.
На этом, ввод необходимых переменных заканчивается. В менеджере окон кликермана, вносим нужные нам Х и Y окна ФФ и вводим эти значения в строки 11 и 13 (у меня например Х=360, Y=0 это правый верхний угол моего экрана).
Можно запускать и рыбачить. Мои скрипты написаны для ловли рыбца на локации Ладога (перешеек), спиннинг на локации Подмосковье (туманная гладь).
При необходимости сменить локацию, нужно прописать новые координаты для заброса удочек (строки 15-25), координаты для перемещения курсора (строки 27-33) и координаты кружка локации для ловли, на карте (строки 35-37).
Ну вот как-то так))) Ни хвоста, ни чешуи всем рыболовам :)
Ах, да, чуть не забыл, сильно не рекомендую забрасывать удочки близко к левому или правому краям окна ФФ, по меньшей мере на 250-300 пикс. Там идет какой-то неконтролируемый сдвиг картинок и бот сбивается.
-
Внимание всем кто использует кликермана для ФФ!!!
После последнего обновления игры, возникли проблемы с работой кликермана в окне ФФ. Возможно, разрабы добавили какую-то защиту от кликера. Ни в коем случае, во избежание бана в игре, не нужно жаловаться в чате и на форуме на то, что игра глючит. Пути решения я уже нащупываю (вроде получается), через несколько дней будет решение проблемы, а может и не будет...как получится ;D
-
Вариант спиннинга каким то чудом после обновы ФФ работает.
Наверняка в есть кое какие ошибки в скрипте, строго не судите, это мой первый скрипт, написанный с легкой подачи BubukaBomb )
usb клавиатура
координаты для второго монитора ( во весь экран )
к окну clickermann не привязывал
Снасти на 70 кг.
База Дунай
Локация Западная Дельта
// проверяем садок
SUB (sadok)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (1406, 532, 1519, 570, "sadok.bmp", -1, 100)
$check = 1
LCLICK (RND(2640,2649), RND(44,46)) // возврат на базу
WAIT (RND(3,5))
LOGWRITE ("Переход на базу")
LCLICK (RND(1406,1477), RND(549,553)) // открытие садка
sound("blin.wav")
WAIT (RND(3,5))
LCLICK (RND(2321,2359), RND(447,451)) // продажа рыбы
WAIT (RND(3,5))
LCLICK (RND(1857,1900), RND(396,401)) // подтверждение продажи
WAIT (RND(3,5))
LCLICK (RND(2015,2049), RND(401,397)) // рыба продана
WAIT (RND(3,5))
LOGWRITE ("Удачная сделка")
LCLICK (RND(1414,1439), RND(572,570)) // переход на локальную карту
WAIT (RND(3,5))
LCLICK (1939,296) // переход на локацию
WAIT (RND(3,5))
WAITMS(1)
// заброс удочки 2
keyDown(98)
WAIT (RND(0.1, 0.2))
keyUp(98)
WAIT (RND(0.1, 0.2))
LOGWRITE ("заброс удочки ")
LCLICK (RND(1835,1835), RND(273,295))
WAIT (RND(4, 5))
goto (go)
ELSE
goto (go)
WAITMS(50)
END_IF
END_IF
END_SUB
SUB(skan)
waitms(100)
GETSCREEN
IF_PICTURE_IN (1699,450, 2189,495, "2kl.bmp", -1, 100)
$check1 = 1
// Подсечка
LOGWRITE ("Клюнула")
keyDown(32)
WAIT (RND(0.1, 0.2))
LOGWRITE ("Подсечка")
keyUp(32)
WAIT (RND(0.1, 0.2))
// Вываживание
keyDown(71)
WAITMS (RND(100, 600))
keyUp(71)
WAITMS (RND(100, 250))
LOGWRITE ("Вываживаю")
keyDown(72)
WAITMS (RND(200, 400))
keyUp(72)
WAITMS (RND(50, 100))
LOGWRITE ("Вываживаю2")
keyDown(71)
WAITMS (RND(500, 600))
keyUp(71)
WAITMS (RND(50, 100))
LOGWRITE ("Вываживаю3")
keyDown(72)
WAITMS (RND(200, 400))
keyUp(72)
WAITMS (RND(100, 200))
LOGWRITE ("Вываживаю4")
keyDown(71)
WAITMS (RND(500, 600))
keyUp(71)
WAITMS (RND(100, 300))
LOGWRITE ("Вываживаю5")
keyDown(72)
WAITMS (RND(200, 400))
keyUp(72)
WAITMS (RND(100, 200))
LOGWRITE ("Вываживаю6")
keyDown(71)
WAITMS (RND(500, 600))
keyUp(71)
WAITMS (RND(100, 300))
LOGWRITE ("Вываживаю7")
keyDown(72)
WAITMS (RND(200, 400))
keyUp(72)
WAITMS (RND(100, 200))
LOGWRITE ("Вываживаю8")
keyDown(71)
WAITMS (RND(500, 600))
keyUp(71)
WAITMS (RND(100, 250))
LOGWRITE ("Вываживаю 9")
keyDown(72)
WAITMS (RND(200, 300))
keyUp(72)
WAITMS (RND(100, 300))
LOGWRITE ("Вываживаю 10")
keyDown(71)
WAITMS (RND(400, 600))
keyUp(71)
WAITMS (RND(100, 300))
LOGWRITE ("Вываживаю 11")
keyDown(72)
WAITMS (RND(200, 300))
keyUp(72)
WAITMS (RND(100, 200))
LOGWRITE ("Вываживаю 12")
keyDown(71)
WAITMS (RND(500, 600))
keyUp(71)
WAITMS (RND(100, 250))
LOGWRITE ("Успех")
keyDown(84) // Клавиша T
WAIT (RND(0.1, 0.2))
keyUp(84)
LOGWRITE ("Клавиша T")
WAIT (RND(2, 5))
sadok ()
waitms(500)
ELSE
END_SUB
$check1 = 0
WHILE($check1 = 0)
waitms(300)
// заброс удочки 2
keyDown(98)
WAIT (RND(0.1, 0.2))
keyUp(98)
WAIT (RND(0.1, 0.2))
LOGWRITE ("заброс удочки ")
LCLICK (RND(1835,1835), RND(273,295))
WAIT (RND(4, 5))
go:
LOGWRITE ("Прит")
keyDown(71)
WAIT(3)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("1")
keyDown(71)
WAIT(3)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("2")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("3")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("4")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("5")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("6")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("7")
keyDown(71)
WAIT(2)
keyUp(71)
waitms(5)
skan ()
LOGWRITE ("8")
keyDown(71)
WAIT(1)
keyUp(71)
waitms(5)
skan ()
keyDown(84) // Клавиша T
waitms(152)
keyUp(84)
LOGWRITE ("Клавиша T")
WAIT (RND(4, 5))
goto (go)
ELSE
WAITMS(50)
END_IF
END_IF
END_CYC
-
Привет BubukaBomb, сегодня сделал все как ты написал, все получилось, но после того как бот закидывает 3 удочки, он сразу же идет на базу и продает всю рыбу. Т.е не ждет пока рыба клюнет. что может быть не так? Координаты все твои, весь код твой, лока перешеек, короче все как и у тебя, может в скайп позвонишь мне посмотришь, в долгу не останусь? скайп makar25619, спасибо
таже проблема
-
Написал небольшой скрипт на одну удочку, подробнее тут (http://zhyk.ru/forum/showthread.php?t=1025219)
-
вообще ничего не понял(((
-
наконец то я неуч разобрался что к чему:) ну как и было сказано после обновы не работает,а когда рабочая версия будет? заранее благодарен!
-
админ тему можно закрывать у игры поставили хорошую защиту.Никакой кликер работать небудет просто тупо выкинет с игры это тут уже не кликер нужен, а программы обходящие защиту типа как на варфейс :(так что тему нужно закрывать 100%.
-
Если прятать кликерман программой "WinHide.SB" то все нормально работает. У меня, по крайней мере, работает. Пробуйте.
-
[spoiler]
Всем привет! Пришло время для новой версии бота фантастической рыбалки. Так как в личку достаточное количество вопросов, вновь постараюсь объяснять поподробнее.
Новый бот обзавелся потоками, которые отслеживают всплывающие окна (вылов клада, достижения, разрыв связи с сервером) и автоматически закрывают все эти окна и восстанавливают связь с сервером. Также бот отслеживает наличие крючков на уде и если крючок износился, автоматически ставит из рюкзака крючок на удочку (для этого нужно иметь в рюкзаке запас в 3-6 крючков). Также бот отслеживает нагрузку (диапазон контроля регулируется) на снасти и при перегрузе сбрасывает рыбу во избежание обрыва снастей. Естественно стандартно ловит, идет на базу, продает рыбу и возвращается на локу для ловли и продолжает ловить. В теле бота есть заготовка для сдачи рыбы в лабораторию, если кому нужно, удаляем комментарии (2 косые черты), прописываем свои координаты кнопок в лабе и бот будет сдавать рыбу в лабу, а не продавать ее. Проведена дальнейшая оптимизация бота, теперь он грузит процессор всего на 3-4%.
Отдельно написал скрипт (бота) для ловли на спиннинг (пока только на один спиннинг), спин должен стоять в 1-м слоте.
Итак, скачиваем архив, распаковываем его, копируем все файлы из архива в корневую папку Кликермана. Можно смело применять мои файлы скринов, как показала практика - все будет работать.
Бот предназначен для игры в оконном режиме "без привязки", с окном клиента игры размером: ширина=1000, высота=750. Координаты необходимых точек вносятся при положении окна X=0, Y=0. После внесения всех необходимых координат, можно переместить окно игры в требуемое положение на экране (например X=360, Y=0) и внести новые координаты окна в строки 11 и 13. Размеры и положение окна клиента игры устанавливаются в "Менеджере окон" программы "Кликерман".
Запускаем кликерман, запускаем ФФ в оконном режиме, устанавливаем положение окна X=0, Y=0, размеры окна: ширина=1000, высота=750.
Удочки должны идти по порядку слева направо - 1, 2, 3.
В строке 5 прописано применение ps/2 клавиатуры, если таковой нет, то строку следует закомментировать.
В строки 15-25 вносим координаты точек заброса удочек 1, 2, 3.
В строки 27-33 вносим координаты прямоугольной области, куда будет перемещен курсор, чтоб не мешался (важно - курсор должен быть на воде).
В строки 35-37 вносим координаты центра кружка локации для ловли, на карте.
В строку 39 вносим коэффициент коэффициент контроля нагрузки на снасти. Минимум 26, максимум 115. Рекомендованные значения 30-36, но все подбирается индивидуально, в зависимости от рыбы.
В строку 41 вносим разброс координат при забросе, пикс. Т.е. бот будет кидать удочки не точка в точку, а с рандомом на указанную величину.
В строку 43 вносим период перезаброса удочек, сек. С указанной периодичностью, бот будет перезабрасывать все удочки.
В строках 114, 118 и 120 можно регулировать (при необходимости) время нажатия клавиш "H" и "G" и паузу между циклами "H"-"G", опять же подбирается индивидуально, в зависимости от веса вылавливаемой рыбы.
Настройка спиннинга отличается только строкой 35, в эту строку вносим продолжительность проводки. Если проводка №1, то ставим 19 сек, если проводка №2, то ставим 10 сек. Другие проводки не пробовал, но думаю алгоритм понятен.
На этом, ввод необходимых переменных заканчивается. В менеджере окон кликермана, вносим нужные нам Х и Y окна ФФ и вводим эти значения в строки 11 и 13 (у меня например Х=360, Y=0 это правый верхний угол моего экрана).
Можно запускать и рыбачить. Мои скрипты написаны для ловли рыбца на локации Ладога (перешеек), спиннинг на локации Подмосковье (туманная гладь).
При необходимости сменить локацию, нужно прописать новые координаты для заброса удочек (строки 15-25), координаты для перемещения курсора (строки 27-33) и координаты кружка локации для ловли, на карте (строки 35-37).
Ну вот как-то так))) Ни хвоста, ни чешуи всем рыболовам :)
Ах, да, чуть не забыл, сильно не рекомендую забрасывать удочки близко к левому или правому краям окна ФФ, по меньшей мере на 250-300 пикс. Там идет какой-то неконтролируемый сдвиг картинок и бот сбивается.
[/spoiler]
Нечего прятать не надо, кликер работает.
Но вот клев не распознает. После заброса двух удочек и перемещения мыши в указанную область - бездействует. (третью закомментировал, т.к. у меня только 2)
Может кто-то сможет подсказать в чем проблема?
В старой версии кликера (и кода) я бы разобрался, но в новой не удалось..
-
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству. А что бездействует - смотри файлы 1KL.bmp, 11KL.bmp, 2KL.bmp, 22KL.bmp. Бот по ним определяет момент поклевки - изменение картинки.
-
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству. А что бездействует - смотри файлы 1KL.bmp, 11KL.bmp, 2KL.bmp, 22KL.bmp. Бот по ним определяет момент поклевки - изменение картинки.
Пробовал и с его картинками и со своими - безрезультатно. Понять бы как именно скрипт определяет поклевку... В более старой версии это было ясно сразу, а тут нужна помощь с разбором.
Понятно, что по изменению картинки. Но где в скрипте указаны их координаты и как их "прочитать" в нынешнем виде?
// ожидание поклевки и вылов рыбы
$t = $_time_t + $TUD
$check = 0
WHILE($check = 0)
$C = 1
WHILE ($C = 1)
GETSCREEN ($Xud11+6+$Xw, $y1+$Yw, $Xud31+32+$Xw, $y2+$Yw+1)
COLORMODE (6, $Xud11+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw)
IF_PICTURE_IN ($Xud11+6+$Xw, $y1+$Yw, $Xud11+31+$Xw, $y2+$Yw, "1kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = $Xud11-10+$Xw
$x21 = $Xud11+40+$Xw
$x31 = $Xud11
$e = "11kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud11+6+$Xw, $y1+$Yw, $Xud11+31+$Xw, $y2+$Yw, "11kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = $Xud11-10+$Xw
$x21 = $Xud11+40+$Xw
$x31 = $Xud11
$e = "11kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud21+6+$Xw, $y1+$Yw, $Xud21+31+$Xw, $y2+$Yw, "2kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = $Xud21-10+$Xw
$x21 = $Xud21+40+$Xw
$x31 = $Xud21
$e = "22kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud21+6+$Xw, $y1+$Yw, $Xud21+31+$Xw, $y2+$Yw, "22kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = $Xud21-10+$Xw
$x21 = $Xud21+40+$Xw
$x31 = $Xud21
$e = "22kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud31+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw, "3kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = $Xud31-10+$Xw
$x21 = $Xud31+40+$Xw
$x31 = $Xud31
$e = "33kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud31+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw, "33kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = $Xud31-10+$Xw
$x21 = $Xud31+40+$Xw
$x31 = $Xud31
$e = "33kl.bmp"
VYLOV()
$check = 1
ELSE
WAITMS(100)
IF($t < $_time_t)
KEYPRESS (#1)
KEYPRESS (#T)
WAIT (2)
KEYPRESS (#2)
KEYPRESS (#T)
WAIT (2)
KEYPRESS (#3)
KEYPRESS (#T)
$t = $_time_t + $TUD
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Может кто-то объяснить что тут делает программа? Не могу понять откуда она берет координаты для скрина, к примеру в строке 7. Т.к. она должна брать скрин на пару сотен пикселей ниже, если я правильно понял. Может проблема в том, что прога не у всех по одинаковым координатам работает, даже с выполненными условиями (указанными BubukaBomb).
Добавлю весь скрипт, чтобы проще было вникнуть:
[spoiler]// Бот предназначен для игры в оконном режиме "без привязки", с окном клиента игры размером: ширина=1000, высота=750. Координаты необходимых точек вносятся при положении окна X=0, Y=0. После внесения всех необходимых координат, можно переместить окно игры в требуемое положение на экране (например X=360, Y=0) и внести новые координаты окна в строки 11 и 13. Размеры и положение окна клиента игры устанавливаются в "Менеджере окон" программы "Кликерман".
#name "Ладога Рыбец"
#ps2_keyboard // использовать, если есть ps/2 клавиатура
THREAD(MAIN, 1)
$y1 = 477
$y2 = 500
$Xw = 360 // координата "X" левого верхнего угла окна
$Yw = 0 // координата "Y" левого верхнего угла окна
$Xud1 = 260 // координата "X" точки заброса удочки № 1
$Yud1 = 402 // координата "Y" точки заброса удочки № 1
$Xud2 = 466 // координата "X" точки заброса удочки № 2
$Yud2 = 403 // координата "Y" точки заброса удочки № 2
$Xud3 = 775 // координата "X" точки заброса удочки № 3
$Yud3 = 393 // координата "Y" точки заброса удочки № 3
$X1kurs = 100 // координата "X1" области куда будет перемещен курсор
$X2kurs = 150 // координата "X2" области куда будет перемещен курсор
$Y1kurs = 430 // координата "Y1" области куда будет перемещен курсор
$Y2kurs = 450 // координата "Y2" области куда будет перемещен курсор
$Xloc = 414 // координата "X" центра кружка локации для ловли, на карте
$Yloc = 255 // координата "Y" центра кружка локации для ловли, на карте
$St1 = 34 // коэффициент контроля нагрузки на снасти (не менее 26)
$R = 4 // разброс координат при забросе, пикс
$TUD = 240 // период перезаброса, сек
$X3kurs = RND ($X1kurs+$Xw, $X2kurs+$Xw)
$Y3kurs = RND ($Y1kurs+$Yw, $Y2kurs+$Yw)
// подпрограмма плавного движения мыши
SUB(MOUSE_MOVE, $MOVE_END_X, $MOVE_END_Y)
$MOVE_SPEED = RND(15, 30)
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X, $MOVE_END_Y, $MOVE_Start_X, $MOVE_Start_Y)
$MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
IF ($MOVE_SPEEDVAR < 1)
$MOVE_SPEEDVAR = 1
END_IF
$MOVE_step = ($dist-1)/$MOVE_SPEEDVAR
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR ($MOVE_i=0, $MOVE_i<INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE (ROUND($MOVE_X, 0), ROUND($MOVE_Y, 0))
WAITMS (1)
END_CYC
MOVE ($MOVE_END_X, $MOVE_END_Y)
$LC1 = $MOVE_END_X
$LC2 = $MOVE_END_Y
END_SUB
// подпрограмма подсечки и вываживания рыбы
SUB(VYLOV)
WAITMS (RND(20, 30))
$A = 1
WHILE ($A = 1)
GETSCREEN ($X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25)
COLORMODE (6, $X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25)
IF_PICTURE_IN ($X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25, "kurs.bmp", 8355711, 70)
$A = 0
ELSE
GETSCREEN ($x11, $y1+$Yw, $x21, $y2+$Yw)
COLORMODE (6, $x11, $y1+$Yw, $x21, $y2+$Yw)
IF_PICTURE_IN ($x11, $y1+$Yw, $x21, $y2+$Yw, $e, -1, 70)
WAITMS (RND(150, 300))
ELSE
$A = 0
END_IF
END_IF
END_CYC
// подсечка
WAITMS (RND(20, 30))
KEYPRESS (#SPACE)
WAITMS (260)
GETSCREEN ($x31+$St1+$Xw, 453, $x31+117+$Xw, 460) // определение нагрузки
COLORMODE (6, $x31+$St1+$Xw, 453, $x31+116+$Xw, 459)
IF_PICTURE_IN ($x31+$St1+$Xw, 453, $x31+116+$Xw, 459, "strel.bmp", 4144959, 60)
LOGWRITE ("Перегруз")
ELSE
WAITMS (RND(20, 30))
// вываживание
$B = 1
WHILE ($B = 1)
GETSCREEN ($X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25)
COLORMODE (6, $X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25)
IF_PICTURE_IN ($X3kurs-5, $Y3kurs-5, $X3kurs+25, $Y3kurs+25, "kurs.bmp", 8355711, 70)
KEYDOWN (#H)
WAITMS (RND(200,250)) // время нажатия клавиши "H"
KEYUP (#H)
WAITMS (5)
KEYDOWN (#G)
WAITMS (RND(150, 200)) // время нажатия клавиши "G"
KEYUP (#G)
WAITMS (RND(20, 35)) // пауза между циклами "H"-"G"
ELSE
WAITMS (5)
KEYPRESS (#T)
$B = 0
END_IF
END_CYC
END_IF
KEYPRESS (#T)
WAITMS (RND(20, 30))
END_SUB
// основная программа
WAIT (2)
// заброс удочки 1
KEYPRESS (#1)
MOUSE_MOVE (RND($Xud1+$Xw-$R, $Xud1+$Xw+$R), RND($Yud1+$Yw-$R, $Yud1+$Yw+$R))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
$Xud11 = $_xmouse-$Xw
WAIT (2)
// заброс удочки 2
KEYPRESS (#2)
MOUSE_MOVE (RND($Xud2+$Xw-$R, $Xud2+$Xw+$R), RND($Yud2+$Yw-$R, $Yud2+$Yw+$R))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
$Xud21 = $_xmouse-$Xw
WAIT (2)
// заброс удочки 3
KEYPRESS (#3)
MOUSE_MOVE (RND($Xud3+$Xw-$R, $Xud3+$Xw+$R), RND($Yud3+$Yw-$R, $Yud3+$Yw+$R))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
$Xud31 = $_xmouse-$Xw
WAIT (2)
// сдвигаем курсор
MOUSE_MOVE ($X3kurs, $Y3kurs)
WAITMS (500)
// ожидание поклевки и вылов рыбы
$t = $_time_t + $TUD
$check = 0
WHILE($check = 0)
$C = 1
WHILE ($C = 1)
GETSCREEN ($Xud11+6+$Xw, $y1+$Yw, $Xud31+32+$Xw, $y2+$Yw+1)
COLORMODE (6, $Xud11+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw)
IF_PICTURE_IN ($Xud11+6+$Xw, $y1+$Yw, $Xud11+31+$Xw, $y2+$Yw, "1kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = $Xud11-10+$Xw
$x21 = $Xud11+40+$Xw
$x31 = $Xud11
$e = "11kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud11+6+$Xw, $y1+$Yw, $Xud11+31+$Xw, $y2+$Yw, "11kl.bmp", -1, 70)
KEYPRESS (#1)
$x11 = $Xud11-10+$Xw
$x21 = $Xud11+40+$Xw
$x31 = $Xud11
$e = "11kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud21+6+$Xw, $y1+$Yw, $Xud21+31+$Xw, $y2+$Yw, "2kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = $Xud21-10+$Xw
$x21 = $Xud21+40+$Xw
$x31 = $Xud21
$e = "22kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud21+6+$Xw, $y1+$Yw, $Xud21+31+$Xw, $y2+$Yw, "22kl.bmp", -1, 70)
KEYPRESS (#2)
$x11 = $Xud21-10+$Xw
$x21 = $Xud21+40+$Xw
$x31 = $Xud21
$e = "22kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud31+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw, "3kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = $Xud31-10+$Xw
$x21 = $Xud31+40+$Xw
$x31 = $Xud31
$e = "33kl.bmp"
VYLOV()
$check = 1
ELSE
IF_PICTURE_IN ($Xud31+6+$Xw, $y1+$Yw, $Xud31+31+$Xw, $y2+$Yw, "33kl.bmp", -1, 70)
KEYPRESS (#3)
$x11 = $Xud31-10+$Xw
$x21 = $Xud31+40+$Xw
$x31 = $Xud31
$e = "33kl.bmp"
VYLOV()
$check = 1
ELSE
WAITMS(100)
IF($t < $_time_t)
KEYPRESS (#1)
KEYPRESS (#T)
WAIT (2)
KEYPRESS (#2)
KEYPRESS (#T)
WAIT (2)
KEYPRESS (#3)
KEYPRESS (#T)
$t = $_time_t + $TUD
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
// проверка садка
IF ($C = 1)
GETSCREEN (5+$Xw, 550+$Yw, 110+$Xw, 580+$Yw) // кнопка "Садок"
COLORMODE (6, 5+$Xw, 550+$Yw, 110+$Xw, 580+$Yw)
IF_PICTURE_IN (35+$Xw, 555+$Yw, 65+$Xw, 575+$Yw, "sadok.bmp", -1, 70)
WAITMS (RND(20, 30))
ELSE
$C = 0
WAIT (RND(5, 7))
MOUSE_MOVE (RND(935+$Xw,955+$Xw), RND(35+$Yw,55+$Yw)) // кнопка "Возврат на базу"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
//MOUSE_MOVE (RND(320+$Xw,360+$Xw), RND(40+$Yw,80+$Yw)) // кнопка "Лаба"
//WAIT (RND(0.3, 1))
//LCLICK ($LC1, $LC2)
//WAIT (RND(1,3))
//MOUSE_MOVE (RND(500+$Xw,576+$Xw), RND(60+$Yw,70+$Yw)) // кнопка "Гибрид"
//WAIT (RND(0.3, 1))
//LCLICK ($LC1, $LC2)
//WAIT (RND(1,3))
//MOUSE_MOVE (RND(852+$Xw,943+$Xw), RND(253+$Yw,266+$Yw)) // кнопка "Отдать рыбу"
//WAIT (RND(0.3, 1))
//LCLICK ($LC1, $LC2)
//WAIT (RND(0.3, 1))
//WHEELDOWN (1)
//WAIT (RND(0.3, 1))
//LCLICK ($LC1, $LC2)
//WAIT (RND(0.3, 1))
MOUSE_MOVE (RND(20+$Xw,100+$Xw), RND(558+$Yw,573+$Yw)) // кнопка "Садок"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
MOUSE_MOVE (RND(690+$Xw,770+$Xw), RND(453+$Yw,468+$Yw)) // кнопка "Продать все"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
MOUSE_MOVE (RND(340+$Xw,430+$Xw), RND(402+$Yw,417+$Yw)) // кнопки "Продать"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
MOUSE_MOVE (RND(455+$Xw,545+$Xw), RND(402+$Yw,417+$Yw)) // кнопка "Закрыть"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
MOUSE_MOVE (RND(20+$Xw,100+$Xw), RND(582+$Yw,597+$Yw)) // кнопка "Карта"
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
MOUSE_MOVE (RND($Xloc-10+$Xw,$Xloc+10+$Xw), RND($Yloc-10+$Yw,$Yloc+10+$Yw)) // возврат на локу
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (RND(1,2))
END_IF
END_IF
END_CYC
END_CYC
WAITMS (RND(150, 300))
END_THREAD
// проверка на всплывающие окна
THREAD(OKNA, 1)
GETSCREEN (440+$Xw, 415+$Yw, 561+$Xw, 491+$Yw)
COLORMODE (6, 440+$Xw, 415+$Yw, 560+$Xw, 490+$Yw)
IF_PICTURE_IN (440+$Xw, 415+$Yw, 560+$Xw, 450+$Yw, "dost.bmp", -1, 60) // "достижение"
SETTHREAD (MAIN, 0)
MOVE ($_return1+5, $_return2+5)
WAIT (2)
LCLICK ($_return1+5, $_return2+5)
WAIT (2)
MOVE (35+$Xw,555+$Yw)
WAITMS (100)
SETTHREAD (MAIN, 1)
ELSE
IF_PICTURE_IN (440+$Xw, 430+$Yw, 560+$Xw, 490+$Yw, "klad.bmp", -1, 60) // "клад"
SETTHREAD (MAIN, 0)
MOVE ($_return1+5, $_return2+5)
WAIT (2)
LCLICK ($_return1+5, $_return2+5)
WAIT (2)
MOVE (35+$Xw,555+$Yw)
WAITMS (100)
SETTHREAD (MAIN, 1)
ELSE
GETSCREEN (420+$Xw, 250+$Yw, 451+$Xw, 271+$Yw) // разрыв связи. Надпись "Связь"
COLORMODE (6, 420+$Xw, 250+$Yw, 450+$Xw, 270+$Yw)
IF_PICTURE_IN (420+$Xw, 250+$Yw, 450+$Xw, 270+$Yw, "svyaz.bmp", -1, 60)
SETTHREAD (MAIN, 0)
WAIT (50)
MOVE (RND(455+$Xw,545+$Xw), RND(485+$Yw,500+$Yw))
WAIT (2)
LCLICK (RND(455+$Xw,545+$Xw), RND(485+$Yw,500+$Yw))
WAIT (5)
MOVE (RND(440+$Xw,550+$Xw), RND(310+$Yw,325+$Yw))
WAIT (2)
LCLICK (RND(440+$Xw,550+$Xw), RND(310+$Yw,325+$Yw))
WAIT (5)
MOVE (RND(340+$Xw,430+$Xw), RND(445+$Yw,460+$Yw))
WAIT (2)
LCLICK (RND(340+$Xw,430+$Xw), RND(445+$Yw,460+$Yw))
WAIT (50)
MOVE (35+$Xw,555+$Yw)
WAIT (3)
SETTHREAD (MAIN, 1)
ELSE
END_IF
END_IF
END_IF
WAIT (5)
END_THREAD
WAIT(1)
// проверка наличия крючка
THREAD(SNAST, 1)
WAIT(1)
GETSCREEN (230+$Xw, 697+$Yw, 260+$Xw, 725+$Yw)
COLORMODE (6, 230+$Xw, 697+$Yw, 259+$Xw, 724+$Yw)
IF_PICTURE_IN (230+$Xw, 697+$Yw, 259+$Xw, 724+$Yw, "snast.bmp", 4145023, 70)
SETTHREAD (MAIN, 0)
MOVE ($_return1+8, $_return2+8)
WAIT (2)
LCLICK ($_return1+8, $_return2+8)
WAIT (2)
MOVE (308+$Xw, 222+$Yw)
WAIT (2)
LCLICK (308+$Xw, 222+$Yw)
WAIT (2)
MOVE (380+$Xw, 570+$Yw)
WAIT (2)
LCLICK (380+$Xw, 570+$Yw)
WAIT (2)
MOVE (35+$Xw,555+$Yw)
WAITMS (100)
SETTHREAD (MAIN, 1)
ELSE
END_IF
WAIT (5)
END_THREAD
WAIT (1)
[/spoiler]
-
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.
-
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.
Спасибо, доберусь до игры, обязательно опробую. С наступающим!
-
И так. Добравшись добрался до настройки, возникло несколько вопросов:
1) Откуда берутся картинки KRUG и STREL ? Координаты, для GETSCREEN этих картинок для меня загадка. Нужно не только сделать эти картинки, но и переписать координаты для их определения. А сделать это без понимания "что и для чего" - не выйдет.
2) Вы сами дописывали скрипт? Если да, то подскажите, откуда берется $UD1_X1
Со многими GETSCREEN похожая запарка. Им нужно указать точные координаты, а разобраться, что именно указывать, не получается.
3) Какой размер окна вы используете с кликером?
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.
Заметил такое, видимо не всегда проходит один клик. Можно попробовать лечить двойным кликом, когда уже заставлю его работать.
-
Скрипт, я не дописывал, это изначально мой скрипт, я его и писал (потерял старый логин).
1. Картинка "KRUG" получается из кружка на шкале катушки (когда рыбу тянешь, снизу под удочкой 2 шкалы - нагрузка на удилище и нагрузка на катушку, слева у них кругляши, вот из катушечного кругляша и получается). Картинка "STREL" это белый треугольник, который бегает по шкалам нагрузки, собственно указатель нагрузки.
2. $UD1_X1 это координата по "Х" точки заброса удочки №1 (строка № 238).
3. Размер окна у меня выходит 1004 на 774, но это оно ставится по умолчанию, сам я его не меняю. Только программой "InqSoft Window Scanner 1.7" (на форуме есть ссылки) закидываю окно программы в правый верхний угол, чтоб не мешалось. Советую сразу определиться с размерами и положением окна раз и навсегда - так будет легче).
4. Пытаться "лечить" работу скрипта двойными кликами и другими методами без сокрытия самой программы - это аспирин для обезглавленного. Не ломай голову, она давно уже сломана и решение найдено.
P.S. В архиве не хватало еще одной картинки KLAD1, вот она
-
люди выкладывайте что кто придумал :)
-
мож кто написал на спиннинг на 1 уду выкладите,вариант хороший просто 0 затрат кидает себе ловит вот классно было бы.
-
Добрый день!
Хочу предложить свою версию бота. Работает с двумя донками(2 и 3 ячейка).
для запуска я использовал clickermann 4.12 и hide- приложение. Запускаем кликер и прячем его, чтобы игра не знала о нем.
Принцип работы прост. Он по очередно проверяет донки и вытягивает если рыба клюет. Если долго не клюет ~15 сек. Он перебрасывает уду.
Поля сканирования 0,600 - 1000, 1000 можно увеличить. Я играл в оконном режиме на fullhd экране, передвинув окно в верхний левый угол.Скрипт запускать bot5(то есть последний).
Всем спасибо!
-
Всем привет) Может кто победил антибота в игре? Подскажите метод решения проблемы, пожалуйста) Цифры в окошке антибота слишком мелкие и постоянно меняются их очертания((( Распознавалки от Винта и Драмстера, увы, не справляются - процент распознавания не выше 40-50... Нужен другой метод) есть мысли?)
-
Как-то сразу напомнило: "— Билли, сдаётся мне, твой друг хочет обидеть нас!" (с).
А если по делу, то:
1. Ни в коей мере не принижаю талант и умения авторов обеих скриптов-распознавалок, работают они четко, грамотно и надежно, но, увы, не в моем случае. И уж явно прочитал и описание скриптов и разобрался в работе обоих скриптов и обучение проводил и времени потратил достаточное количество, ибо откуда же еще мог взяться результат в 40%-50%
2. Ткните пальцем где я прошу готовый скрипт? Думается мне, что метод и готовый инструмент, две большие разницы так-то.
3. Отдельное спасибо за упоминание моего ума и отношения.... приятно, право слово)
P.S. Вопрос решил без использования распознавалок, прошу прощения у уважаемых форумчан, что потратили на меня ничтожного свое внимание и время)
-
Не стоит огорчаться, человек просто не понимает, что люди сюда приходят не лично к нему, чтобы парить его вопросами, на которые он не знает ответ. Лично к нему никто не приходит. А приходят сюда чтобы поклониться гению Johnny, который собирает тысячи, а может и миллионы таких как мы. Каждого, отдельно взятого, такого "учителя", в тени самого Johnny даже невидно. Но надо понимать, что каждый пришедший сюда, приносит к алтарю Johnny что то новое, поэтому так важен для Johnny.
Это церковь Johnny и мы его паства, а пастырь наш - Johnny. И право голоса у всех равное.
Права следить за порядком даны только супермодераторам, иные - глупцы и самозванцы.
Наезжающий на "овец" из паствы Johnny и разгоняющий "стадо" ЕГО - заблудший грешник. Если он не покаится, то не быть ему уважаемым.
Форум, к сожалению, очень неоживленный. Одни уважаемые и остались... :-\ И это печально, как бы странно это не звучало.
Каждый человек, который не поленился зарегистрироваться на форуме и принять участие в обсуждениях - уже уважаемый форумчанин. Он и определяет тот самый "список уважаемых", но только для себя.
Давайте не будем бычить на тех кого пригласил Johnny!?
-
:o
просто даже и....... просто.... и нечего сказать....
а вообще, есть что сказать. этот форум до сих пор дает мне какието знания в программировании и логике того что я замышляю. я не прогер, и долек от этого. но лишь данный форум меня подстегивает к дальнейшему саморазвитию.
и.... давайте жить дружно, не ссорьтесь
(https://i.imgur.com/NzlAG2f.png)
-
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
-
а можно подробней?
-
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
-
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
Нужно было так и писать: выложите скрипт пожалуйста
-
выложите скрипт пожалуйста
-
народ а есть рабочая версия или нету?
-
Че-то мне интересно стало...)) А как там вообще рыбу ловить? Я что-то разобраться не могу... ))
-
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
Ну, здесь наверняка он намутил управление скриптом через ВК, или телегу )) + при возникновении капчи, ее скрин отсылается на мыло. Чел получает капчу, смотрит, и отсылает через вк, или телегу кликеру команду - что прописать ))
-
Хах! Прикольно! )))
https://youtu.be/MuRbeAqNi7c (https://youtu.be/MuRbeAqNi7c)
Буду дальше мутить...))
-
Осталось поработать с капчей и с продажей! ;D (сообщения в чат посылаю с мобильника)
https://www.youtube.com/watch?v=kbaK2bF3ARc
-
Так птичку надо кликать и капча не вылезет.
Капча не толерантненькая ;D
-
Так птичку надо кликать и капча не вылезет.
Капча не толерантненькая ;D
Не понял... Какую птичку?
-
Ааааа...! Это вот эти утки, которые летают, их тыркать надо, чтоб капча не вылезла? ;D
А я блин распознаванием капчи занялся... ;D
-
;D ;D ;D
-
Тогда скучненько опять стало... Скрипт работает уже и "хлеба не просит"... Все ловится и все продается...
-
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
А не банят за ловлю круглыми сутками...? Я в БДО бота на рыбалку ставил сутками (бот удочки сам менял), так его забанили, что в принципе и логично - живому челу спать необходимо, как минимум... ))
-
Почитал тему немного и в глаза бросилось, что люди пытаются запустить на своих компах чужие скрипты и потом ломают голову - почему же не получается...)
Я однажды работал над одним проектом, под названием - "Karos". Я в этой игре написал скрипт в более, чем 4.000 строк. 15-20 ботов сообща, контролируя свои координаты, свои ХП и МП и закупая у НПС банки, если они были необходимы, контролируя свои бафы/дебафы и скилы, "общаясь" друг с другом, так как действовать нужно было сообща, мутили в игре валюту. В общем скрипт был очень серьезный и этим скриптом пользовался один чел из Украины, который был женат, растил детей и еще брата своего младшего кормил. И вот если я запускал под этот скрипт всего 15-20 окон в игре, то этот чел запускал более 140 окон, что позволяло ему зарабатывать на этом около 40.000р в месяц. Он мне присылал фотки малой части своей компьютерной фермы ))
(https://sun9-3.userapi.com/impg/M3q9JQrnFiF_SeyZY7HHeBilmmKH5aM9A0tRYA/tV2sCW99CPI.jpg?size=1600x1200&quality=95&sign=f075cf6af2c2f8cc7243e402e6d7a95e&type=album)
(https://sun9-78.userapi.com/impg/NXjuyuYmfXb2XJRshHIdrJNxmDOJ6Nbk_a7OnQ/u7gVwKVNEOE.jpg?size=1600x1200&quality=95&sign=da440367869a6707fab43d69a60e5971&type=album)
Так вот к чему я все это... Мои скрипты подходили ему, благодаря двум вещам.
1 - Они были написаны, для запуска окон на виртуальных машинах, в которых обработка графики происходила абсолютно одинаково.
2 - ВСЕ мои скрипты начинаются вот так:
$hwnd_=wndfind("Окно игры")
IF($hwnd_ ! 0)
//============================================= Окно игры найдено - получаем о нем информацию
WNDGETINFO($hwnd_, $x, $y, $width, $height)
//============================================= Проверяем размер окна игры
IF(($width ! 1032)|($height ! 795))
WNDSIZE($hwnd_, 1032, 795)
WAITMS(100)
else
//============================================= Проверяем координаты окна игры
IF(($x ! 0)|($y ! 0))
WNDPOS ($hwnd_, 0, 0)
WAITMS(100)
else
//============================================= Проверяем активность окна клиента игры
CALL("handle_active_window.dll")
IF($hwnd_ ! $_return1)
//============================================= Клиент игры не активен
WNDBUMP ($hwnd_)
WAITMS(100)
else
//============================================= Клиент игры активен
// Далее пишем скрипт
END_IF
END_IF
END_IF
else
// Действия по запуску игры
END_IF
WAITMS(50)
И вот таким образом больше гарантий, что все заготовленные картинки для скрипта, будут на своих местах.
Без этих двух параметров вероятность того, что чужой скрипт будет работать на вашем компе, не большая. Во первых у вас может быть другая видеокарта, которая будет обрабатывать графику по-своему и выдавать на экран другие цвета, а во вторых координаты картинок могут не сходиться.