Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: naftik on October 09, 2013, 01:00:28 PM

Title: Бот для Fantastic Fishing
Post by: naftik on October 09, 2013, 01:00:28 PM
Помощи прошу в создании бота для Fantastic Fishing.
Цель - ловля в автоматическом режиме на 3! удочки.
На сегодня с грехом пополам слепил работающий скрипт на 1 удочку

Code: (clickermann) [Select]
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) и запускал цикл с подсечкой, выматыванием, забросом и возвращался к поиску.
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on October 09, 2013, 02:41:43 PM
Скрипт не верный.

Комментарии пишутся через две косых черты -  // коммент
SUB - это субпрограмма. ей здесь не место. Скрипт по логике и так перейдет в начало если пиксел найден.
при записи переменная $K_SPEED = 4 это число умножается на задержку WAITMS(31 * $K_SPEED) то есть фактическая задержка при записи была 124
Ты эту переменную не прописал и все задержки ускорились в 4 раза
В конце вообще какая то хрень WAITMS(5[20 * $K_SPEED)
Ну а про то что в конце условия надо писать завершающий END_IF тебе видать вообще наплевать  :-\

Хотя бы так напиши, а то на это смотреть страшно...
Code: (clickermann) [Select]
$K_SPEED = 4

GETSCREEN
IF_PIXEL_IN(346,519,346,519,11183005)
   wait(1)
Else
   // тут твоя запись
END_IF
Title: Re: Бот для Fantastic Fishing
Post by: naftik on October 09, 2013, 05:02:54 PM
Исправил ... согласен так правильнее но сути это не меняет

Code: (clickermann) [Select]
[/$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]
Title: Re: Бот для Fantastic Fishing
Post by: naftik on October 09, 2013, 05:07:02 PM
Это поиск только одного параметра а как их 3 задать и при условии нахождения одного из них срабатывал клик по возвращённому адресу и дальше по схеме пробел, выматывание, заброс и поиск сначала
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on October 09, 2013, 05:47:43 PM
Так и пропиши по порядку для трех удочек. Только координаты анализа поправь.

Code: (clickermann) [Select]
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) // общая задержка
Title: Re: Бот для Fantastic Fishing
Post by: Леха on December 30, 2013, 08:57:01 PM
Андрей привет посмотри пожалуйста вот этот скрипт на тему 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
Title: Re: Бот для Fantastic Fishing
Post by: Юрец on April 03, 2014, 05:51:24 PM
как сохранить и запустить этого бота?
Title: Re: Бот для Fantastic Fishing
Post by: BROOO on June 03, 2014, 04:03:12 PM
Интересует бот для вышесказанной программы, работа будет оценена соответствующе. Есть неплохая заготовка, нужна поддержка.
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on June 05, 2014, 05:33:35 AM
есть у кого рабочий скрипт на эту игру?
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on June 05, 2014, 05:36:30 AM
Так и пропиши по порядку для трех удочек. Только координаты анализа поправь.

Code: (clickermann) [Select]
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) // общая задержка

что толку в этом повторении для трех удочек если одна работает неправильно!

Title: Re: Бот для Fantastic Fishing
Post by: BROOO on June 05, 2014, 05:59:31 PM
Есть компилированный рабочий исходник, но как вытащить код из него? требует маленькой доработки*
Title: Re: Бот для Fantastic Fishing
Post by: aden on June 05, 2014, 07:44:32 PM
Есть компилированный рабочий исходник, но как вытащить код из него? требует маленькой доработки*
никак, файл с раширением exe невозможно полностью декомпилировать
компилированный рабочий исходник
вы путаете понятия

Title: Re: Бот для Fantastic Fishing
Post by: BROOO on June 06, 2014, 01:20:07 PM
Возможно, я не мастер в этой среде, так что там? Получается?
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on June 19, 2014, 07:16:34 AM

Code: (clickermann) [Select]
//Определяем координаты

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:


Вот мой вариант. для одной удочки
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on June 19, 2014, 08:57:29 AM
Вот мой вариант. для одной удочки

Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
Code: (clickermann) [Select]
//Определяем координаты

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
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on June 19, 2014, 10:57:57 AM
Quote
Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
Код: Clickermann

Спасибо!
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 08, 2014, 10:24:56 PM
Quote
Исправил ошибки. Строки всегда пишутся в кавычках, и не нужно оставлять мусор ввиде ";"
Код: Clickermann

