Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: kirill on January 01, 2015, 08:57:58 PM
-
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
LCLICK($_return1, $_return2)
$check = 1
WAITMS(100)
ELSE
END_IF
END_CYC
Как наложить временные рамки на этот цикл, что бы если он так и не найдёт красный пиксель, то вышел из цикла и пошел дальше по сценарию? Заранее БЛАГОДАРЕН!
-
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
LCLICK($_return1, $_return2)
$check = 1
WAITMS(100)
ELSE
END_IF
END_CYC
Как наложить временные рамки на этот цикл, что бы если он так и не найдёт красный пиксель, то вышел из цикла и пошел дальше по сценарию? Заранее БЛАГОДАРЕН!
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
LCLICK($_return1, $_return2)
$time = 0
END_IF
WAITMS(100)
END_CYC
-
Спасибо!
-
Помогите теперь в этом коде разобрать что тут не так? Ниже в коде есть комментарии где и возникли сложности. Ещё не могу понять по чему делает клик по координатам из IF_PIXEL_IN(1275,161, 1275,161, 10150560).О коде: первый поток должен работать беспрестанно, пока основной поток не сообщит об отсутствие пикселя на экране и не отключит его, после чего выполнит действия после цикла и снова запустит 1-ый поток.
// первый поток
thread(t1)
$rnd_x = RND(37,272)
$rnd_y = RND(667,788)
LCLICK($rnd_x,$rnd_y)
WAITMS(100)
MOVE(565,518)
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
$time = $_time_t + 5 // 5 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 10010271)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(4500)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(15000)
ELSE
END_IF
END_IF
WAITMS(100)
END_CYC
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 10010271)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(4500)
ELSE
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(15000)
ELSE
$check = 1
END_IF
END_IF
END_CYC
end_thread
//-----------------------------------------
// Основной поток
$var = 0
WHILE($var = 0)
IF_PIXEL_IN(1275,161, 1275,161, 10150560) // тут должен постоянно смотреть на месте пиксель или нет, если нету то идёт дальше
ELSE
$var = 1
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
thread(t1, 0) // тут если не нашел пиксель должен остановить 1-ый поток
WAITMS(100)
LCLICK(152,668)
WAITMS(100)
KEYPRESS(#c)
WAITMS(100)
KEYPRESS(#tab)
WAITMS(1000)
LCLICK(551,711)
WAIT(300)
LCLICK(817,448) // 3814400
WAITMS(1000)
LCLICK(803,528) // 3878950
WAITMS(1000)
LCLICK(741,530) // 12631482
WAITMS(1000)
LCLICK(662,533) // 4997689
WAITMS(1000)
LCLICK(568,533) // 5590083
WAITMS(1000)
LCLICK(489,528) // 3878950
WAITMS(1000)
LCLICK(456,370) // 13541704
WAITMS(1000)
KEYPRESS(#c)
WAITMS(100)
LCLICK(663,715)
WAITMS(100)
KEYPRESS(#tab)
WAITMS(1000)
LCLICK(411,113) // 16316403
WAITMS(1000)
LCLICK(267,458) // 52479
WAITMS(1000)
LCLICK(181,540) // 14606046
WAITMS(1000)
LCLICK(16,358) // 12096074
WAITMS(10000)
-
thread(t1,0) // поток изначально не работает
///
end_thread
thread(t1,1) // поток изначально работает
///
end_thread
SETTHREAD (t1, 0) // команда останавливает поток (пауза) к сожалению команд перезапуска пока нет
SETTHREAD (t1, 1) // команда возобновляет поток
Вот исправленный оптимизированный код
// первый поток
thread(t1)
$rnd_x = RND(37,272)
$rnd_y = RND(667,788)
LCLICK($rnd_x,$rnd_y)
WAITMS(100)
MOVE(565,518)
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
WAITMS(100)
END_IF
END_CYC
WAITMS(100)
$time = $_time_t + 5 // 5 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 10010271)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(4500)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAIT(15)
END_IF
END_IF
WAITMS(100)
END_CYC
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 10010271)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(4500)
ELSE
IF_PIXEL_IN(0,86, 1437,855, 5265980)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAIT(15)
ELSE
$check = 1
END_IF
END_IF
END_CYC
end_thread
//-----------------------------------------
// Основной поток
$var = 0
WHILE($var = 0)
GETSCREEN
IF_PIXEL_IN(1275,161, 1275,161, 10150560) // тут должен постоянно смотреть на месте пиксель или нет, если нету то идёт дальше
WAITMS(100)
ELSE
$var = 1
END_IF
END_CYC
WAITMS(100)
SETTHREAD (t1, 0) // тут если не нашел пиксель должен остановить 1-ый поток
WAITMS(100)
LCLICK(152,668)
WAITMS(100)
KEYPRESS(#c)
WAITMS(100)
KEYPRESS(#tab)
WAITMS(1000)
LCLICK(551,711)
WAIT(300)
LCLICK(817,448) // 3814400
WAITMS(1000)
LCLICK(803,528) // 3878950
WAITMS(1000)
LCLICK(741,530) // 12631482
WAITMS(1000)
LCLICK(662,533) // 4997689
WAITMS(1000)
LCLICK(568,533) // 5590083
WAITMS(1000)
LCLICK(489,528) // 3878950
WAITMS(1000)
LCLICK(456,370) // 13541704
WAITMS(1000)
KEYPRESS(#c)
WAITMS(100)
LCLICK(663,715)
WAITMS(100)
KEYPRESS(#tab)
WAITMS(1000)
LCLICK(411,113) // 16316403
WAITMS(1000)
LCLICK(267,458) // 52479
WAITMS(1000)
LCLICK(181,540) // 14606046
WAITMS(1000)
LCLICK(16,358) // 12096074
WAITMS(10000)
-
Не могу проверить т.к. тот клик по координатам из IF_PIXEL_IN(1287,168, 1287,168, 9363348) все портит ( это шкала здоровья и при тыки на неё она становиться цифровой) как исправить?
-
Где ты там клик увидел?
-
В этом то и проблема, в коде его нету, а на дели он тыкает куды не надо.
-
У меня предположение что он в эти переменные $_return1, $_return2 засовывает координаты тех пикселей и где то идёт клик по ним. Может их обнулить доп. кодом?
-
Клик идёт предположительно при выполнение этой части кода.
$time = $_time_t + 5 // 5 ñåêóíä
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 10010271)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAITMS(4500)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYPRESS(#ctrl)
WAIT(15)
END_IF
END_IF
-
Системные переменные обнулить нельзя. Вместо этого лучше использовать более подходящую для анализа пиксела по точным координатам функцию PXL. В этом случае $_return1, $_return2 не затрагиваются.
// Основной поток
$var = 0
WHILE($var = 0)
GETSCREEN
IF(PXL(1275,161) = 10150560) // тут должен постоянно смотреть на месте пиксель или нет, если нету то идёт дальше
WAITMS(100)
ELSE
$var = 1
END_IF
END_CYC
WAITMS(100)
-
Системные переменные обнулить нельзя. Вместо этого лучше использовать более подходящую для анализа пиксела по точным координатам функцию PXL. В этом случае $_return1, $_return2 не затрагиваются.
// Основной поток
$var = 0
WHILE($var = 0)
GETSCREEN
IF(PXL(1275,161) = 10150560) // тут должен постоянно смотреть на месте пиксель или нет, если нету то идёт дальше
WAITMS(100)
ELSE
$var = 1
END_IF
END_CYC
WAITMS(100)
Спасибо большое теперь все хорошо работает, буду пробовать дополнять))
-
Если используются потоки с использованием $_return1, $_return2 то тянуть резину нельзя.
Как только нашли изображение сразу переприсваиваем переменные своим
$X = $_return1
$Y = $_return2
Потом уже все ожидания-клики. А так конечно, то 100 мс ждём, то 300. Естественно другой поток их может перезатереть.
Но это проблема, её нужно решать. Всё равно наступят моменты когда выполнение анализа совпадёт.
Или $_return1, $_return2 должны быть локальными в каждом потоке (что лучше). Или при использовании функций поиска в потоке эти переменные должны иметь другие имена
$_return1_ИМЯПОТОКА, $_return2_ИМЯПОТОКА.
-
Нет пусть уж обычные переменные будут локальными, нужно только придумать глобальные для обмена данными между потоками.
-
Помогите исправить ошибки и оптимизировать код
//-----------------------------------------
// первый поток
thread(t1)
SetThread(t5,0)
WAITMS(100)
SetThread(t1,1)
WAITMS(100)
KEYUP(#ctrl)
$rnd_x = RND(37,272)
$rnd_y = RND(667,788)
LCLICK($rnd_x,$rnd_y)
WAITMS(100)
MOVE(565,518)
WAITMS(100)
SetThread(t2,1)
WAITMS(100)
end_thread
//-----------------------------------------
// второй поток
thread(t2,0)
SetThread(t1,0)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
SetThread(t1,1)
WAITMS(100)
ELSE
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
SetThread(t3,1)
WAITMS(100)
end_thread
//-----------------------------------------
// третий поток
thread(t3,0)
SetThread(t2,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5337430)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
ELSE
SetThread(t5,1) // тут должен если пиксель найден вкл. пятый поток
WAITMS(100
ELSE
END_IF
WAITMS(100)
END_CYC
SetThread(t4,1) // тут если пиксель не найден должен проигнорировать вкл. пятого потока и вкл. четвёртый
WAITMS(100)
end_thread
//-----------------------------------------
// четвёртый поток
thread(t4,0)
SetThread(t3,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
ELSE
SetThread(t5,1) // тут тоже что и в четвертом потоке
WAITMS(100
ELSE
END_IF
WAITMS(100)
END_CYC
SetThread(t1,1)
WAITMS(100)
end_thread
//-----------------------------------------
// пятый поток
thread(t5,0)
SetThread(t3,0)
WAITMS(100)
SetThread(t4,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 1911161, 728280, 2237817)
KEYDOWN(#ctrl)
ELSE
KEYUP(#ctrl)
WAITMS(100)
SetThread(t1,1)
WAITMS(100)
ELSE
$check = 1
END_IF
WAITMS(100)
END_CYC
end_thread
-
В условиях может быть только одна альтернатива ELSE. Везде исправил но в последнем thread(t5,0) разберись с условиями.
//-----------------------------------------
// первый поток
thread(t1)
SetThread(t5,0)
WAITMS(100)
SetThread(t1,1)
WAITMS(100)
KEYUP(#ctrl)
$rnd_x = RND(37,272)
$rnd_y = RND(667,788)
LCLICK($rnd_x,$rnd_y)
WAITMS(100)
MOVE(565,518)
WAITMS(100)
SetThread(t2,1)
WAITMS(100)
end_thread
//-----------------------------------------
// второй поток
thread(t2,0)
SetThread(t1,0)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
SetThread(t1,1)
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
SetThread(t3,1)
WAITMS(100)
end_thread
//-----------------------------------------
// третий поток
thread(t3,0)
SetThread(t2,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5337430)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
ELSE
SetThread(t5,1) // тут должен если пиксель найден вкл. пятый поток
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
SetThread(t4,1) // тут если пиксель не найден должен проигнорировать вкл. пятого потока и вкл. четвёртый
WAITMS(100)
end_thread
//-----------------------------------------
// четвёртый поток
thread(t4,0)
SetThread(t3,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5265980)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
ELSE
SetThread(t5,1) // тут тоже что и в четвертом потоке
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
SetThread(t1,1)
WAITMS(100)
end_thread
//-----------------------------------------
// пятый поток
thread(t5,0)
SetThread(t3,0)
WAITMS(100)
SetThread(t4,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 1911161, 728280, 2237817)
KEYDOWN(#ctrl)
ELSE
KEYUP(#ctrl)
WAITMS(100)
SetThread(t1,1)
WAITMS(100)
// ELSE ??????????????????????
$check = 1
END_IF
WAITMS(100)
END_CYC
end_thread
-
Спасибо, буду пробовать.
-
тут он должен искать 10 секунд, если найдёт, то запускать третий поток, а если нет то снова 1 поток. Как сделать? А сейчас получается, что он и при нахождение и не нахождение вкл первый поток.
//-----------------------------------------
// второй поток
thread(t2,0)
SetThread(t1,0)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
SetThread(t1,1)
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
SetThread(t3,1)
WAITMS(100)
end_thread
-
Вся суть кода:
1-ый поток. Должен сделать рандомный клик и запустить 2-й поток
2-ой поток. Должен отключить первый, найти пиксель в течении 10 секунд и запустить 3-й поток или снова запустить 1 поток.
3-й поток. Должен отключить второй, после найти жертву в течении 5 сек (только сейчас на ум пришло, а то ведь не найдёт и дальше себе попрёт), как найдёт вкл пятый поток (который должен пока видит жертву в локе зажимать CTRL, а как перестанет видеть отпустить CTRL и снова запустить 1 поток)
4-ый поток. Такой же как и 3-ий, только для другого моба.
В 5-ом потоке ещё хотелось бы сделать проверку нет ли ещё одного моба как в 3-ем и 4-ом потоке, т.е. пропуская 1 и 2 потоки + к этому такая проверка должно проводиться 1 раз.
P.s 5 пункт не обязательно делать.
-
//-----------------------------------------
// второй поток
thread(t2,0)
SetThread(t1,0)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
IF($time = 0) // если за 10 сек найдено
WAITMS(100)
SetThread(t3,1)
ELSE
SetThread(t1,1) // или не найдено
SetThread(t2,0)
END_IF
WAITMS(100)
end_thread
-
//-----------------------------------------
// второй поток
thread(t2,0)
SetThread(t1,0)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,667, 272,788, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(100)
ELSE
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
IF($time = 0) // если за 10 сек найдено
WAITMS(100)
SetThread(t3,1)
ELSE
SetThread(t1,1) // или не найдено
SetThread(t2,0)
END_IF
WAITMS(100)
end_thread
Всё подправил на основе вашего 2 потока, но в пятом ошибка не могу понять где. Помогите исправить
//-----------------------------------------
// ïÿòûé ïîòîê
thread(t5,0)
SetThread(t3,0)
WAITMS(100)
SetThread(t4,0)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 1911161, 728280, 2237817)
$check = 1
WAITMS(100)
ELSE
WAITMS(100)
END_IF
WAITMS(100)
END_CYC
IF($check = 1)
WAITMS(100
KEYDOWN(#ctrl)
WAITMS(100)
ELSE
WAITMS(100)
KEYUP(#ctrl)
WAITMS(100)
SetThread(t1,1)
SetThread(t5,0)
END_IF
WAITMS(100)
end_thread
-
Условие проверяющее чек в 19 строке не имеет смысла. Чек там всегда равен 1.
И зачем здесь потоки? Можно обойтись обычными средствами. Максимум оставить два если нужно.
-
Вот сделал по вашему совету, вроде все норм, но иногда тупит. Можете глянуть и оптимизировать при возможности?!
thread(t2)
$va = 0
WHILE($va = 0)
GETSCREEN
IF(PXL(45,639) = 12575208)
WAITMS(100)
ELSE
$va = 1
END_IF
END_CYC
LCLICK(216,108)
WAITMS(2000)
end_thread
thread(t1)
SETTHREAD (t2, 1)
SETTHREAD (t3, 1)
$rnd_x = RND(36,286)
$rnd_y = RND(682,808)
LCLICK($rnd_x,$rnd_y)
WAITMS(100)
MOVE(565,518)
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PIXEL_IN(37,682, 288,835, 255)
$time = 0
LCLICK($_return1, $_return2)
MOVE(565,518)
WAITMS(1000)
LCLICK($_return1, $_return2)
MOVE(565,518)
ELSE
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
$ch = 0
WHILE($ch = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 8628618)
KEYUP(#Ctrl)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYUP(#Ctrl)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
WAITMS(300)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855,728280,529105,2304698)
WAITMS(100)
KEYDOWN(#Ctrl)
WAITMS(300)
ELSE
$time = 0
END_IF
END_CYC
WAITMS(100)
KEYUP(#Ctrl)
WAITMS(100)
ELSE
$ch = 1
END_IF
END_CYC
$cha = 0
WHILE($cha = 0)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855, 5938406)
KEYUP(#Ctrl)
LCLICK($_return1, $_return2)
WAITMS(300)
KEYUP(#Ctrl)
$time = $_time_t + 19 // 10 секунд
WHILE($time > $_time_t)
WAITMS(300)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855,728280,529105,2304698)
WAITMS(500)
KEYDOWN(#Ctrl)
WAITMS(300)
ELSE
$time = 0
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
KEYUP(#Ctrl)
WAITMS(100)
ELSE
$cha = 1
END_IF
END_CYC
end_thread
$var = 0
WHILE($var = 0)
GETSCREEN
IF(PXL(1272,162) = 9363348)
ELSE
$var = 1
END_IF
END_CYC
SETTHREAD (t1, 0)
WAITMS(100)
LCLICK(160,701) // 16759296
WAITMS(500)
LCLICK(162,702) // 0
WAITMS(100)
KEYPRESS(#c)
WAITMS(100)
KEYPRESS(#3)
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF(PXL(648,671) = 1066273)
$time = 0
WAITMS(100)
LCLICK(648,671) //
WAITMS(100)
ELSE
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF(PXL(666,477) = 6143)
$time = 0
WAITMS(100)
LCLICK(620,526) // 6316901
WAITMS(100)
ELSE
END_IF
WAITMS(100)
END_CYC
WAITMS(100)
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF(PXL(700,296) = 188)
$time = 0
WAITMS(100)
LCLICK(636,671)
WAITMS(100)
ELSE
END_IF
WAITMS(100)
END_CYC
WAIT(110)
WAITMS(100)
KEYPRESS(#c)
WAITMS(100)
KEYPRESS(#4)
WAITMS(10000)
SETTHREAD (t1, 1)
-
а как без GETSCREEN, если картинка на экране постоянно меняется? само собой я знаю, что такое ELSE именно поэтому оно везде, а везде оно для того, что бы все действия шли последовательно, поменялось что то идёт дальше, нет значит смотрит не поменялось ли чаво ни будь
-
У меня другой щас вопрос родился, как сделать проверку по расстоянию от центра экрана. Например есть объект на экране, и нужно сделать так что если он на расстоянии допустим 200 пикселей от центра то делает клик?
-
само собой я знаю, что такое ELSE именно поэтому оно везде, а везде оно для того, что бы все действия шли последовательно, поменялось что то идёт дальше, нет значит смотрит не поменялось ли чаво ни будь
Сори, но видимо не знаешь. При чем здесь "последовательность" и как отсутствие ПУСТОГО блока ELSE на неё влияет?
Разберись с мыслями.
-
Вы правы с мыслями разобраться надо это самое сложное. Ну если знаете где лишние ELSE то уберите их покажите мне как надо.
-
И ещё как мне добавить отслеживание дистанции к этой части кода. В нем идёт постоянный поиска лока на мобе, пока он его виде, он его бьёт, но моб может убегать и тут то и нужно, что бы был клик в ту сторону где он видит лок, если моб убежит дальше 200 ну или больше пикселей.
$time = $_time_t + 10 // 10 секунд
WHILE($time > $_time_t)
WAITMS(300)
GETSCREEN
IF_PIXEL_IN(0,86, 1437,855,728280,529105,2304698)
WAITMS(100)
KEYDOWN(#Ctrl)
WAITMS(300)
ELSE
$time = 0
END_IF
END_CYC
-
Нет не то, тут по миникарте не получится. Есть лок который и поможет, вот он должен посмотреть где тот пиксель лока который был найден и сравнить его положение с положением центра экрана и определить не превышено ли расстояние.