Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: syraxgt on November 29, 2015, 12:30:35 AM
-
Вот решил написать бота на вскрытие тыковки в игре "Небеса"
Как мы знаем из тыковки появляются материалы лазурит, циркон и т.к и вещи мглы для коллекции. Бот настраиваемый и может либо объединять материал (если он выбран в настройках) либо продавать, а так же складывать вещи мглы в сундук.
Бот писался в версии V4.7, знаю, что версия старая, но любимая ;).
Скрипт находится в папке projects - Распаковка -Тыковка.cms.
Открываем скрипт и в настройках выбираем, что продавать, а что объединять и складывать.
Количество циклов вскрытия тыковки так же можно выставить в настройках.
Бот стабильно работает в "Гугл хром" разрешение 1920х1080.
Я новичок со стажем 8) в кликере поэтому буду рад услышать замечания по скрипту от старших товарищей.
-
//Реликвия мглы///
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) - зачем нужно это условие которое всегда выполняется или это бывший цикл?
а если сделать так?
// Бот вскрытия тыковки в игре небеса 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)
-
IF($tmal = 1) // $tmal - разве правильная переменная может нужно $tma ? Совершенное верно это ошибка
LCLICK(949,556) // для чего этот клик? положение курсора перед началом работы скрипта.
$opred = 0
If ($opred = 0) - зачем нужно это условие которое всегда выполняется или это бывший цикл?
Это вторая переработка моего скрипта, до этого без этого условия при продажи допустим циркона он кликал ещё раз по нему. Поэтому в этой версии я это оставил и не проверял будет ли скрипт работать без этого условия.
-
проверь работоспособность предложенного варианта и попробуй уточнить координаты картинок. Скрипт ускорится, а процессор разгрузится.
хорошо бы организовать проверку числа свободных ячеек в сумке и в зависимости от результата проводить число циклов вскрытия. невсегда удобно опустошать сумку, даже если тыкв больше 1000, да и настраивать скрипт в редакторе , тоже невсегда удобно, можно настройки вынести в ini файл и вызывать его горячей клавишей, чтоб удобно было менять в процессе работы.
-
Ок, обязательно попробую :)
-
с уточнением координат картинок подпрограмма и её вызов будут выглядеть так.
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) // вызов подпрограммы (обязательно ниже подпрограммы)
-
Как у вас всё сложно:)
У меня как только сундук полон - запускается программа разбора шмота и объединения семечек и так по кругу