Спасибо!

Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on July 09, 2014, 06:44:16 PM
Quote
Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно

1) запускаем скрипт
2) щелчек левойкнопкой в месте заброса
3) все!
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 09, 2014, 10:39:10 PM
Quote
Подскажите пожалуйста, что надо сделать чтобы использовать ваш бот, скачал кликерман ввел в редактор то что написали для 1 удочки, но чтото не работает, подскажите как правильно если не трудно

1) запускаем скрипт
2) щелчек левойкнопкой в месте заброса
3) все!

Такое дело зашел в игру, потом зашел в кликерман загрузил в редактор вот это:

Code: (clickermann) [Select]
//Определяем координаты

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, подскажите пожалуйста что не так я делаю может надо чтото еще вписать?
Title: Re: Бот для Fantastic Fishing
Post by: BigGul on July 11, 2014, 06:14:42 AM
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 11, 2014, 08:07:05 PM
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.

7      LOGWRITE ("Координаты: ",$x," ",$y)
написал в эту строчку координаты примерно вот так       LOGWRITE ("Координаты: ",512," ",611)  все тоже самое, может я не туда вписал или еще что надо сделать?
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 13, 2014, 04:16:58 AM
ну подскажите кто, как пользоваться по пунктам, а то я в этом деле не понимаю..
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 15, 2014, 06:15:15 PM
нужно проверить координату Y. она не задается автоматически... вот скрипт и считает, что у вас постоянно клюет. откройте лог.

ну подскажите если у вас все получилось как вы делали, а то у меня чтото не получается
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on July 19, 2014, 05:15:03 PM
что всех жаба душит чтоли? жалко 5 минут объяснить человеку?
Title: Re: Бот для Fantastic Fishing
Post by: ssanarhist on September 20, 2014, 01:14:32 AM
Немного переделал. Работает база Неро, лока Львы. Одна донка. Сам продает и возвращается. Есть шероховатости, но работает.
Code: [Select]
//Îïðåäåëÿåì êîîðäèíàòû

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
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on September 20, 2014, 01:44:57 AM
Немного переделал. Работает база Неро, лока Львы. Одна донка. Сам продает и возвращается. Есть шероховатости, но работает.

Как оно может работать если в коде куча ошибок?!

Исправленный код
Code: (clickermann) [Select]
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
Title: Re: Бот для Fantastic Fishing
Post by: ssanarhist on September 20, 2014, 09:21:50 PM
А я и не говорил, что все идеально. Просто взял выложенный выше и, практически методом научного тыка, сделал, чтоб хоть как-то работало.
Title: Re: Бот для Fantastic Fishing
Post by: Тихон on October 01, 2014, 11:49:14 AM
   IF_PICTURE_IN (0,505, 1025, 546, "ne kl.bmp")
   IF_PICTURE_IN (60,583, 112, 617, "sadok.bmp")
Уважаемый Oraven, а что это за картинки ? откуда их взять ?
Спасибо.
Title: Re: Бот для Fantastic Fishing
Post by: Vint on October 01, 2014, 02:46:03 PM
   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
А лучше написать самому.
Title: Re: Бот для Fantastic Fishing
Post by: ssanarhist on October 01, 2014, 08:24:46 PM
   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 - проверяет садок на заполнение
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on October 04, 2014, 02:28:34 AM
   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 - проверяет садок на заполнение


А не подскажите откуда их взять?
Title: Re: Бот для Fantastic Fishing
Post by: ssanarhist on October 09, 2014, 12:04:55 AM
Сделать.
Title: Re: Бот для Fantastic Fishing
Post by: veras14 on November 01, 2014, 10:16:31 PM
неужели нельзя поделится информацией о боте
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on November 11, 2014, 12:33:41 AM
неужели нельзя поделится информацией о боте

я бы с радостью, вот только сам не могу разобраться
Title: Re: Бот для Fantastic Fishing
Post by: ssanarhist on December 03, 2014, 11:48:12 PM
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.
Title: Re: Бот для Fantastic Fishing
Post by: makt4 on December 11, 2014, 11:45:39 PM
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.

Это к какой-то 1 локе привязано ?  Пробовал на паре локаций... не работает.  Либо что-то править надо ?
Title: Re: Бот для Fantastic Fishing
Post by: Роман1 on December 14, 2014, 11:48:10 AM
Это мой вариант. Не все гладко, но меня устраивало. Я его забросил.
Для одной удочки. Первый заброс в локе ваш - дальше запускаете. Ловит, выпускает, режет, продает.

