Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Артем Гусев on March 07, 2017, 05:43:14 PM
-
Добрый вечер! Ищу помощи в написании скрипта.
Суть скрипта в том, что делается снимок экрана, а дальше на этом снимке поочередно начинают искаться картинки с папки и как получается совпадение скрипт делает переход в одну метку. Если же совпадения нету, скрипт переходит в другую метку.
Долго искал решение этой задачи, нашел и прикрепил ниже(может быть там написана и белиберда, но работает ::)). Но суть в том, что ладно там 3 картинки сравниваются, Бог с ними, но если больше 10, а то и 20 код получается не маленький. Искал дальше посоветовали использовать подпрограмму SUB, сколько не пытался с ним разобраться, не получилось. Так вот прошу Вас помочь мне разобраться с этой подпрограммой. Буду в большом долгу ;)
#logfile
Getscreen
WHILE(1)
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"image1.bmp")
LOGWRITE ("Найдена картинка image1")
goto(***) //идем в метку
end_if
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"image2.bmp")
LOGWRITE ("Найдена картинка image2")
goto(***) //идем в метку
end_if
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"image3.bmp")
LOGWRITE ("Найдена картинка image3")
goto(***) //идем в метку
end_if
goto(---) //если сравнений нету, идем в другую метку
END_CYC
-
Не тужи, душа моя. Это чудо знаю я.
Getscreen
FOR($i = 1, $i < 21) // 20 картинок
$name = STRCONCAT("image", $i, ".bmp")
IF_PICTURE_IN(0,0,$_xmax,$_ymax, $name)
LOGWRITE ("Найдена картинка ", $name)
$i = 100
ELSE
WAITMS(10)
end_if
END_CYC
IF($i ! 100)
// если ничего не найдено
ELSE
// действия если найдено
END_IF
Или варианты.
-
Ха-ха, это же так просто! Спасибо большое! :D Vint полные карманы удачки тебе!
-
чуточку поправлю, сам частенько напарываюсь при использовании такого алгоритма :D.
Getscreen
FOR($i = 1, $i < 21) // 20 картинок
$name = STRCONCAT("image", $i, ".bmp")
IF_PICTURE_IN(0,0,$_xmax,$_ymax, $name)
LOGWRITE ("Найдена картинка ", $name)
$i = 100
ELSE
WAITMS(10)
end_if
//тут наращиваемая переменная наращивается, и на уже равна 101
END_CYC
print($i) // если картинка найдена, то $i = 101
IF($i ! 101) //так будет правильно
// если ничего не найдено
ELSE
// действия если найдено
END_IF
-
Возможно. Это был подвиг, весь пост писал с телефона.
-
Не тужи, душа моя. Это чудо знаю я.
Getscreen
FOR($i = 1, $i < 21) // 20 картинок
$name = STRCONCAT("image", $i, ".bmp")
IF_PICTURE_IN(0,0,$_xmax,$_ymax, $name)
LOGWRITE ("Найдена картинка ", $name)
$i = 100
ELSE
WAITMS(10)
end_if
END_CYC
IF($i ! 100)
// если ничего не найдено
ELSE
// действия если найдено
END_IF
Или варианты.
а как сделать нечто похожее вот с этим?)
1:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
GOTO(3)
ELSE
GOTO(2)
END_IF
2:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
GOTO(1)
ELSE
WAITMS(50)
END_IF
3:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
GOTO(1)
END_IF
4:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
GOTO(1)
END_IF
5:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
GOTO(1)
END_IF
-
Ты лучше напиши что нужно, а то в этом клубке GOTO чёрт ногу сломит.
Честно пытался разобраться.
Если в 1 не нашёл -->> сразу ищем 2 (нафига? и без задержек).
Если не нашли в 2 -->> WAITMS(50) и ищем в 3.
Если не нашли в 3 -->> снова идём в 1.
Спрашивается, зачем этот круговорот воды в природе, если поиск всегда одинаковый?
Дальше ещё интересней
Что бы мы не делали и как бы нас не бросало по GOTO, смысл только один: если нашли - кликаем, не нашли ищем опять.
Зачем здесь 5 частей?
-
Ты лучше напиши что нужно, а то в этом клубке GOTO чёрт ногу сломит.
Честно пытался разобраться.
Если в 1 не нашёл -->> сразу ищем 2 (нафига? и без задержек).
Если не нашли в 2 -->> WAITMS(50) и ищем в 3.
Если не нашли в 3 -->> снова идём в 1.
Спрашивается, зачем этот круговорот воды в природе, если поиск всегда одинаковый?
Дальше ещё интересней
Что бы мы не делали и как бы нас не бросало по GOTO, смысл только один: если нашли - кликаем, не нашли ищем опять.
Зачем здесь 5 частей?
ну 1 условие для того, что бы произвести действие во вкладке без которого не будет работать 3.4.5 условие. 2 условие если вкладки нету, то её нужно открыть. А переходы на 1 условие с 3.4.5, это если что-то пошло не так и всё сломалось))
P.S. Поиск разный, это с шаблонов, что бы кашу не скидывать)
-
P.S. Поиск разный, это с шаблонов, что бы кашу не скидывать)
А зачем здесь одинаковый поиск с шаблонов? Как их различать?
И где упомянуто, что на самом деле там не то, что написано.
-
$ch = 0
WHILE($ch = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file1.bmp")
LCLICK($_return1, $_return2)
WAITMS(100)
$ch = 1
ELSE
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file2.bmp")
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(50)
$ch = 1
END_IF
END_IF
END_CYC
FOR($i=3, $i < 6)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("file", $i, ".bmp"))
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
$i = 10
END_IF
END_CYC
-
P.S. Поиск разный, это с шаблонов, что бы кашу не скидывать)
А зачем здесь одинаковый поиск с шаблонов? Как их различать?
И где упомянуто, что на самом деле там не то, что написано.
Ну вот))
THREAD(Autolot_pet, 0)
PET:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/pet/P.E.T.bmp", -1, 100) // Ïîèñê ïåòà
MOVE($_return1+RND(0,5),$_return2+110+RND(0,5)) //P.E.T.
WAIT(1)
KEYPRESS(#R) //ON GUARD_MODS
WAITMS(300)
MOVE(100,100) //Îòâåñòè êóðñîð
WAIT(2)
GOTO(GUARD_MODS)
ELSE
OPEN_PET:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/pet/OPEN_PET.bmp", -1, 100)// Îòêðûòü ïåòà
MOVE($_return1+RND(0,5),$_return2+RND(0,5)) //OPEN_PET
WAITMS(RND(30,75)
LCLICK($_xmouse,$_ymouse)
WAIT(1)
GOTO(PET)
ELSE
GOTO(PET)
GUARD_MODS:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/pet/GUARD_MODS.bmp", -1, 100)// çàùèòíûé ðåæèì
MOVE($_return1,$_return2) //GUARD_MODS.bmp
WAITMS(RND(30,75)
LCLICK($_xmouse,$_ymouse)
WAIT(3)
GOTO(AUTOLOOT_MODS)
ELSE
GOTO(PET)
AUTOLOOT_MODS:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "picture/pet/AUTOLOOT_MODS.bmp", -1, 100)// Âêëþ÷èòü àâòîñáîðùèê
MOVE($_return1+RND(0,5),$_return2+RND(0,5)) //AUTOLOOT_MODS.bmp
WAITMS(RND(30,75)
LCLICK($_xmouse,$_ymouse)
WAIT(3)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "picture/pet/AUTOLOOT_MODS_CHECK.bmp", -1, 100)// Ïðîâåðèòü àâòîñáîðùèê
WAIT(1)
GOTO(CLOSED_PET)
ELSE
GOTO(PET)
CLOSED_PET:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/pet/CLOSED_PET.bmp", -1, 100)// Çàêðûòü ïåòà
MOVE($_return1-23+RND(0,5),$_return2+3+RND(0,5)) //CLOSE_PET
WAITMS(RND(30,75)
LCLICK($_xmouse,$_ymouse)
WAIT(1)
CHECK_PET:
GETSCREEN($minimap_petx-20,$minimap_pety+30,$minimap_petx+190,$minimap_pety+160)
IF_PIXEL_IN($minimap_petx-20,$minimap_pety+30,$minimap_petx+190,$minimap_pety+160, 9459492) //Ïðîâåðêà ïåòà ïî ìèíèêàðòå
WAIT(10)
GOTO(CHECK_PET)
ELSE
WAIT(5)
OPEN_PET_CHECK:
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/pet/OPEN_PET.bmp", -1, 100)// Îòêðûòü ïåòà
MOVE($_return1+RND(0,5),$_return2+RND(0,5)) //OPEN_PET
WAITMS(RND(30,75)
LCLICK($_xmouse,$_ymouse)
WAIT(4)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "picture/pet/AUTOLOOT_MODS_CHECK.bmp", -1, 100)// Ïðîâåðèòü àâòîñáîðùèê
GOTO(CLOSED_PET)
ELSE
GOTO(PET)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
WAITMS(25)
END_THREAD
-
один лишний END_IF
-
один лишний END_IF
уже переделал)
INC($i,1)
define($i,1)
GETSCREEN
COLORMODE(8)
$name = STRCONCAT("img/pet/","pet", $i, ".bmp")
IF_PICTURE_IN(0,0,$_xmax,$_ymax, $name)
WAIT(1)
$search = 1
LOGWRITE ("Найдена картинка", $name)
ELSE
$search = 0
WAITMS(150)
END_IF
SWITCH($i)
CASE(1)
IF($search = 1)
LCLICK($_return1-5, $_return2+110)
WAITMS(50)
MOVE($_return1-5, $_return2+50)
WAITMS(300)
KEYPRESS(#R)
WAITMS(850)
$i = 2
ELSE
$i = 1
END_IF
CASE(2)
IF($search = 1)
LCLICK($_return1, $_return2)
WAITMS(450)
ELSE
$i = 0
END_IF
CASE(3)
IF($search = 1)
LCLICK($_return1+15, $_return2+5)
WAITMS(550)
$i = 3
ELSE
$i = 0
END_IF
CASE(4)
IF($search = 1)
LCLICK($_return1+25, $_return2+5)
WAITMS(350)
ELSE
$i = 0
END_IF
CASE(5)
IF($search = 1)
LCLICK($_return1-130, $_return2-100)
WAITMS(1250)
$i = 1
ELSE
$i = 0
END_IF
END_SWITCH
-
define($i,1) в данном случаи бессмысленно. Переменная уже объявлена выше функцией INC($i,1)