Author Topic: Бот-Кликер DarkOrbit (некорректно работает)  (Read 11648 times)

0 Members and 1 Guest are viewing this topic.

enselerizer

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Всем привет!
Начал писать примитивного бота-кликера для DarkOrbit, который собирает коробки, рандомно тыкает по миникарте, улетает при виде врага (пока не сделал), и немного имитирует действия человека посредством рандома.

Для работы не подходит colormode, ибо тогда есть вероятность неправильного тыка. Для этого в настройках DO вставил низкое качество коробок (нет анимации).

Вместе с ботом использую самописную вспомогательную прогу на Алгоритме 2, которая добавляет 2 маркера области обнаружения и сбора коробок.


Проблема возникла после усложнения кода, бот начал вести себя неадекватно в некоторых случаях.

Вот код скрипта. В него добавил комментарии для ясности:
Code: [Select]
WAITMS(RND(90,110))
IF_PIXEL_IN(0,0,0,0, 255)
   //Пока не сделано
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "line.bmp")//Если обнаружена Миникарта (обнаружение идёт по полоске опасности слева от самой карты)
      $click_to_mapX = RND($_return1+10,$_return1+191)//Рандомом выводим область клика в пределах карты по Х
      $click_to_mapY = RND($_return2+6,$_return2+115) //Рандомом выводим область клика в пределах карты по Y
     
      $mapBorderUpX = $_return1+10    //Задаём значения границ карты как переменные (4 строки)
      $mapBorderUpY = $_return2+6
      $mapBorderDownX = $_return1+191
      $mapBorderDownY = $_return2+115
     
      $mapCheckX = $_return1+194  //Задаём координаты точки, по которой в дальнейшем проверяем размер миникарты (2 строки)
      $mapCheckY = $_return2+118
     
      IF_PIXEL_IN($mapCheckX,$mapCheckY,$mapCheckX,$mapCheckY, 4013373) //Если карта имеет нужный размер...
         IF_PICTURE_IN (0,0, $_xmax,$_ymax, "uppoint.bmp")//Если замечена верхняя левая граница зоны сбора коробок (её ставлю с помощью отдельной проги)
            $boxingZoneUpX = $_return1+64 //Пишем значения в переменные
            $boxingZoneUpY = $_return2+64
         ELSE                               //Иначе...
            $boxingZoneUpX = $_xmax/2-300 //Устанавливаем зону сбора как поле 600х600 по центру экрана (2 строки)
            $boxingZoneUpY = $_ymax/2-300
         END_IF
         F_PICTURE_IN (0,0, $_xmax,$_ymax, "downpoint.bmp")//То же самое с нижней правой границей  (6 строк)
         $boxingZoneDownX = $_return1-1
         $boxingZoneDownY = $_return2-1
      ELSE
         $boxingZoneDownX = $_xmax/2+300
         $boxingZoneDownY = $_ymax/2+300
      END_IF
     
      IF_PIXEL_IN($boxingZoneUpX,$boxingZoneUpY, $boxingZoneDownX,$boxingZoneDownY, 8242172)//Если видим коробку, кликаем по ней, рандомный клик по миникарте (задавали выше), ожидание, ещё раз клике, немного изменив значение рандома. Это нужно для имитаций действий человека.
         LCLICK($_return1, $_return2)
         WAITMS(RND(990,1100))
         LCLICK($click_to_mapX, $click_to_mapY)
         WAITMS(RND(200,300))
         LCLICK($click_to_mapX+RND(-1,1), $click_to_mapY+RND(-1,1))
      ELSE //иначе...                                                             
         IF_PIXEL_IN($mapBorderUpX,$mapBorderUpY, $mapBorderDownX,$mapBorderDownY, 14054500)//Ищем пиксель, которым обозначается точка прибытия на миникарте в её пределах. Если пиксель есть- значит кораблик ещё летит. Ничего не делаем.
           
         ELSE     //Иначе...
            LCLICK($click_to_mapX, $click_to_mapY) //Рандомно тыкаем по миникарте, имитируя действия человека.
            WAITMS(RND(200,300))
            LCLICK($click_to_mapX+RND(-1,1), $click_to_mapY+RND(-1,1))
         END_IF
         
      END_IF
     
   ELSE   //Если миникарта имеет неправильный размер, даём голосовое оповещение
      SOUND("incorrect.wav")
   END_IF
ELSE    //Если миникарты не видно, даём голосовое оповещение
   SOUND("forget.wav")
END_IF
END_IF
« Last Edit: May 26, 2013, 02:29:00 PM by enselerizer »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Где GETSCREEN ><
нет одного END_IF
25 строка "F_PICTURE_IN"
« Last Edit: May 26, 2013, 04:57:09 PM by Oraven »

enselerizer

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Спасибо огромное,

А с GETSCREEN - он у меня в начале, я его не скопировал (FAIL)

Karas008

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Re: Бот-Кликер DarkOrbit (некорректно работает)
« Reply #3 on: August 05, 2014, 01:27:42 PM »
Где достать эти файлы?

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Бот-Кликер DarkOrbit (некорректно работает)
« Reply #4 on: August 05, 2014, 05:20:37 PM »
там щас вроде чистка ботоводов началась не спалили еще?