Это к какой-то 1 локе привязано ?  Пробовал на паре локаций... не работает.  Либо что-то править надо ?

тоже не работает, надо что-то вписывать еще или просто загрузить в кликер?
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 27, 2015, 04:31:04 PM
Переделал в версии 4.11. Работает уже 2 дня с небольшими замечаниями (иногда не подсекает рыбу, в связи с тем что время ожидания подсечки задано явно, а рыба всегда клюет по разному - но это мелочи, бот просто перезабрасывает уду). Ловит, после заполнения садка идет на базу, продает всю рыбу, возвращается на локацию и продолжает ловить. Так по кругу до остановки или выпрыгивания какого-нибудь неожиданного окна (достижение и т.д.) - это нужно отслеживать вручную. Количество потяжек при вываживании установлено 3, но в цикле можно уменьшить время нажатия клавиш "G" и "H" и увеличить количество итераций цикла, что будет нужно при вываживании крупной рыбины , я этим не заморачивался , так как ловлю Щитовку на 20 гр.
При использовании необходимо сделать пару картинок (индикатор клюющей удочки и пустого садка) - 2 маленьких квадратика и положить их в папку Кликермана. Также необходимо под себя подстроить координаты точек кликанья и областей в которых кликер будет искать индикатор поклевки и индикатор садка. Точку первоначального заброса тоже необходимо задать вручную (строка 9).
Не могу заставить работать кликер в режиме привязке к окну, он просто не видит область для анализа. Что делать не знаю, может кто подскажет? Игра клиентская, может с этим связано? Пробовал установить клиент игры на виртуальные машины (Win XP, Win 7) - клиент не работает ни на одной, путь тупиковый. Клиент работает в оконном режиме размером 1000х750. Будем пытаться разбираться дальше.
Есть еще мысли организовать ловлю на три удочки с помощью потоков, но это в будущем, еще не конца понял, собственно сам алгоритм.

Code: (clickermann) [Select]
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
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on January 27, 2015, 05:24:14 PM
В оконном режиме не работают зажатия клавиш, поэтому он тут вообще не применим.
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 27, 2015, 05:28:49 PM
В оконном режиме не работают зажатия клавиш, поэтому он тут вообще не применим.

Ок, спасибо понял, а как можно организовать? А зажатия клавиш мышки работают?
Title: Re: Бот для Fantastic Fishing
Post by: Oraven on January 27, 2015, 06:16:11 PM
Зажатия клавиш мыши могут работать, но не всегда корректно. Но у тебя же кликер ничего не видит. Такой окно что поделать....
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 27, 2015, 06:28:17 PM
Спасибо) Буду репу чесать чего делать, мож начешу)))
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 29, 2015, 11:26:07 PM
Накодил на 3 удочки, работает нормально. Но не очень красиво выглядят "костылики" GOTO в строках 27, 85, 99, 130. Правда как их победить, пока ума не хватает. Буду очень признателен за подсказки, а то что-то голова уже дымится...

Code: (clickermann) [Select]
#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)
Title: Re: Бот для Fantastic Fishing
Post by: Vint on January 30, 2015, 09:30:20 AM
Как-то так:
Code: (clickermann) [Select]
#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
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 30, 2015, 11:40:58 AM
О даааа, спасибо большое, пойду тестить и думать чего с ботом сделать еще!
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 30, 2015, 12:34:25 PM
Vint, позвольте вопрос? Строка 34, обнуление переменной $c, ведь после этого программа выходит из цикла по строке 59 и начинает работу сначала, а нам этого не надо, нам надо чтоб она продолжала крутить цикл. Удалил строку 34 и бот заработал как положено. Это ошибка или я чего-то снова не допонял?
Еще вопросик, картинки готовим в формате .bmp в 24 битном, а если сделать скрин с помощью кликермана и посмотреть свойства файла, то там будет - глубина цвета 32... Это как так? Кликер делает скрины не в том фомате с которым работает сам?
Title: Re: Бот для Fantastic Fishing
Post by: Vint on January 30, 2015, 03:17:42 PM
Vint, позвольте вопрос? Строка 34, обнуление переменной $c, ведь после этого программа выходит из цикла по строке 59 и начинает работу сначала, а нам этого не надо, нам надо чтоб она продолжала крутить цикл. Удалил строку 34 и бот заработал как положено. Это ошибка или я чего-то снова не допонял?
Еще вопросик, картинки готовим в формате .bmp в 24 битном, а если сделать скрин с помощью кликермана и посмотреть свойства файла, то там будет - глубина цвета 32... Это как так? Кликер делает скрины не в том фомате с которым работает сам?
Ну так было в оригинале.
Оригинальный скрипт при поиске "1kl.bmp"...."33kl.bmp" вызывал VYLOV() и тоже не повторял, шёл дальше на поиск "sadok.bmp". Повторял он только если не найдено ничего.
стр. 85 GOTO (c)

