Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Graff on February 02, 2017, 07:55:49 PM
-
Написал небольшой скрипт, но он почему-то жестко гонит, If работает нормально, но если объект отсутствует, то он и вовсе ничего не пишет, в чем дело? Даже текст вот этот не пишет: logwrite("3 gooddd!", $_return1) и logwrite("4 gooddd!", $_return1)
GETSCREEN
IF_PICTURE_IN (2127,407, 2200, 421, "\bot\screens\shot0002.bmp")
IF( $_return1 & $_return2 ) > 0)
logwrite("1 gooddd!" )
else
logwrite("2 gooddd!" )
END_IF
logwrite("3 gooddd!", $_return1)
logwrite("4 gooddd!", $_return2)
END_IF
Когда условие работает:
(http://image.prntscr.com/image/f15def7e55994043b2079164ecc3a6cb.png)
Когда условие не работает в лог ничего не идет.
-
И еще вопросик, как можно создать функцию в коде, как в php, а то не очень удобно 1 и тот же код в 10 условиях писать, хотелось бы 1 раз написать и просто сделать вывод функции. Может быть это можно как-нибудь по другому тут реализовать. Спасибо.
-
Не верный скрипт. Это функция условие, там не надо еще городить условий. И ретурны тоже нужно использовать только в нутри функции так как эти системные переменные не сбрасывают значение даже после остановки кликера. Они служат только для вывода значений.
GETSCREEN
IF_PICTURE_IN (2127,407, 2200, 421, "bot\screens\shot0002.bmp")
logwrite($_return1, ",",$_return2)
logwrite("gooddd!" )
else
logwrite("НЕ gooddd" )
END_IF
-
И еще вопросик, как можно создать функцию в коде, как в php, а то не очень удобно 1 и тот же код в 10 условиях писать, хотелось бы 1 раз написать и просто сделать вывод функции. Может быть это можно как-нибудь по другому тут реализовать. Спасибо.
В кликере это называется подпрограммами. Отличие в том что вызов можно писать только отдельной строкой и подпрограмма ничего не возвращает. Используется только как оптимизация повторяющегося кода
SUB(search, $x1,$y1, $x2,$y2, $pic)
GETSCREEN
IF_PICTURE_IN ($x1,$y1, $x2,$y2, $pic, -1, 100)
logwrite($_return1, ",",$_return2)
logwrite("gooddd!" )
else
logwrite("НЕ gooddd" )
END_IF
END_SUB
search(2127,407, 2200, 421, "bot\screens\shot0002.bmp") // вызов подпрограммы (обязательно ниже подпрограммы)
-
Спасибо за ответ, а если допустим в else мне так же надо проверить условие на картинку?
-
Спасибо за ответ, а если допустим в else мне так же надо проверить условие на картинку?
Вкладывай, только так
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_IF
-
Огромное спасибо.
-
Еще вопросик. Не совсем понял как работает SUB. Надо сделать так, что бы если ELSE сработал, то нажималась кнопка и потом переходило в середину кода( то есть пропускалась какая-то часть), как это реализовать? В случае с функциями, о которых я упоминал ранее это делалось бы 1 минуту. Спасибо.
-
не видя всего кода сложно что то советовать.
Например можно использовать переменную которой в случаи ELSE задается значение 1, в следствии чего сработает условие после вызова в котором герез GOTO можно будет перейти в нужную часть скрипта.
SUB(search, $x1,$y1, $x2,$y2, $pic)
GETSCREEN
IF_PICTURE_IN ($x1,$y1, $x2,$y2, $pic, -1, 100)
logwrite($_return1, ",",$_return2)
logwrite("gooddd!" )
else
logwrite("НЕ gooddd" )
$check = 1
END_IF
END_SUB
$check = 0
search(2127,407, 2200, 421, "bot\screens\shot0002.bmp")
IF($check = 1)
GOTO(next)
END_IF
// ===========
next:
-
Также стоит помнить что выпрыгивание через GOTO из подпрограмм и циклов приводит к ошибкам.
-
не видя всего кода сложно что то советовать.
Например можно использовать переменную которой в случаи ELSE задается значение 1, в следствии чего сработает условие после вызова в котором герез GOTO можно будет перейти в нужную часть скрипта.
SUB(search, $x1,$y1, $x2,$y2, $pic)
GETSCREEN
IF_PICTURE_IN ($x1,$y1, $x2,$y2, $pic, -1, 100)
logwrite($_return1, ",",$_return2)
logwrite("gooddd!" )
else
logwrite("НЕ gooddd" )
$check = 1
END_IF
END_SUB
$check = 0
search(2127,407, 2200, 421, "bot\screens\shot0002.bmp")
IF($check = 1)
GOTO(next)
END_IF
// ===========
next:
Спасибо.
Столкнулся еще с 1 проблемой, Кликерман не нажимает на кнопки приложения, не может переносить по рабочему столу, программа называется Wise memory optimizer, даже пытался записать свои действия, он при повторе он не может работать с программой, просто водит мышью и все. Объясните в чем дело и как бороться с этим. Благодарю.
-
1. Запускать от имени администратора.
2. Приструнить UAC.