Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Ksaliman on December 25, 2015, 05:58:34 AM
-
Вообщем хочу написать бота для игры но мои знания не позволяют этого сделать, поэтому пытаюсь переделать вот этого http://crapware.aidf.org/forum/index.php?topic=320.msg10056#msg10056 (http://crapware.aidf.org/forum/index.php?topic=320.msg10056#msg10056)
// Заброс удилища
wait(1)
keyDown(32)
waitms(1360) // 2060
keyUp(32)
wait (1)
LOGWRITE ("Забросили")
wait (10)
// Процесс подмотки
b:
GETSCREEN
IF_PICTURE_IN (1552, 681, 1613, 721, "nekl.bmp", -1, 50)
wait (3)
KEYDOWN(#SPACE)
wait (2)
KEYUP(#SPACE)
wait (1)
goto (b)
Else
LOGWRITE ("Клюет")
waitms (10)
// Подсечка
KEYDOWN (#SPACE)
WAITMS (400)
KEYDOWN (#ENTER)
wait (1)
KEYUP (#ENTER)
WAITMS (200)
KEYUP (#SPACE)
wait (1)
LOGWRITE ("Тянем")
// Процесс вываживания
$var = 1
while ($var < 4)
WAITMS (10)
KEYDOWN (#SPACE)
WAITMS (1000)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (20)
KEYUP (#ENTER)
WAITMS (900)
KEYUP (#SPACE)
WAITMS (5)
inc ($var)
end_cyc
END_IF
Не получается сделать так что-бы он определял когда нужно переходить к циклу подсечки. Т.е. теоретически он на 13 строчке должен определить индикатор натяжения лески и если натяжения нет то он должен выполнять действия в строчках 15-17, если появился индикатор то он должен выполнить действие 24ой строчки.
-
50% совпадения, на практике не рабочее значение. Лучше держатся в пределах 70-100.
Если не получается - задействовать COLORMODE
-
Ссылка на игру: http://store.steampowered.com/app/380600/?l=russian
1 скрин когда вываживаем рыбу - http://i.imgur.com/LQ39sry.jpg
2 скрин когда производится проводка - http://i.imgur.com/IaVjMpM.jpg
Каковы функции я хочу реализовать: 1) Забрасывает удочку (Хотел сделать что-бы в определенный координат кидал но там курсор привязывается к центру). 2) Начинал проводку зажимая пробел на 2 секунды потом отпускал на 1 и так далее пока рыба не клюнет. 3) Когда клюнула нужно подсеч зажав Ентер на 0.5 секунд и немного подтянуть пробелом. 4) Рыба подсеклась значит нужно вываживание - зажатием пробела и зажимание на 1-2 секунды Ентер. 5) Рыба подошла на 0 метров значит мы ее поймали, теперь нужно нажать на кнопку забрать. 6) Если забился садок нажать на Т и промотать время на 05.00 утра (так тут продается рыба). 6) Начать с действия 1.
P.s. До содка не дошел т.к. не могу решить проблему с переходом с 2 пункта на 3ий.
-
// Заброс удилища
wait(1)
keyDown(32)
waitms(1360) // 2060
keyUp(32)
wait (1)
LOGWRITE ("Забросили")
wait (4)
b:
GETSCREEN
COLORMODE(7, 1523,438,1569,489)
IF(PXL(1531,463)=16777215)
//IF_PICTURE_IN (1560, 685, 1610, 730, "nekl3.bmp", -1, 50)
wait (3)
KEYDOWN(#SPACE)
wait (2)
KEYUP(#SPACE)
wait (1)
goto (b)
Else
LOGWRITE ("Клюет")
waitms (10)
// Тянем
KEYDOWN (#SPACE)
WAITMS (400)
KEYDOWN (#ENTER)
wait (1)
KEYUP (#ENTER)
WAITMS (200)
KEYUP (#SPACE)
wait (1)
LOGWRITE ("Тянем")
// ?????
$var = 1
while ($var < 4)
WAITMS (10)
KEYDOWN (#SPACE)
WAITMS (1000)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (300)
KEYUP (#ENTER)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (20)
KEYUP (#ENTER)
WAITMS (900)
KEYUP (#SPACE)
WAITMS (5)
inc ($var)
end_cyc
END_IF
END_IF
Сейчас сделал поиск по пикселю но на другой значек который находится над шкалой в виде небольшого поплавка, и начало работать но если снасть доводит до конца и не было поклевки этот значек пропадает и бот думает что клюет и начинает цыкл подсечки. Как мне сделать так что-бы он тянул до тех пор пока шкала не поменяет свой цвет.
-
Приобретите игру и начинайте? Загружаемый контент для данной игры -3454 pуб.
требования:
Процессор: Quad-Core 3.0 GHz
Оперативная память: 8 GB ОЗУ
Видеокарта: Graphics Card with 2 GB Video RAM:
место на диске 7 GB
+ регистрация аккаунта и установка на комп игрового лаунчера на 1 GB.
там наверняка и защиты установлены, слишком всё коммерческое и платное в этом проекте.
авторы пишут, что игра условно-бесплатная только на периуд разработки.
мало найдётся фанатов писать и тестировать бота в таких условиях.
так что расчитывайте только на свой энтузиазм.
кстати название картинок в скрипте и архиве несовпадают.
Спасибо за разъяснения. Как можно сделать что-бы он проверял на наличие картинки и если она присутствует то он переходил к другому циклу. А если нету то продолжал делать цикл проводки.
-
// Заброс удилища
wait(1)
keyDown(32)
waitms(1360) // 2060
keyUp(32)
LOGWRITE ("Забросили")
wait (5)
$var=0
WHILE($var < 5) // Процес подтяжки 5 -число подтяжек ограничено , нужно подобрать практически
INC($var,1)
GETSCREEN
COLORMODE(7, 1523,438,1569,489)
IF(PXL(1531,463)=16777215)
wait (3) // можно сделать рандомным или подобрать промежутки между подтяжками.
KEYDOWN(#SPACE)
wait (2)
KEYUP(#SPACE)
wait (1)
Else
$var=777
END_IF
END_CYC
IF($var = 777)
// Если верно Тянем
LOGWRITE ("Клюет")
KEYDOWN (#SPACE)
WAITMS (400)
KEYDOWN (#ENTER)
wait (1)
KEYUP (#ENTER)
WAITMS (200)
KEYUP (#SPACE)
wait (1)
LOGWRITE ("Тянем")
// ????? видимо это два способа тянуть? одного недостаточно?
KEYDOWN (#SPACE)
WAITMS (RND(433,1477))
FOR($a=0,$a<20) // повторяем 20 раз
KEYDOWN (#ENTER)
WAITMS (RND(233,377)) // время нажатия
KEYUP (#ENTER)
WAITMS (RND(37,97)) // время между нажатиями
END_CYC
KEYUP (#SPACE)
END_IF
Спасибо за помощь код работает но не так как нужно, я так думаю что это будет сложно сделать мне не знающего языка на должном уровне и поэтому я не буду пытаться доделать этого бота. Проблема в том что много факторов играет свою роль. Например при поклевке бот переходит на цикл подсечки но если он не подсекает рыбу то все равно начинает ее вываживать и по-этому весь цикл сбивается.
https://www.youtube.com/watch?v=NhWMf9uj6K0
-
Есть более продвинутый бот по этому алгоритму, но он более сложный, зато более оптимизированный. Если есть желание разбираться - могу выложить. Если нужна проводка наживки, то это уже ловля на спиннинг, немного другой алгоритм, но он тоже есть у меня)
-
Есть более продвинутый бот по этому алгоритму, но он более сложный, зато более оптимизированный. Если есть желание разбираться - могу выложить. Если нужна проводка наживки, то это уже ловля на спиннинг, немного другой алгоритм, но он тоже есть у меня)
Был-бы признателен. Интересно как там все выглядит.
-
Что-то мне много мыслей в голу лезет и не могу остановится на не доделанном. Вообщем допилил систему подсечки работает хоть и туповато но зато подсекает рыбу а не коряги, так как сделал проверку по 2 скриншотам - Когда натягивается леска бот делает подсечку и проверяет значек скорости катушки если он изменился то он переходит к циклу вываживания но тут загвоздка, как я не пытался, что я только не делал он у меня не хочет этого делать, в чем причина не пойму.
Логи:
8:41:13 Забросили
8:41:55 Клюет
8:41:55 Тянем
До этих пор работает нормально дальше не чекает картинки и делает 2 процесса не в свое время.
8:41:56 Вытащили
8:42:14 Забрали рыбу
Знающие посмотрите где мои ошибки.
// Заброс удилища
wait(1)
keyDown(32)
waitms(2060) // 2060
keyUp(32)
LOGWRITE ("Забросили")
wait (5)
// Индикатор натяжание лески, подтягиваем пока не натянется леска
$var=0
WHILE($var < 20) // Колличество подтяжек
INC($var,1)
//GETSCREEN
//COLORMODE(7, 1423,824,1470,854)
//IF_PICTURE_IN (1423,824,1470,854, "pr.bmp", -1, 90) // Проверяем не дотянул-ли снасть до берега без поклевки.
//waitms(1)
GETSCREEN
COLORMODE(7, 1505,689,1610,980)
IF_PICTURE_IN (1562,686,1601,719, "nekl2.bmp", -1, 90) //Индикатор натяжание лески, подтягиваем пока не натянется леска
KEYDOWN(#SPACE)
wait (1)
KEYUP(#SPACE)
wait (2)
Else
// натянулась - подсекаем зажимая энтер на 0.7 секунд
KEYDOWN(#enter)
WAITMS(700)
KEYUP(#enter)
GETSCREEN
COLORMODE(7, 1505,689,1610,980)
IF_PICTURE_IN (1543,946,1576,982, "nekl.bmp", -1, 90) //Проверяем подсеклас-ли рыба, если да переходим к вываживанию
Else
LOGWRITE ("Клюет")
LOGWRITE ("Тянем")
$var=777
END_IF
END_IF
END_CYC
IF($var=777) // Если верно Тянем
$var=0
WHILE($var < 10) // Колличество подтяжек
INC($var,2)
KEYDOWN(#space)
WAITMS(68)
KEYDOWN(#enter)
WAITMS(32)
KEYUP(#enter)
WAITMS(32)
KEYUP(#space)
GETSCREEN
COLORMODE(7, 1423,824,1470,854)
IF_PICTURE_IN (1423,824,1470,854, "pr.bmp", -1, 90) // Проверяем не вытянулась-ли рыба
Else
END_IF
END_IF
END_CYC
LOGWRITE ("Вытащили")
// Нажимаем на кнопку забрать.
$c = 0
WHILE ($c = 0)
wait (2)
GETSCREEN
COLORMODE(7, 600,935,629,965)
IF_PICTURE_IN (600,935,629,965, "zabr.bmp", -1, 90)
$c = 1
waitms (10)
LCLICK(908,911)
wait (8)
END_IF
END_CYC
LOGWRITE ("Забрали рыбу")
Функции которые хочу реализовать:
1) Подтяжку не определенное количество раз (т.к. он бывает делает +- 2 раза прокрутки) а с проверкой пикселей, до того момента пока не дотянет до берега, какие пикселя задействовать знаю но в коде реализовать не могу.
2) Если возможно постоянную проверку на натяжение лески так-как пока работает цикл подтяжки бывает садится рыба и программа не успевает сделать скриншот в нужный промежуток времени.
3)Проверку содка после каждого вылова рыбы, и промотки времени в случаи его заполнения.
4) Сделать не общее количество подтяжек и проверки скриншотов, а допустим он 10 раз подтянул проверил по скриншоту если не вытянул еще 10 раз и т.д. пока не дотянет до берега.
Архив с наработками: https://yadi.sk/d/owj1MXinmWpAw
-
Вот бот для ловли на спиннинг. Проверку протяжки осуществляет по пикселю в строке №243.....как нашел пиксель - так закончил протяжку. Проверку наполнения садка определяет по изменению кнопки "Садок" - она меняет цвет - как изменилась кнопка, то идем продавать. Там много для тебя ненужного - типа проверки снастей, проверки связи с сервером, проверки всплывающих окон получения клада (достижения, выполнения личной задачи) - это можно безболезненно удалить)
P.S. А как спойлер делать? Чет я не нашел(((
PPS. Эту игрулю как-то можно без стима установить или нет?
-
Функции которые хочу реализовать:
1) Подтяжку не определенное количество раз (т.к. он бывает делает +- 2 раза прокрутки) а с проверкой пикселей, до того момента пока не дотянет до берега, какие пикселя задействовать знаю но в коде реализовать не могу.
2) Если возможно постоянную проверку на натяжение лески так-как пока работает цикл подтяжки бывает садится рыба и программа не успевает сделать скриншот в нужный промежуток времени.
3)Проверку содка после каждого вылова рыбы, и промотки времени в случаи его заполнения.
4) Сделать не общее количество подтяжек и проверки скриншотов, а допустим он 10 раз подтянул проверил по скриншоту если не вытянул еще 10 раз и т.д. пока не дотянет до берега.
п.1 Правильно, смотри какая картинка меняется после окончания протяжки и по ней делай проверку.
п.2. Программа все успеет сделать, возможно ты неправильно ей задаешь условия. Опять же смотри что точно меняется и оттуда пляши.
п.3. Смотри чем отличается полный и пустой садок - и опять же делай проверку.
п.4. См. п.1. Т.е. тянуть надо не количество раз, а до берега)))
-
COBCEM_3BEPb Спасибо))) Я на эту кнопку боялся нажимать, уж больно страшный значек, еще со Сталкера в подсознании осталось)))
Ksaliman Сними видео несколько минут со всеми нужными функциями, попробую помочь. Если можно - с пояснениями, где что и когда)
-
обработал скрипт спининга напильником, для уменьшения числа строк, проверь работоспособность.
-
COBCEM_3BEPb
Видео (Включите субтитры и анотации): https://www.youtube.com/watch?v=dGSdXh9ogYQ
Появилась ошибка http://i.imgur.com/n9H75mS.png?1
Вообщем бот работает но без 1 функции, он не делает ничего после проверки на то не дотянул-ли рыбу до берега и так-же не забирает рыбу так как там такая-же проверка. Поправил таймер на вываживание, он должен работать с минимально задержкой. Сделал проверку pr.bmp на полную цифру 0 а то она срабатывала на цифру 9.
[spoiler]
// Заброс удилища
wait(1)
keyDown(32)
waitms(2060) // 2060
keyUp(32)
LOGWRITE ("Забросили")
wait (5)
// Индикатор натяжание лески, подтягиваем пока не натянется леска
$var=0
WHILE($var=0) // подтягиваем пока не дотянул-ли снасть до берега или не натянется леска
KEYDOWN(#SPACE)
wait (1) // время пожтяжки лески
KEYUP(#SPACE)
GETSCREEN
COLORMODE(7, 1505,689,1610,980)
IF_PICTURE_IN (1562,686,1601,719, "nekl2.bmp", -1, 90) //Индикатор натяжание лески, подтягиваем пока не натянется леска
wait (2) // пауза между подтяжками лески
Else
// натянулась - подсекаем зажимая энтер на 0.7 секунд
KEYDOWN(#enter)
WAITMS(700)
KEYUP(#enter)
BEEP(800,200) // звук при подсечке
WAITMS(700) // пауза после подсечки
IF_PICTURE_IN (1543,946,1576,982, "nekl.bmp", -1, 90) //Проверяем подсеклас-ли рыба, если да переходим к вываживанию
WAITMS(10)
Else
LOGWRITE ("Клюет")
LOGWRITE ("Тянем")
$var=777// выход из цикла "натяжание лески", переходим к вываживанию
END_IF
END_IF
GETSCREEN
COLORMODE(7, 1423,824,1470,882)
IF_PICTURE_IN (1423,824,1470,882, "pr.bmp", -1, 90) // Проверяем не дотянул-ли снасть до берега без поклевки. (После это проверки не переходит на цикл заброски удилища к строчке 3)
$var=555
waitms(10)
END_IF
END_CYC
IF($var=777) // Если верно Тянем
$var=0
WHILE($var=0)
GETSCREEN
COLORMODE(7, 1423,824,1470,882)
IF_PICTURE_IN (1423,824,1470,882, "pr.bmp", -1, 90) // Проверяем не вытянулась-ли рыба (После этой не проверяет не вытянулась-ли рыба и не нажимает на кнопку забрать к строчке 56)
INC($var,1) // если вытянулась
LOGWRITE ("Вытащили")
$c = 0
WHILE ($c = 0)
GETSCREEN
COLORMODE(7, 600,935,629,965)
IF_PICTURE_IN (600,935,629,965, "zabr.bmp", -1, 90) // Проверка поймали мы рыбу или нет.
$c = 1
waitms (10)
LCLICK(908,911) // Нажимаем на кнопку забрать.
wait (8) // пауза после нажатия забрать
END_IF
END_CYC
INC($fish,1)
LOGWRITE ("Забрали рыбы")
HINTPOPUP("Забрали рыбы", ,$fish)
Else
KEYDOWN(#space)
WAITMS(68)
KEYDOWN(#enter)
WAITMS(32)
KEYUP(#enter)
WAITMS(32)
KEYUP(#space)
waitms (2) // пауза после подтягивания рыбы (изменил - подтягивание должно работать очень быстро до тех пор пока не вытащишь рыбу)
END_IF
END_IF
END_CYC
[/spoiler]
Svarog
Спасибо большой за скрипт. Буду изучать что да как. Но при первом взгляде там жесткая привязка к курсору. В моей игре курсор всегда в центре и особо не попользуешся этой функцией. Но все равно спасибо. Может что возьму на заметку.
-
Лог если делает проводку и рыба не клюнула. Доходит до 0 метров и дальше ничего
23:06:34 Забросили
23:07:38 Берег без поклевке
Если рыба клюнула во время поклевке то доходит до 0 и забирает рыбу но не забрасывает для повторной ловли.
23:05:01 Забросили
23:05:24 Клюет
23:05:24 Тянем
23:06:05 Вытащили
23:06:16 Забрали рыбу
-
Я тоже об этом подумал, но нет, стоит неограниченно. Ошибка пропала, вроде. Картинку переснял и поменял название на zero.bmp
[spoiler]// Заброс удилища
wait(1)
keyDown(32)
waitms(2060) // 2060
keyUp(32)
LOGWRITE ("Забросили")
wait (5)
// Индикатор натяжание лески, подтягиваем пока не натянется леска
$var=0
WHILE($var=0) // подтягиваем пока не дотянул-ли снасть до берега или не натянется леска
KEYDOWN(#SPACE)
wait (1) // время пожтяжки лески
KEYUP(#SPACE)
GETSCREEN
COLORMODE(7, 1505,689,1610,980)
IF_PICTURE_IN (1562,686,1601,719, "nekl2.bmp", -1, 90) //Индикатор натяжание лески, подтягиваем пока не натянется леска
wait (2) // пауза между подтяжками лески
Else
// натянулась - подсекаем зажимая энтер на 0.7 секунд
KEYDOWN(#enter)
WAITMS(700)
KEYUP(#enter)
BEEP(800,200) // звук при подсечке
WAITMS(700) // пауза после подсечки
IF_PICTURE_IN (1543,946,1576,982, "nekl.bmp", -1, 90) //Проверяем подсеклас-ли рыба, если да переходим к вываживанию
WAITMS(10)
Else
LOGWRITE ("Клюет")
LOGWRITE ("Тянем")
$var=777// выход из цикла "натяжание лески", переходим к вываживанию
END_IF
END_IF
GETSCREEN
COLORMODE(7, 1427,825,1466,882)
IF_PICTURE_IN (1427,825,1466,882, "zero.bmp", -1, 90) // Проверяем не дотянул-ли снасть до берега без поклевки.
$var=555
waitms(10)
LOGWRITE ("Берег без поклевке")
END_IF
END_CYC
IF($var=777) // Если верно Тянем
$var=0
WHILE($var=0)
GETSCREEN
COLORMODE(7, 1427,825,1466,882)
IF_PICTURE_IN (1427,825,1466,882, "zero.bmp", -1, 90) // Проверяем не вытянулась-ли рыба
INC($var,1) // если вытянулась
LOGWRITE ("Вытащили")
$c = 0
WHILE ($c = 0)
GETSCREEN
COLORMODE(7, 600,935,629,965)
IF_PICTURE_IN (600,935,629,965, "zabr.bmp", -1, 90)
$c = 1
wait (3)
KEYDOWN(#space) // Доп подтяжка в случаии если бот не дотянул
WAITMS(100)
KEYUP(#space)
wait (5)
LCLICK(908,911) // Нажимаем на кнопку забрать.
wait (8) // пауза после нажатия забрать
END_IF
END_CYC
INC($fish,1)
LOGWRITE ("Забрали рыбу")
HINTPOPUP("Забрали рыбу", ,$fish)
Else
KEYDOWN(#space)
WAITMS(68)
KEYDOWN(#enter)
WAITMS(32)
KEYUP(#enter)
WAITMS(32)
KEYUP(#space)
waitms (5) // пауза после подтягивания рыбы
END_IF
END_IF
END_CYC
[/spoiler]
-
Вот кривые мои руки. Спасибо большое, все работает как надо. осталось прикрутить проверку садка и можно пускать в производство. Как думаешь в какую часть его запихнуть? Если он заполняется то в верхнем левом углу цифры веса в желтый окрашиваются.
-
Спасибочки за наводку. Сейчас буду пробовать что-то стряпать. Если что как всегда опишу проблему в подробностях.
-
Что-то не выходит у меня. Не проверяет картинку и после заполнения садка продолжает закидывать.
[spoiler]
// Заброс удилища
wait(2)
LCLICK(908,911)
wait(5)
keyDown(32)
waitms(2060) // 2060
keyUp(32)
LOGWRITE ("Забросили")
wait (5)
// Индикатор натяжание лески, подтягиваем пока не натянется леска
$var=0
WHILE($var=0) // подтягиваем пока не дотянул-ли снасть до берега или не натянется леска
KEYDOWN(#SPACE)
waitms (RND(1000,1100)) // пауза между подтяжками лески
KEYUP(#SPACE)
GETSCREEN
COLORMODE(7, 1505,762,1610,980)
IF_PICTURE_IN (1569,802,1607,821, "nekl2.bmp", -1, 90) //764Индикатор натяжание лески, подтягиваем пока не натянется
waitms (RND(1700,1800)) // время подтяжки лески
Else
// натянулась - подсекаем зажимая энтер на 0.7 секунд
KEYDOWN(#enter)
WAITMS(800)
KEYUP(#enter)
BEEP(800,200) // звук при подсечке
WAITMS(1000) // пауза после подсечки
IF_PICTURE_IN (1543,946,1576,982, "nekl.bmp", -1, 90) //Проверяем подсеклас-ли рыба, если да переходим к вываживанию
WAITMS(10)
Else
LOGWRITE ("Клюет")
LOGWRITE ("Тянем")
$var=777// выход из цикла "натяжание лески", переходим к вываживанию
END_IF
END_IF
GETSCREEN
COLORMODE(7, 1427,825,1466,882)
IF_PICTURE_IN (1427,825,1466,882, "zero.bmp", -1, 90) // Проверяем не дотянул-ли снасть до берега без поклевки.
$var=555
waitms(10)
LOGWRITE ("Без поклевки")
END_IF
END_CYC
IF($var=777) // Если верно Тянем
$var=0
WHILE($var=0)
GETSCREEN
COLORMODE(7, 1427,825,1466,882)
IF_PICTURE_IN (1427,825,1466,882, "zero.bmp", -1, 90) // Проверяем не вытянулась-ли рыба
INC($var,1) // если вытянулась
LOGWRITE ("Вытащили")
$c = 0
WHILE ($c = 0)
GETSCREEN
COLORMODE(7, 600,935,629,965)
IF_PICTURE_IN (600,935,629,965, "zabr.bmp", -1, 90)
$c = 1
wait (3)
KEYDOWN(#space) // Доп подтяжка в случаии если бот не дотянул
WAITMS(100)
KEYUP(#space)
wait (5)
LCLICK(908,911) // Нажимаем на кнопку забрать.
wait (2) // пауза после нажатия забрать
END_IF
END_CYC
INC($fish,1)
LOGWRITE ("Забрали рыбу")
HINTPOPUP("Забрали рыбу", ,$fish)
Else
keyDown(32)
waitms(40)
waitms(176)
keyDown(13)
waitms(56)
keyUp(13)
waitms(161)
keyDown(13)
waitms(72)
keyUp(13)
waitms(143)
keyDown(13)
waitms(80)
keyUp(13)
waitms(129)
keyDown(13)
waitms(71)
keyUp(13)
waitms(137)
keyDown(13)
waitms(63)
keyUp(13)
waitms(144)
keyUp(32)
waitms(240) // пауза после подтягивания рыбы
END_IF
END_CYC
// Проверка садка
IF($b = 1)
GETSCREEN
COLORMODE(7, 42,127,94,143)
IF_PICTURE_IN (42,127,94,143, "sadok2.bmp", -1, 70) //Если изменился цвет то садок полный (70% совпадений так-как время суток меняется и с ними меняются цвета пикселей.)
LOGWRITE ("Садок еще не наполнился")
WAIT (0.5)
ELSE
$b = 0
WAIT (2)
LOGWRITE ("Садок полный")
KEYPRESS (#T) //Вызываем перемотку времени
WAIT (1)
$a = 0
WHILE ($a = 0)
GETSCREEN
COLORMODE(7, 800,491,840,517)
IF_PICTURE_IN (800,491,840,517, "time.bmp", -1, 90) // Нужная картинка
LCLICK(947,502) //Кликаем в точку пока не совпадет картинка.
waitms (RND(700,500)
$a = 1
ELSE
wait (1)
LCLICK(768,592) //Картинка совпала? Кликаем в эту точку.
wait (10)
END_CYC
END_IF
END_IF
END_IF
END_IF
[/spoiler]
Пробовал через поиск пикселей, такая же беда. 99% в коде проблемы.
IF_PIXEL_IN (42,127,94,143, 3582651, 3844800, 5948388, 6599108, 4964041, 6538711, 8571859, 5883612)
-
а ссылочку на рабочий бот в целях рекламы можно увидеть?
-
а ссылочку на рабочий бот в целях рекламы можно увидеть?
Почему нет? Но учти там не выставлены тайминги и возможно придется переделать картинку проверки садка т.к. если меняется время в игре, следовательно и освещение, то бывает не срабатывает проверка.
https://yadi.sk/d/FeFshGR7mZUiR (https://yadi.sk/d/FeFshGR7mZUiR)
-
С чего ты взял что его кто-то будет продавать? И насчет кривого бота, полностью согласен.
-
Строки 59-63. Должен кликать в определенную точку, но курсор не двигает в ту точку и он кликает просто в центр. Пробовал использовать плавное движение курсором, та-же байда. Такое началось как перевел код на окно. В полный экран все работает.
[spoiler]#name "Fishing Planet"
#ps2_keyboard
$x1 = 0
$y1 = 1286
$x2 = 0
$y2 = 829
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
==Часть кода===
IF($var=777) // Если верно Тянем
$var=0
WHILE($var=0)
GETSCREEN
COLORMODE(8, 1090,652,1125,699)
IF_PICTURE_IN (1090,652,1125,699, "zero.bmp", -1, 90) // Проверяем не вытянулась-ли рыба
INC($var,1) // если вытянулась
LOGWRITE ("Вытащили")
$c = 0
WHILE ($c = 0)
GETSCREEN
COLORMODE(8, 543,706,633,736)
IF_PICTURE_IN (543,706,633,736, "zabr.bmp", -1, 90)
$c = 1
wait (3)
LDOWN(497,438) // Доп подтяжка в случаии если бот не дотянул
WAITMS(100)
LUP(497,438)
wait (5)
RCLICK(697,722)
WAITMS(1000)
MOUSE_MOVE (RND(697, 722))
WAIT (RND(0.3, 1))
LCLICK ($LC1, $LC2)
WAIT (2)
//LCLICK(697,722) // Нажимаем на кнопку забрать.
wait (2) // пауза после нажатия забрать
END_IF
END_CYC
INC($fish,1)
LOGWRITE ("Забрали рыбу")
LCLICK(697,722) // Нажимаем на кнопку забрать.
HINTPOPUP("Забрали рыбу", ,$fish)
Else
LDOWN(497,438) // зажимаем пробел
WAITMS(60)
FOR($count=0,$count<20) // пять раз нажимаем Энтер
RDOWN(497,438)
WAITMS(RND(130,160)) // задержка между зажал=отжал
RUP(497,438)
WAITMS(RND(100,180)) // задержка после нажатия
END_CYC
LUP(497,438) // отпускаем пробел
END_IF
END_CYC
==Часть кода==
[/spoiler]
-
Ты что написал вообще?
MOUSE_MOVE (RND(697, 722))
WAIT (RND(0.3, 1))
верно так
MOUSE_MOVE (697, 722)
WAITMS (RND(300, 1000))
-
Я так понимаю двигать курсор в окне его не заставить?
-
С окнами лучше не связывайся (имеется ввиду привязка окна к кликеру) - там сам дядя Билл ногу сломить, делай как работает.
-
С окнами лучше не связывайся (имеется ввиду привязка окна к кликеру) - там сам дядя Билл ногу сломить, делай как работает.