Author Topic: Бот для Fantastic Fishing  (Read 94324 times)

0 Members and 2 Guests are viewing this topic.

Elmore

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #75 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)
Может кто-то сможет подсказать в чем проблема?
В старой версии кликера (и кода) я бы разобрался, но в новой не удалось..

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #76 on: December 30, 2015, 08:01:26 PM »
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.  А что бездействует - смотри файлы 1KL.bmp, 11KL.bmp, 2KL.bmp, 22KL.bmp. Бот по ним определяет момент поклевки - изменение картинки.

Elmore

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #77 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]
 
« Last Edit: December 30, 2015, 09:20:14 PM by Elmore »

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #78 on: December 30, 2015, 11:49:14 PM »
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.

Elmore

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #79 on: December 31, 2015, 04:51:59 PM »
Попробуй более новый вариант. В архиве сам скрипт и нужные картинки, но лучше сделать свои. И координаты тоже нужно править под свой монитор.
Спасибо, доберусь до игры, обязательно опробую. С наступающим!

Elmore

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #80 on: January 07, 2016, 12:20:16 AM »
И так. Добравшись добрался до настройки, возникло несколько вопросов:
1) Откуда берутся картинки KRUG и STREL ? Координаты, для GETSCREEN этих картинок для меня загадка. Нужно не только сделать эти картинки, но и переписать координаты для их определения. А сделать это без понимания "что и для чего" - не выйдет.
2) Вы сами дописывали скрипт? Если да, то подскажите, откуда берется $UD1_X1
Со многими GETSCREEN похожая запарка. Им нужно указать точные координаты, а разобраться, что именно указывать, не получается.
3) Какой размер окна вы используете с кликером?
Quote
Elmore....Кликер работает, но поклевку не видит. Странное по логике заявление. Утверждаю, что "не спрятанный" кликер не работает. Удочки не забрасываются в водоем, игра через 5-10 минут рвет соединение, при продаже рыбы косяки (то продаст, то не продаст), при перемещении по базам можно остаться на старой базе...Т.е. такое чувство, как при плохом интернете. Но если спрятать кликер - то все проблемы уходят, как по волшебству.
Заметил такое, видимо не всегда проходит один клик. Можно попробовать лечить двойным кликом, когда уже заставлю его работать.
« Last Edit: January 07, 2016, 12:33:25 AM by Elmore »

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #81 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, вот она

« Last Edit: January 07, 2016, 01:23:45 PM by Svarog »

Станислав Михайлович

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #82 on: February 11, 2016, 09:26:45 AM »
люди выкладывайте что кто придумал :)

Станислав Михайлович

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #83 on: February 11, 2016, 09:28:29 AM »
мож кто написал на спиннинг на 1 уду выкладите,вариант хороший просто 0 затрат кидает себе ловит вот классно было бы.

fraaa

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #84 on: August 31, 2017, 11:22:35 AM »
Добрый день!

Хочу предложить свою версию бота. Работает с двумя донками(2 и 3 ячейка).
для запуска я использовал clickermann 4.12 и hide- приложение. Запускаем кликер и прячем его, чтобы игра не знала о нем.
Принцип работы прост. Он по очередно проверяет донки и вытягивает если рыба клюет. Если долго не клюет ~15 сек. Он перебрасывает уду.
Поля сканирования 0,600 - 1000, 1000 можно увеличить. Я играл в оконном режиме на fullhd экране, передвинув окно в верхний левый угол.Скрипт запускать bot5(то есть последний).
Всем спасибо!

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #85 on: September 21, 2017, 09:55:08 PM »
Всем привет) Может кто победил антибота в игре? Подскажите метод решения проблемы, пожалуйста) Цифры в окошке антибота слишком мелкие и постоянно меняются их очертания((( Распознавалки от Винта и Драмстера, увы, не справляются - процент распознавания не выше 40-50... Нужен другой метод) есть мысли?)

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #86 on: September 22, 2017, 11:04:25 PM »
Как-то сразу напомнило: "— Билли, сдаётся мне, твой друг хочет обидеть нас!" (с).
А если по делу, то:
1. Ни в коей мере не принижаю талант и умения авторов обеих скриптов-распознавалок, работают они четко, грамотно и надежно, но, увы, не в моем случае. И уж явно прочитал и описание скриптов и разобрался в работе обоих скриптов и обучение проводил и времени потратил достаточное количество, ибо откуда же еще мог взяться результат в 40%-50%
2. Ткните пальцем где я прошу готовый скрипт? Думается мне, что метод и готовый инструмент, две большие разницы так-то.
3. Отдельное спасибо за упоминание моего ума и отношения.... приятно, право слово)
P.S. Вопрос решил без использования распознавалок, прошу прощения у уважаемых форумчан, что потратили на меня ничтожного свое внимание и время)

tmp~1

  • Освоившийся
  • **
  • Posts: 31
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #87 on: September 23, 2017, 04:48:03 PM »
Не стоит огорчаться, человек просто не понимает, что люди сюда приходят не лично к нему, чтобы парить его вопросами, на которые он не знает ответ. Лично к нему никто не приходит. А приходят сюда чтобы поклониться гению Johnny, который собирает тысячи, а может и миллионы таких как мы. Каждого, отдельно взятого, такого "учителя", в тени самого Johnny даже невидно. Но надо понимать, что каждый пришедший сюда, приносит к алтарю Johnny что то новое, поэтому так важен для Johnny.

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

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

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

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

Давайте не будем бычить на тех кого пригласил Johnny!?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #88 on: September 24, 2017, 02:40:23 AM »
 :o

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



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



и.... давайте жить дружно, не ссорьтесь

« Last Edit: September 24, 2017, 03:09:19 AM by dramster »

Svarog

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Бот для Fantastic Fishing
« Reply #89 on: November 25, 2017, 08:32:24 PM »
Помощник работает без проблем, ловит-продает. Проверял двое суток без выключения. Могу выложить полный скрипт (644 строки). Проблему капчи решил (но нужна сторонняя программа).
P.S. Если интересно - жду)
« Last Edit: November 25, 2017, 08:38:54 PM by Svarog »