1
Использование / Re: Анализ экрана
« on: January 07, 2019, 06:02:23 PM »
Немного исправил и оптимизировал код, рандомом думаю заняться как будет готова основная часть. По картам, попробую собрать и чуть позже выложить всю инфу которую имею. По сути это единственное что осталось, а так бот уже вполне способен в ущерб винрейту набивать GG-шки, апать акк, собирать ежедневный лут, достаточно только адаптировать под свое разрешение, если кому интересно.
Code: (clickermann) [Select]
// 07.01.2019
#name "Гвинт 3"
$end = 0
$coin = 0
$do = 0
THREAD(main, 0)
SUB(ожидание_1,$par13,$par14,$par15,$par16,$par17) // подпрограмма ожидания в параметрах; координаты, цвет, задержка, mode(!,=)
if ($par13 <= 1299)
if($par13 => 1264) // Ищем общие координаты между указанной точкой и ok.bmp (226 строка)
$par13 = 1264
end_if
$par18 = 1299
$par20 = $par13
else
$par18 = $par13
$par20 = 1264
end_if
if($par14 <= 832)
if($par14 => 811)
$par14 = 811
end_if
$par19 = 832
$par21 = $par14
else
$par19 = $par14
$par21 = 811
end_if
if($par17 = 1)
GETSCREEN($par20,$par21,$par18,$par19)
WHILE(PXL ($par13,$par14) = $par15)
WAITMS ($par16)
GETSCREEN($par20,$par21,$par18,$par19)
END_CYC
else
GETSCREEN($par20,$par21,$par13,$par14)
WHILE(PXL ($par13,$par14) ! $par15)
WAITMS ($par16)
GETSCREEN($par20,$par21,$par13,$par14)
END_CYC
end_if
END_SUB
SUB(гетскрин,$cord1,$cord2)
if ($cord1 <= 1299)
if($cord1 => 1264) // Подпрограмма синхронизации координат между указанной точкой и ok.bmp (226 строка)
$cord1 = 1264
end_if
$cord3 = 1299
else
$cord3 = $cord1
$cord1 = 1264
end_if
if($cord2 <= 832)
if($cord2 => 811)
$cord2 = 811
end_if
$cord4 = 832
else
$cord4 = $cord2
$cord2 = 811
end_if
GETSCREEN($cord1,$cord2,$cord3,$cord4)
END_SUB
ожидание_1(1688,1101,5469067,300,0) // ждем главное меню
LCLICK(1866,671) // 4281709
гетскрин (1233, 1359)
WHILE(PXL (1233, 1359) ! 16777215) // Поиск обмена
гетскрин(1282,818)
if(pxl (1282,818) ! 16777215)
WAITMS (100)
else
LCLICK(1284,831)
waitms(300)
LCLICK(818,737)
end_if
гетскрин (1233, 1359)
END_CYC
// move(2362,159)
// waitms(50)
// GETSCREEN (122,260,1711,1058)
// COLORMODE(6, 122,260,1711,1058)
// IF_PICTURE_IN (122,260,1711,1058, "Весемир.bmp", -1, 100) //Мулиган
// $ved = $ved + 1
// end_if
// IF_PICTURE_IN (122,260,1711,1058, "Ламберт.bmp", -1, 100)
// $ved = $ved + 1
// if($ved > 1)
// LCLICK($_return1,$_return2)
// waitms(200)
// $ved = 1
// end_if
// end_if
// IF_PICTURE_IN (122,260,1711,1058, "Эскель.bmp", -1, 100)
// $ved = $ved + 1
// if($ved > 1)
// LCLICK($_return1,$_return2)
// waitms(200)
// $ved = 0
// end_if
// end_if
// SCANPICTURE ($house, 122,260,1711,1058, "Лошадь.bmp")
// if(arrsize($house) = 4)
// $h_y = arrpop($var)
// $h_x = arrpop($var)
// LCLICK($h_x,$h_y)
// waitms(200)
// end_if
// IF_PICTURE_IN (122,260,1711,1058, "Плотва.bmp", -1, 90)
// LCLICK($_return1,$_return2)
// waitms(200)
// end_if
LCLICK(1233,1359) //клик "Закончить обмен"
WAITMS(100)
LCLICK(1153,823) // "да"
WAITMS(700)
ожидание_1(1662,102,16777215,100,1) //ожидание мулигана
гетскрин (1281,864)
COLORMODE(7,1281,864,1281,864)
if(PXL (1281,864) = 8355839) // Проверка монетки
$coin = 0
else
$coin = 1
END_if
waitms(1500)
ожидание_1(2500,659,1,100,0) // ожидание хода
wait(1)
гетскрин (170,1397)
if(PXL (170,1397) = 11075329)
LCLICK(313,956)
waitms(300)
WHILE(PXL (1511,70) ! 16777215) // Абилка
LCLICK(313,956)
гетскрин (1511,70)
WAITMS (500)
END_CYC
waitms(200)
LCLICK(1922,908)
end_if
waitms(1000)
while($end = 0) // цикл ожидания конца раунда
ожидание_1(2500,659,1,100,0) // ожидание хода
//Ход
GETSCREEN
if (PXL (1234,110) = 16777215)
IF_PIXEL_IN (2453,765, 2505,796, 6992588)
$end = 2
goto(skipdo)
end_if
end_if
LCLICK(1275,1284)
waitms(300)
if ($do = 1)
move(1303,1064)
waitms(300)
LCLICK(1303,1064)
$do = 0
else
move(1526,784)
waitms(300)
LCLICK(1526,784)
$do = 1
end_if
if ($coin = 0) // использование монетки
wait(3)
гетскрин (1014,865)
COLORMODE(7,1014,865,1014,865)
if(PXL (1014,865) ! 16777087)
LCLICK(1176,774)
waitms(500)
move(1392,773)
waitms(100)
LCLICK(1392,773)
else
LCLICK(1004,783)
waitms(500)
move(1392,773)
waitms(100)
LCLICK(1392,773)
end_if
$coin = 1
end_if
waitms(500)
GETSCREEN (59,1378, 78,1413)
IF_PICTURE_IN (59,1378, 78,1413, "end.bmp", -1, 100) //Ожидание конца руки
$end = 1
END_IF
if($end ! 1)
$time = $_time_t + 10
гетскрин (2436,625)
WHILE(PXL (2436, 625) ! 16777215) // ожидание конца анимаций, для завершения хода
if ($time > $_time_t)
waitms(100)
else
RCLICK($_xmouse,$_ymouse) //скипаю ход, если залип
waitms(300)
LCLICK(1275,1284)
waitms(300)
LCLICK(435,1288)
wait(2)
end_if
гетскрин(2436,625)
END_CYC
LCLICK(2436,625)
end_if
waitms(100)
end_cyc
if($end ! 2)
ожидание_1(2454,643,16777215,100,0) // ожидание паса
end_if
skipdo:
LDOWN(2476,673) // пас
waitms(600)
LUP(2476,673)
ожидание_1(1255,87,16777215,100,0) // ожидание паса противника
wait(5)
KEYPRESS(#ESC)
waitms(150)
LCLICK(1219,821) // консид
$exit = 1
$score = $score + 1
Print($score)
SETTHREAD(main, 2)
end_thread
SETTHREAD(main, 1)
wait(1)
$check = 0
while($check = 0)
if($exit = 1)
$check = 1
$exit = 0
else //colormode не нужен, снимок берем из потока, каждый getscreen должен влючать в себя кусок 1264,811, 1299,832
IF_PICTURE_IN (1264,811, 1299,832, "ok.bmp", -1, 100) //Реагирование на внезапные ошибки
$check = 1
LCLICK(1279,817)
SETTHREAD(main, 2)
else
waitms(100)
end_if
end_if
END_CYC
if(PXL (1688,1101) ! 5469067) //этот блок нужен для завершенного потока, либо после реакции на ошибку
GETSCREEN(1183,311,1183,311)
WHILE(PXL (1183,311) ! 2959385) // ожидание статистики/GG
WAITMS (100)
GETSCREEN(1183,311,1183,311)
END_CYC
LCLICK(1819,1302)
waitms(500)
LCLICK(1191,1373)
end_if