Кликерм сохраняет с альфа каналом 32 бита. Ищется всё прекрасно. При создании в 24 бита без альфы тоже всё нормально.
Он альфа канал не задействует, прозрачность в функциях по другому задаётся.
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 30, 2015, 03:31:51 PM
Ок, спасибо)
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 31, 2015, 04:16:54 PM
Допилил бота, выношу на Ваш суд  :D
Бот умеет ловить на 3 удочки,  определяет момент начала клева, активирует соответствующую удочку, корректно определяет момент подсечки, подсекает и вываживает рыбу. Рыбачит до полного садка, затем идет на базу, продает всю рыбу из садка и возвращается на локацию, где вновь начинает ловить. И так до "посинения" пока его не остановят или не сломаются снасти (садок) или не кончится наживка. За этим необходимо следить вручную. Можно, конечно, это все автоматизировать, но увеличится нагрузка на процессор, да и проверку снастей делаем редко, посему будет вручную. Благодарю всех, кто помогал и подсказывал, без Вас бы не обошелся  :).
Чуть позже, распишу как его настроить и использовать.

Code: (clickermann) [Select]
#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
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on January 31, 2015, 10:43:03 PM
Итак, приступим к настройке бота под твои, конкретно твои нужды, мой юный паддаван , гм...рыболов.
Делать мы это будем пошагово и неторопясь  :).  Во первых строках своего письма, спешу сообщить тебе, мой друг, о первой строке моего бота...если у тебя нет 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)

 



Title: Re: Бот для Fantastic Fishing
Post by: Vint on February 01, 2015, 12:06:12 AM
Ну нифига себе автоматизация. А научить бота самого все это находить? А то получается полуфабрикат.
Все эти чудо шаги пройдет только истинный рыболов, в смысле - человек у которого терпение безгранично. И то, только если будет постоянно напоминать себе известную фразу: "лучше день потерять зато потом за час долететь".
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 01, 2015, 12:38:43 PM
На самом деле, там все просто и эти шаги, если играешь руками, делаешь каждый раз. Нужно внести всего-то 7 координат (хотя, нет вру - 14 точек). Морозиться с автоматическим определением координат как-то не очень хочется  :)  да и бот разрастется, как добрый кабанчик  :o А так один раз забил точки и все.
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 01, 2015, 06:34:10 PM
Продолжаем настраивать бота.
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 шт скриншотов:

Для облегчения твоей нелегкой доли, в деле изготовления картинок, вот тебе маленькая программка для делания скринов:

Code: (clickermann) [Select]
$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

На этом, мой поток сознания заканчивается, до скорых встреч, мой юный паддаван! Ни хвоста, ни чешуи тебе :)

Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 01, 2015, 06:49:23 PM
Дык вопросы в личке задают, а тут расписал один раз и все  8)

Ну и на всяк случай прикладываю архив со скринами, которые нужны.

Добавил небольшое видео:
https://drive.google.com/file/d/0B2p1e64YGUkkZHBnMkZaWWg1YkE/view?usp=sharing
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 02, 2015, 04:28:29 PM
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104). Причем, код сначала проверил - все сработало, а вот в окне рыбалки прыгает а не плавно ведет  :'(
Это особенность окна или я туплю?

