1
Использование / Re: [Нужна помощь] Бот для Fishing Planet
« on: December 30, 2015, 05:35:11 PM »
Я так понимаю двигать курсор в окне его не заставить?
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
#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]
а ссылочку на рабочий бот в целях рекламы можно увидеть?
// Заброс удилища
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]IF_PIXEL_IN (42,127,94,143, 3582651, 3844800, 5948388, 6599108, 4964041, 6538711, 8571859, 5883612)
// Заброс удилища
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]
// Заброс удилища
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]// Заброс удилища
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 ("Забрали рыбу")
Есть более продвинутый бот по этому алгоритму, но он более сложный, зато более оптимизированный. Если есть желание разбираться - могу выложить. Если нужна проводка наживки, то это уже ловля на спиннинг, немного другой алгоритм, но он тоже есть у меня)
Code: (clickermann) [Select]
// Заброс удилища
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
Приобретите игру и начинайте? Загружаемый контент для данной игры -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)
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