Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: justitdo on February 11, 2017, 07:55:09 PM
-
Всем привет. Огромное спасибо форуму и всем, кто мне помогает. Появилась новая задачка. Нужно мне вставить в скрипт анализ числа в буфере обмена и в зависимости от его значения кликать по заданным координатам. Если число от 200 до 300 - клик по одной координате, от 300 до 400 - по другой и т.д до 2000. А если вдруг по каким-то причинам в буфере оказалось не число, или число больше или меньше заданных диапазонов, или буфер оказался пустым - нужно, чтобы скрипт пропускал это условие и продолжал работать дальше.
-
покапался в старых скриптах, нашел как различал текст от чисел, на случай, если в буфер попадет текст. в принципе возможно это лишнее.
вроде работает:
$bufer = strfilter(FROMCLIP(), "()=", 0) //отсеим скобки, чтоб не выдало ошибку
$check_text=$bufer-$bufer //проверка, в буфере текст или число
WHILE($check_text = 0)
$check = 0
SWITCH(int($bufer/100))
CASE(3)
print("от 300 до 400") //клики свои сам поставишь вместо лога
CASE(4)
print("от 400 до 500")
CASE(5)
print("от 500 до 600")
CASE(6)
print("от 600 до 700")
CASE(7)
print("от 700 до 800")
CASE(8)
print("от 800 до 900")
CASE(9)
print("от 900 до 1000")
CASE(10)
print("от 1000 до 1100")
CASE(11)
print("от 1100 до 1200")
CASE(12)
print("от 1200 до 1300")
CASE(13)
print("от 1300 до 1400")
CASE(14)
print("от 1400 до 1500")
CASE(15)
print("от 1500 до 1600")
CASE(16)
print("от 1600 до 1700")
CASE(17)
print("от 1700 до 1800")
CASE(18)
print("от 1800 до 1900")
CASE(19)
print("от 1900 до 2000")
DEFAULT
$check = 1
END_SWITCH
IF($check = 0) //проверка, чтоб число было в пределах 300-2000
$bufer = strfilter(FROMCLIP(), "()=", 0)
$check_text=$bufer-$bufer
ELSE
$check_text = 1
END_IF
wait(1) //твоя задерка
END_CYC
print("в буфере ",$bufer )
//тут твое продолжение
halt
-
Спасибо) Попробовал - он почему-то безостановочно кликает) А нужно, чтобы один раз кликнул и дальше выполнялось продолжение скрипта.
P.S. Заменил WHILE на IF и в конце добавил END_IF, вроде заработал как надо) Это я цикл на условие заменил получается?
P.P.S. Просто удалил WHILE и END_CYC ничего не добавляя - тоже работает вроде)
-
почему то прочитав твою задачу, я решил что должно кликать пока в буфере нужные числа, и что они постоянно меняются. :-\
Если число от 200 до 300 - клик по одной координате, от 300 до 400 - по другой и т.д до 2000. А если вдруг по каким-то причинам в буфере оказалось не число, или число больше или меньше заданных диапазонов, или буфер оказался пустым - нужно, чтобы скрипт пропускал это условие и продолжал работать дальше.
ошибся, ну не беда, так еще проще. :D
$bufer = strfilter(FROMCLIP(), "()=", 0) //отсеим скобки, чтоб не выдало ошибку
$check_text=$bufer-$bufer //проверка, в буфере текст или число
IF($check_text=0)
SWITCH(int($bufer/100))
CASE(3)
print("от 300 до 400") //клики свои сам поставишь вместо лога
CASE(4)
print("от 400 до 500")
CASE(5)
print("от 500 до 600")
CASE(6)
print("от 600 до 700")
CASE(7)
print("от 700 до 800")
CASE(8)
print("от 800 до 900")
CASE(9)
print("от 900 до 1000")
CASE(10)
print("от 1000 до 1100")
CASE(11)
print("от 1100 до 1200")
CASE(12)
print("от 1200 до 1300")
CASE(13)
print("от 1300 до 1400")
CASE(14)
print("от 1400 до 1500")
CASE(15)
print("от 1500 до 1600")
CASE(16)
print("от 1600 до 1700")
CASE(17)
print("от 1700 до 1800")
CASE(18)
print("от 1800 до 1900")
CASE(19)
print("от 1900 до 2000")
DEFAULT
print("в буфере ",$bufer )
END_SWITCH
ELSE
print("в буфере текст - ",$bufer )
END_IF
//тут твое продолжение
halt
кстати, если ты уверен, что тебе не понадобится CASE(0) - от 0 до 100 , то можно и выкинуть эту проверку на текст. просто я в начале чето начал с "0", а если в буфере текст, то он бы также срабатывал на этот "0". такчто можно обойтись вот таким кодом:
SWITCH(int(FROMCLIP()/100))
CASE(3)
print("от 300 до 400") //клики свои сам поставишь вместо лога
CASE(4)
print("от 400 до 500")
CASE(5)
print("от 500 до 600")
CASE(6)
print("от 600 до 700")
CASE(7)
print("от 700 до 800")
CASE(8)
print("от 800 до 900")
CASE(9)
print("от 900 до 1000")
CASE(10)
print("от 1000 до 1100")
CASE(11)
print("от 1100 до 1200")
CASE(12)
print("от 1200 до 1300")
CASE(13)
print("от 1300 до 1400")
CASE(14)
print("от 1400 до 1500")
CASE(15)
print("от 1500 до 1600")
CASE(16)
print("от 1600 до 1700")
CASE(17)
print("от 1700 до 1800")
CASE(18)
print("от 1800 до 1900")
CASE(19)
print("от 1900 до 2000")
END_SWITCH
//тут твое продолжение
halt
и без всяких замарочек, которые постоянно мне лезут в голову :D
-
кстати, если ты уверен, что тебе не понадобится CASE(0) - от 0 до 100 , то можно и выкинуть эту проверку на текст. просто я в начале чето начал с "0", а если в буфере текст, то он бы также срабатывал на этот "0". такчто можно обойтись вот таким кодом:
SWITCH(int(FROMCLIP()/100))
CASE(3)
print("от 300 до 400") //клики свои сам поставишь вместо лога
CASE(4)
print("от 400 до 500")
CASE(5)
print("от 500 до 600")
CASE(6)
print("от 600 до 700")
CASE(7)
print("от 700 до 800")
CASE(8)
print("от 800 до 900")
CASE(9)
print("от 900 до 1000")
CASE(10)
print("от 1000 до 1100")
CASE(11)
print("от 1100 до 1200")
CASE(12)
print("от 1200 до 1300")
CASE(13)
print("от 1300 до 1400")
CASE(14)
print("от 1400 до 1500")
CASE(15)
print("от 1500 до 1600")
CASE(16)
print("от 1600 до 1700")
CASE(17)
print("от 1700 до 1800")
CASE(18)
print("от 1800 до 1900")
CASE(19)
print("от 1900 до 2000")
END_SWITCH
//тут твое продолжение
halt
и без всяких замарочек, которые постоянно мне лезут в голову :D
От 0 до 100 точно не понадобится. А вот в буфер вместо числа могут попасть и скобочки и текст, в этом случае такой вариант подходит?
P.S. Проверил, все нормально! Спасибо большое за помощь.
-
да, подходит. просто если в буфере будет чтото еще кроме числа, то int(FROMCLIP()/100) будет возвращать "0" .
только вот обнаружен баг с этими самыми скобочками, а точнее в комбинации ") или (" , но не оба ("") . если в буфер попадает такая комбинация, то либо ошибка, либо кликер уходит в транс. v4.12.001 . возможно в версиях посвежее это исправлено.
нашел закономерность
IF(FROMCLIP()=0)
END_IF
halt
// (" ")
(" или ") в буфере выдает ошибку. в версии 4.13 b3 ошибка также вылазит.
а если делать вот такое действие с буфером
print(int(FROMCLIP()))
halt
// (" ")
и в буфере не дай бог будет (" , то всё, хана. но в это же время ") норм прокатывает. но тут уже в 4.13 b3 всё норм работает.