Code: (clickermann) [Select]
#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
Title: Re: Бот для Fantastic Fishing
Post by: Vint on February 02, 2015, 04:53:12 PM
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104).
Ты про этот? http://crapware.aidf.org/forum/index.php?topic=8.msg2276#msg2276
Потерял обнуление  переменной цикла
Code: (clickermann) [Select]
FOR($MOVE_i=0, ......для версии 4.11
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 02, 2015, 05:03:56 PM
Спасибо буду пробовать дальше
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 02, 2015, 07:33:56 PM
Пытался прикрутить подпрограмму плавного движения мышки от Oravena, ничего не вышло, бот просто прыгает в заданную точку (строка 104).
Ты про этот? http://crapware.aidf.org/forum/index.php?topic=8.msg2276#msg2276
Потерял обнуление  переменной цикла
Code: (clickermann) [Select]
FOR($MOVE_i=0, ......для версии 4.11

Ввел обнуление переменной, все равно не арбайтен(
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on February 03, 2015, 08:15:02 PM
С помощью более опытных и понимающих товарищей, разобрался с плавным перемещением мыши прикрутил таки к боту. Также, поправил кое-где задержки, чтоб было больше похоже на человека  ;D
Также чуток изменил подпрограмму вываживания рыбы, для снижения нагрузок на удилище и катушку при вытягивании. Теперь можно смело тянуть рыбу в 30-35% от мощности снастей (хотя, рекомендуется не более 20%).

Code: (clickermann) [Select]
#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
Title: Re: Бот для Fantastic Fishing
Post by: максим32 on March 14, 2015, 04:47:54 PM
Привет BubukaBomb, сегодня сделал все как ты написал, все получилось, но после того как бот закидывает 3 удочки, он сразу же идет на базу и продает всю рыбу. Т.е не ждет пока рыба клюнет. что может быть не так? Координаты все твои, весь код твой, лока перешеек, короче все как и у тебя, может в скайп позвонишь мне посмотришь, в долгу не останусь? скайп makar25619, спасибо
Title: Re: Бот для Fantastic Fishing
Post by: WILDTHING on March 25, 2015, 05:58:30 PM
вопросик а можете сделать самого простого бота чтобы ловил на 1 спининг и никуда неходил ничего непроверял и непродавал тупо ловил ибо сам я в этом просто нуб
Title: Re: Бот для Fantastic Fishing
Post by: WILDTHING on March 28, 2015, 07:51:00 PM
заплачу за бота. необходимо ловля на 1 удочку и 1 донку с переходом на базу,продажа рыбы и обратно
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on March 29, 2015, 06:51:39 AM
Таки я не понял, нужно ловить на спиннинг или все же 1 поплавок + 1 донка? Спиннинг у меня есть - ловит нормально, сделать 2-е удочки легко из 3-х.
Title: Re: Бот для Fantastic Fishing
Post by: WILDTHING on March 29, 2015, 10:42:06 AM
тут дело вот в чем версия 4,11 почемуто скрины черного экрана делает а 4,07 невидит клаву вот и немогу определиться как проще будет сделать бота и на что отпишись в скайп prostowild я в инвизе как увижу сообщугу отвечу
Title: Re: Бот для Fantastic Fishing
Post by: WILDTHING on March 29, 2015, 10:43:33 AM
важно чтобы ловил на 2 удочки разного типа
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on March 29, 2015, 11:25:24 AM
Ответил в личку
P.S. Там на главной странице сайта есть кошельки, вот туда и закинь денег, скок не жалко)
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on March 30, 2015, 12:13:38 PM
Всем привет! Пришло время для новой версии бота фантастической рыбалки. Так как в личку достаточное количество вопросов, вновь постараюсь объяснять поподробнее.
Новый бот обзавелся потоками, которые отслеживают всплывающие окна (вылов клада, достижения, разрыв связи с сервером) и автоматически закрывают все эти окна и восстанавливают связь с сервером. Также бот отслеживает наличие крючков на уде и если крючок износился, автоматически ставит из рюкзака крючок  на удочку (для этого нужно иметь в рюкзаке запас в 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 пикс. Там идет какой-то неконтролируемый сдвиг картинок и бот сбивается.
Title: Re: Бот для Fantastic Fishing
Post by: BubukaBomb on April 02, 2015, 10:47:11 AM
Внимание всем кто использует кликермана для ФФ!!!
После последнего обновления игры, возникли проблемы с работой кликермана в окне ФФ. Возможно, разрабы добавили какую-то защиту от кликера. Ни в коем случае, во избежание бана в игре, не нужно жаловаться в чате и на форуме на то, что игра глючит. Пути решения я уже нащупываю (вроде получается), через несколько дней будет решение проблемы, а может и не будет...как получится  ;D
Title: Re: Бот для Fantastic Fishing
Post by: veter on April 05, 2015, 04:25:51 PM
Вариант спиннинга каким то чудом после обновы ФФ работает.
Наверняка в есть кое какие ошибки в скрипте, строго не судите, это мой первый скрипт, написанный с легкой подачи BubukaBomb )

usb клавиатура
координаты для второго монитора ( во весь экран )
к окну clickermann не привязывал
Снасти на 70 кг.
База Дунай
Локация Западная Дельта

Code: (clickermann) [Select]
// проверяем садок 
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



Title: Re: Бот для Fantastic Fishing
Post by: hronnius on April 17, 2015, 02:54:05 PM
Привет BubukaBomb, сегодня сделал все как ты написал, все получилось, но после того как бот закидывает 3 удочки, он сразу же идет на базу и продает всю рыбу. Т.е не ждет пока рыба клюнет. что может быть не так? Координаты все твои, весь код твой, лока перешеек, короче все как и у тебя, может в скайп позвонишь мне посмотришь, в долгу не останусь? скайп makar25619, спасибо
таже проблема
Title: Re: Бот для Fantastic Fishing
Post by: dashzt on June 22, 2015, 07:10:35 PM
Написал небольшой скрипт на одну удочку, подробнее тут (http://zhyk.ru/forum/showthread.php?t=1025219)
Title: Re: Бот для Fantastic Fishing
Post by: som78 on July 16, 2015, 02:33:11 PM
вообще ничего не понял(((
Title: Re: Бот для Fantastic Fishing
Post by: som78 on July 16, 2015, 04:10:01 PM
наконец то я неуч разобрался что к чему:) ну как и было сказано после обновы не работает,а когда рабочая версия будет? заранее благодарен!
Title: Re: Бот для Fantastic Fishing
Post by: Станислав Михайлович on November 12, 2015, 07:14:09 AM
админ тему можно закрывать у игры поставили хорошую защиту.Никакой  кликер работать небудет просто тупо выкинет с игры это тут уже не кликер нужен, а программы обходящие защиту типа как на варфейс  :(так что тему нужно закрывать 100%.
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on December 15, 2015, 04:11:23 PM
Если прятать кликерман программой "WinHide.SB" то все нормально работает. У меня, по крайней мере, работает. Пробуйте.
Title: Re: Бот для Fantastic Fishing
Post by: Elmore on December 30, 2015, 05:40:00 PM
[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)
Может кто-то сможет подсказать в чем проблема?
В старой версии кликера (и кода) я бы разобрался, но в новой не удалось..
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on December 30, 2015, 08:01:26 PM
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.  А что бездействует - смотри файлы 1KL.bmp, 11KL.bmp, 2KL.bmp, 22KL.bmp. Бот по ним определяет момент поклевки - изменение картинки.
Title: Re: Бот для Fantastic Fishing
Post by: Elmore on December 30, 2015, 08:31:13 PM
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.  А что бездействует - смотри файлы 1KL.bmp, 11KL.bmp, 2KL.bmp, 22KL.bmp. Бот по ним определяет момент поклевки - изменение картинки.

Пробовал и с его картинками и со своими - безрезультатно. Понять бы как именно скрипт определяет поклевку... В более старой версии это было ясно сразу, а тут нужна помощь с разбором.
Понятно, что по изменению картинки. Но где в скрипте указаны их координаты и как их "прочитать" в нынешнем виде?

Code: (clickermann) [Select]
// ожидание поклевки и вылов рыбы
$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]
Code: (clickermann) [Select]
// Бот предназначен для игры в оконном режиме "без привязки", с окном клиента игры размером: ширина=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]
 
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on December 30, 2015, 11:49:14 PM
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.
Title: Re: Бот для Fantastic Fishing
Post by: Elmore on December 31, 2015, 04:51:59 PM
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.
Спасибо, доберусь до игры, обязательно опробую. С наступающим!
Title: Re: Бот для Fantastic Fishing
Post by: Elmore on January 07, 2016, 12:20:16 AM
И так. Добравшись добрался до настройки, возникло несколько вопросов:
1) Откуда берутся картинки KRUG и STREL ? Координаты, для GETSCREEN этих картинок для меня загадка. Нужно не только сделать эти картинки, но и переписать координаты для их определения. А сделать это без понимания "что и для чего" - не выйдет.
2) Вы сами дописывали скрипт? Если да, то подскажите, откуда берется $UD1_X1
Со многими GETSCREEN похожая запарка. Им нужно указать точные координаты, а разобраться, что именно указывать, не получается.
3) Какой размер окна вы используете с кликером?
Quote
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.
Заметил такое, видимо не всегда проходит один клик. Можно попробовать лечить двойным кликом, когда уже заставлю его работать.
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on January 07, 2016, 12:26:33 PM
Скрипт, я не дописывал, это изначально мой скрипт, я его и писал (потерял старый логин).
1. Картинка "KRUG" получается из кружка на шкале катушки (когда рыбу тянешь, снизу под удочкой 2 шкалы - нагрузка на удилище и нагрузка на катушку, слева у них кругляши, вот из катушечного кругляша и получается). Картинка "STREL" это белый треугольник, который бегает по шкалам нагрузки, собственно указатель нагрузки.
2. $UD1_X1 это координата по "Х" точки заброса удочки №1 (строка № 238).
3. Размер окна у меня выходит 1004 на 774, но это оно ставится по умолчанию, сам я его не меняю. Только программой "InqSoft Window Scanner 1.7" (на форуме есть ссылки) закидываю окно программы в правый верхний угол, чтоб не мешалось. Советую сразу определиться с размерами и положением окна раз и навсегда - так будет легче).
4. Пытаться "лечить" работу скрипта двойными кликами и другими методами без сокрытия самой программы - это аспирин для обезглавленного. Не ломай голову, она давно уже сломана и решение найдено.

P.S. В архиве не хватало еще одной картинки KLAD1, вот она

Title: Re: Бот для Fantastic Fishing
Post by: Станислав Михайлович on February 11, 2016, 09:26:45 AM
люди выкладывайте что кто придумал :)
Title: Re: Бот для Fantastic Fishing
Post by: Станислав Михайлович on February 11, 2016, 09:28:29 AM
мож кто написал на спиннинг на 1 уду выкладите,вариант хороший просто 0 затрат кидает себе ловит вот классно было бы.
Title: Re: Бот для Fantastic Fishing
Post by: fraaa on August 31, 2017, 11:22:35 AM
Добрый день!

