Author Topic: Бот для вскрытия тыковки в игре "небеса", платформа "Одноклассники"  (Read 5625 times)

0 Members and 1 Guest are viewing this topic.

syraxgt

  • Зашел в гости
  • *
  • Posts: 12
  • botall906
    • View Profile
Вот решил написать бота на вскрытие тыковки в игре "Небеса"
Как мы знаем из тыковки появляются материалы лазурит, циркон и т.к и вещи мглы для коллекции. Бот настраиваемый и может либо объединять материал (если он выбран в настройках) либо продавать, а так же складывать вещи мглы в сундук.
    Бот писался в версии V4.7, знаю, что версия старая, но любимая  ;).
    Скрипт находится в папке projects - Распаковка -Тыковка.cms.
    Открываем скрипт и в настройках выбираем, что продавать, а что объединять и складывать.
    Количество циклов вскрытия тыковки так же можно выставить в настройках.
    Бот стабильно работает в "Гугл хром" разрешение 1920х1080.

Я новичок со стажем 8) в кликере поэтому буду рад услышать замечания по  скрипту от старших товарищей.
   
« Last Edit: November 29, 2015, 12:52:14 AM by syraxgt »

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
//Реликвия мглы///
IF($tmal = 1) //  $tmal - разве правильная переменная может нужно $tma ?

LCLICK(949,556)  // для чего этот клик?

$xa1,$xb1, $xa2,$xb2 определять координаты игрового окна на случай его перемещения очень полезно, но может достаточно одной координаты, а все остальные высчитывать полагаясь на то, что место появления картинок в игре заранее известно и для ускорения работы можно каждой задавать координаты типа ($xa1+150,$xb1+365,$xa1+250,$xb1+425), для каждой картинки цифры коррекции сектора будут свои.

 $opred = 0
   If ($opred = 0) - зачем нужно это условие которое всегда выполняется или это бывший цикл?

а если сделать так?
Code: (clickermann) [Select]
// Бот вскрытия тыковки в игре небеса V1.1
// Автор SyraxGT
// бот стабильно работает при разрешении 1920х1080
#name "V1.1 ТыКоВкА"

-------------------// Настройка //-------------------
// если выставлена 1 объединяет материал, если 0 продаёт
$cir = 0 // Циркон
$izu = 0 // Изумруд
$laz = 0 // Лазурит
$ame = 1 // Аметист
$top = 1 // Топаз
// если выставлена 1 складывает в сундук, если 0 продаёт
$kol = 1  // Кольцо мглы
$amu = 1  // Амулет мглы
$dos = 1  // Доспех мглы
$sum = 1  // Сумрак
$rel = 1  // Реликвия мглы
$tma = 1  // Тьма

SUB(ищи картинку, $par3) // подпрограмма с параметрами
   $x3= $_xmouse
   $y3= $_ymouse
   WAITMS(1000)
   GETSCREEN
   IF_PICTURE_IN ($xa1,$xb1, $xa2,$xb2, $par3)
      LCLICK($_return1, $_return2)
   END_IF
END_SUB

SUB(ништяки, $par1,$par2,$par4) // подпрограмма с параметрами
   GETSCREEN
   IF_PICTURE_IN ($xa1,$xb1, $xa2,$xb2, $par1)
      $opred = 1
      move($_return1, $_return2)
      WAIT(1)
      LCLICK($_xmouse,$_ymouse)
      IF($par2 = 1)
         IF($par4 = 1)
            ищи картинку("объединить.bmp")
         else
            ищи картинку("сундук.bmp")
         END_IF
      else
         ищи картинку("объединить.bmp")
         WAITms(500)
         LCLICK($x3,$y3)
         ищи картинку("продать.bmp")
         ищи картинку("продать2.bmp")
      END_IF
   END_IF
END_SUB
// Начало //
LCLICK(949,556)  // для чего этот клик?
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Х.bmp")
   $xa1 = $_return1
   $xb1 = $_return2
END_IF

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "У.bmp")
   $xa2 = $_return1
   $xb2 = $_return2
END_IF

// количество раз распоковки тыковки, оптимально 9 раз
FOR($i, $i < 8)   // для версии 4.7
   //FOR($i=0, $i < 8)  // для версии 4.11
   GETSCREEN
   IF_PICTURE_IN ($xa1,$xb1, $xa2,$xb2, "тыковка.bmp", -1, 70)
      LCLICK($_return1, $_return2)
      WAIT(1)
      move($_return1+100, $_return2-7)
      LCLICK($_return1+100, $_return2-7)
      WAITMS(100)
      move($_return1, $_return2)
      WAIT(3)
   END_IF
END_CYC

ништяки("Циркон.bmp",$cir,1) // вызов подпрограммы (обязательно ниже подпрограммы)
ништяки("Изумруд.bmp",$izu,1)
ништяки("лазурит.bmp",$laz,1)
ништяки("аметист.bmp",$ame,1)
ништяки("топаз.bmp",$top,1)
ништяки("кольцо.bmp",$kol,2)
ништяки("амулет.bmp",$amu,2)
ништяки("доспех.bmp",$dos,2)
ништяки("сумрак.bmp",$sum,2)
ништяки("реликвия.bmp",$rel,2)
ништяки("тьма.bmp",$tma,2)
« Last Edit: November 29, 2015, 11:07:23 AM by Золотой »

syraxgt

  • Зашел в гости
  • *
  • Posts: 12
  • botall906
    • View Profile
IF($tmal = 1) //  $tmal - разве правильная переменная может нужно $tma ? Совершенное верно это ошибка

LCLICK(949,556)  // для чего этот клик?   положение курсора перед началом работы скрипта.

 $opred = 0
   If ($opred = 0) - зачем нужно это условие которое всегда выполняется или это бывший цикл?
 
Это вторая переработка моего скрипта, до этого без этого условия при продажи допустим циркона он кликал ещё раз по нему. Поэтому в этой версии я это оставил и не проверял будет ли скрипт работать без этого условия.
« Last Edit: November 29, 2015, 11:18:12 AM by syraxgt »

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
проверь работоспособность предложенного варианта и попробуй уточнить координаты картинок. Скрипт ускорится, а процессор разгрузится.
хорошо бы организовать проверку числа свободных ячеек в сумке и в зависимости от результата проводить число циклов вскрытия. невсегда удобно опустошать сумку, даже если тыкв больше 1000, да и настраивать скрипт в редакторе , тоже невсегда удобно, можно настройки вынести в ini файл и вызывать его горячей клавишей, чтоб удобно было менять в процессе работы.
« Last Edit: November 29, 2015, 11:16:59 AM by Золотой »

syraxgt

  • Зашел в гости
  • *
  • Posts: 12
  • botall906
    • View Profile
Ок, обязательно попробую  :)

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
с уточнением координат картинок подпрограмма  и её вызов будут выглядеть так.
Code: (clickermann) [Select]
SUB(ништяки, $par1,$par2,$par4,$par5,$par6,$par7,$par8) // подпрограмма с параметрами
   GETSCREEN
   IF_PICTURE_IN ($xa1+$par5,$xb1+$par6, $xa1+$par7,$xb1+$par8, $par1)
      $opred = 1
      move($_return1, $_return2)
      WAIT(1)
      LCLICK($_xmouse,$_ymouse)
      IF($par2 = 1)
         IF($par4 = 1)
            ищи картинку("объединить.bmp")
         else
            ищи картинку("сундук.bmp")
         END_IF
      else
         ищи картинку("объединить.bmp")
         WAITms(500)
         LCLICK($x3,$y3)
         ищи картинку("продать.bmp")
         ищи картинку("продать2.bmp")
      END_IF
   END_IF
END_SUB

ништяки("Циркон.bmp",$cir,1, 243,464,296,580) // вызов подпрограммы (обязательно ниже подпрограммы)


vasya1987

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Как у вас всё сложно:)
У меня как только сундук полон - запускается программа разбора шмота и объединения семечек и так по кругу