Хочу предложить свою версию бота. Работает с двумя донками(2 и 3 ячейка).
для запуска я использовал clickermann 4.12 и hide- приложение. Запускаем кликер и прячем его, чтобы игра не знала о нем.
Принцип работы прост. Он по очередно проверяет донки и вытягивает если рыба клюет. Если долго не клюет ~15 сек. Он перебрасывает уду.
Поля сканирования 0,600 - 1000, 1000 можно увеличить. Я играл в оконном режиме на fullhd экране, передвинув окно в верхний левый угол.Скрипт запускать bot5(то есть последний).
Всем спасибо!
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on September 21, 2017, 09:55:08 PM
Всем привет) Может кто победил антибота в игре? Подскажите метод решения проблемы, пожалуйста) Цифры в окошке антибота слишком мелкие и постоянно меняются их очертания((( Распознавалки от Винта и Драмстера, увы, не справляются - процент распознавания не выше 40-50... Нужен другой метод) есть мысли?)
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on September 22, 2017, 11:04:25 PM
Как-то сразу напомнило: "— Билли, сдаётся мне, твой друг хочет обидеть нас!" (с).
А если по делу, то:
1. Ни в коей мере не принижаю талант и умения авторов обеих скриптов-распознавалок, работают они четко, грамотно и надежно, но, увы, не в моем случае. И уж явно прочитал и описание скриптов и разобрался в работе обоих скриптов и обучение проводил и времени потратил достаточное количество, ибо откуда же еще мог взяться результат в 40%-50%
2. Ткните пальцем где я прошу готовый скрипт? Думается мне, что метод и готовый инструмент, две большие разницы так-то.
3. Отдельное спасибо за упоминание моего ума и отношения.... приятно, право слово)
P.S. Вопрос решил без использования распознавалок, прошу прощения у уважаемых форумчан, что потратили на меня ничтожного свое внимание и время)
Title: Re: Бот для Fantastic Fishing
Post by: tmp~1 on September 23, 2017, 04:48:03 PM
Не стоит огорчаться, человек просто не понимает, что люди сюда приходят не лично к нему, чтобы парить его вопросами, на которые он не знает ответ. Лично к нему никто не приходит. А приходят сюда чтобы поклониться гению Johnny, который собирает тысячи, а может и миллионы таких как мы. Каждого, отдельно взятого, такого "учителя", в тени самого Johnny даже невидно. Но надо понимать, что каждый пришедший сюда, приносит к алтарю Johnny что то новое, поэтому так важен для Johnny.

Это церковь Johnny и мы его паства, а пастырь наш - Johnny. И право голоса у всех равное.

Права следить за порядком даны только супермодераторам, иные - глупцы и самозванцы.
Наезжающий на "овец" из паствы Johnny и разгоняющий "стадо" ЕГО - заблудший грешник. Если он не покаится, то не быть ему уважаемым.

Форум, к сожалению, очень неоживленный. Одни уважаемые и остались... :-\ И это печально, как бы странно это не звучало.

Каждый человек, который не поленился зарегистрироваться на форуме и принять участие в обсуждениях - уже уважаемый форумчанин. Он и определяет тот самый "список уважаемых", но только для себя.

Давайте не будем бычить на тех кого пригласил Johnny!?
Title: Re: Бот для Fantastic Fishing
Post by: dramster on September 24, 2017, 02:40:23 AM
 :o

просто даже и....... просто.... и нечего сказать....



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



и.... давайте жить дружно, не ссорьтесь
(https://i.imgur.com/NzlAG2f.png)
Title: Re: Бот для Fantastic Fishing
Post by: Svarog on November 25, 2017, 08:32:24 PM
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
Title: Re: Бот для Fantastic Fishing
Post by: Vigi on February 07, 2018, 12:20:28 PM
а можно подробней?
Title: Re: Бот для Fantastic Fishing
Post by: Vigi on February 07, 2018, 12:53:17 PM
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
Title: Re: Бот для Fantastic Fishing
Post by: Автоматизатор on February 08, 2018, 05:53:10 PM
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
Нужно было так и писать: выложите скрипт пожалуйста
Title: Re: Бот для Fantastic Fishing
Post by: Rograr on March 07, 2018, 03:58:22 PM
 выложите скрипт пожалуйста
Title: Re: Бот для Fantastic Fishing
Post by: trong38 on November 12, 2021, 04:08:14 PM
народ а есть рабочая версия или нету?
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 09, 2022, 08:19:04 PM
Че-то мне интересно стало...)) А как там вообще рыбу ловить? Я что-то разобраться не могу... ))
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 10, 2022, 12:11:49 PM
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
я про вот это хотел узнать...
Ну, здесь наверняка он намутил управление скриптом через ВК, или телегу )) + при возникновении капчи, ее скрин отсылается на мыло. Чел получает капчу, смотрит, и отсылает через вк, или телегу кликеру команду - что прописать ))
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 11, 2022, 01:08:47 AM
Хах! Прикольно! )))
https://youtu.be/MuRbeAqNi7c (https://youtu.be/MuRbeAqNi7c)
Буду дальше мутить...))
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 11, 2022, 11:18:27 AM
Осталось поработать с капчей и с продажей!  ;D  (сообщения в чат посылаю с мобильника)
https://www.youtube.com/watch?v=kbaK2bF3ARc
Title: Re: Бот для Fantastic Fishing
Post by: Vint on March 11, 2022, 05:19:45 PM
Так птичку надо кликать и капча не вылезет.
Капча не толерантненькая  ;D
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 12, 2022, 10:15:14 AM
Так птичку надо кликать и капча не вылезет.
Капча не толерантненькая  ;D
Не понял... Какую птичку?
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 12, 2022, 10:20:50 AM
Ааааа...! Это вот эти утки, которые летают, их тыркать надо, чтоб капча не вылезла?  ;D
А я блин распознаванием капчи занялся...  ;D
Title: Re: Бот для Fantastic Fishing
Post by: Vint on March 12, 2022, 05:26:02 PM
 ;D ;D ;D
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 12, 2022, 06:48:01 PM
Тогда скучненько опять стало... Скрипт работает уже и "хлеба не просит"... Все ловится и все продается...
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 13, 2022, 03:38:21 AM
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
А не банят за ловлю круглыми сутками...? Я в БДО бота на рыбалку ставил сутками (бот удочки сам менял), так его забанили, что в принципе и логично - живому челу спать необходимо, как минимум... ))
Title: Re: Бот для Fantastic Fishing
Post by: Hito on March 13, 2022, 02:22:31 PM
Почитал тему немного и в глаза бросилось, что люди пытаются запустить на своих компах чужие скрипты и потом ломают голову - почему же не получается...)
Я однажды работал над одним проектом, под названием - "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 - ВСЕ мои скрипты начинаются вот так:

Code: (clickermann) [Select]
$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)

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