Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: moreman on July 17, 2014, 08:34:38 PM
-
пытаюсь написать скриптик небольшой, вроде делаю все по инструкции но первых два куска отрабатывает нормально а на третьем останавливается и ничего не делает дальше подскажите что можно с этим сделать?
-
Что не видишь что там задержка на 25 секунд?
-
заднржку я сам поставил, что бы оно ждало перед следующим действием, оно не работало и тогда когда задержка была 100милисекунд)
-
проблема была в некоректном скриншоте)
немного подправил скрипт, потому что последнее действие нужно выполнить не сразу а точный промежуток времени неизвестен (из-за нестабильности интернет соединения), он меняется время от времени, и так как я переписал последний промежуток не отрабатывается, подскажите как можно доработать?
-
спасибо за помощь, я сел мальца подумал, снова переделал немного по другому и все вышло) вот конечный вид скриптика)
-
теперь я хочу мальца усложнить задачку, это были статичные действия, теперь я хочу попробовать написать скриптик для вещи где рандомно выскакивают возможные для выполнения действия, возьмем за основу те же даные что есть в предыдущем скрипте, подскажите пожалуйста что можно добавить что бы кликер думал какое из 4 задач выполнить в даный момент ну или проверял что вылезло в даный момент, подскажите как осуществить это? у меня была задумка использовать команду ELSE, прописать допустим
если написать так как в скрине, для каждого действия это сработает или что то другое нужно?
-
Последний вариант неправильный. Каждое условие начинается с IF_ и заканчивается своим END_IF. В условии может быть одна альтернатива ELSE. Зачем ты используешь подпрограмму? Смысл подпрограмм в сокращении часто повторяемого кода. В редакторе есть волшебная палочка, не пробовал нажимать? И завязывай со скирншотами, что неужели вставить текст сложнее чем делать скрины?
Вот рандомный выбор действий. В каждое условие вставь свой код.
$random = RND(1,4) // генерация случайного числа 1-4
IF($random = 1)
// выполнние
END_IF
IF($random = 2)
// выполнние
END_IF
IF($random = 3)
// выполнние
END_IF
IF($random = 4)
// выполнние
END_IF
-
спасибо за совет, попробую так)
-
а если будет такая запись, норм или что то по другому сделать?
$random = RND(1,15)
IF(PXL(680,477) = 5031076($random = 1)
LCLICK(680,477)
LCLICK(583,485)
WAIT(2)
LCLICK(681,551)
WAITMS(100)
END_IF
-
и можно еще как то дописать что если ничего из описаного в рандоме не произошло то сделать то то и то то?
-
и еще если вещи из рандома будут идти сразу друг за другом они же будут отрабатыватся при такой записи программы?
-
появилась идея, что если в каждом из условий в конце дописать ELSE примерно так:
$random = RND(1,15)
IF(PXL(680,477) = 5031076($random = 1)
LCLICK(680,477)
LCLICK(583,485)
WAIT(2)
LCLICK(681,551)
WAITMS(100)
ELSE
LCLICK(929,592)
WAITMS(100)
END_IF
так будет нормально отробатывать програму?
-
проблема с завершением скрипта, кидается игральная кость все время, но в тот момент когда нужно закончить скрипт оно не дает бросить кость, тоесть мне нужно нажать на выход тогда когда оно перестанет бросать кость но вот не знаю как это описать в програме(
-
Правильно писать так
$random = RND(1,15)
IF($random = 1)
GETSCREEN
IF(PXL(680,477) = 5031076)
LCLICK(680,477)
LCLICK(583,485)
WAIT(2)
LCLICK(681,551)
WAITMS(100)
ELSE
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
-
странно, хрень какая то выходит, он тупит жестко)
// RECORDED SCRIPT 18.07.2014
// BEGIN AT 13:22:29
mysub()
SUB(mysub)
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
END_SUB
$random = RND(1,4)
IF($random = 1)
GETSCREEN
IF(PXL(680,442) = 16770879
LCLICK(680,477)
LCLICK(583,485)
WAIT(1)
LCLICK(681,551)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 2)
GETSCREEN
IF_PICTURE_IN (620,517, 742,609, "1w.bmp", -1, 80)
LCLICK($_return1, $_return2)
LCLICK(656,587)
LCLICK(674,616)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 3)
GETSCREEN
IF(PXL(402,469) = 9954544
LCLICK(493,512)
WAIT(1)
LCLICK(776,496)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 4)
GETSCREEN
IF(PXL(668,404) = 9886924
LCLICK(770,483)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
// FINISH AT 13:22:36
что не так?
-
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAITMS(50)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
$random = RND(1,4)
IF($random = 1)
GETSCREEN
IF(PXL(680,442) = 16770879)
LCLICK(680,477)
WAITMS(50)
LCLICK(583,485)
WAIT(1)
LCLICK(681,551)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 2)
GETSCREEN
IF_PICTURE_IN (620,517, 742,609, "1w.bmp", -1, 80)
LCLICK($_return1, $_return2)
WAITMS(50)
LCLICK(656,587)
WAITMS(50)
LCLICK(674,616)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 3)
GETSCREEN
IF(PXL(402,469) = 9954544)
LCLICK(493,512)
WAIT(1)
LCLICK(776,496)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 4)
GETSCREEN
IF(PXL(668,404) = 9886924)
LCLICK(770,483)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
-
на последок, помогите пожалуйста, как можно записать подобное выражение:
если PXL(х,у) определенный промежуток времени t не будет менять свой цвет то сделать например LCLICK(х,у)?
-
и кстати, а как сделать так что бы вот этот кусок програмы отработался один раз и перестал до того как цикл с рандомом не дойдет до логичного конца
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAITMS(50)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
-
Как понять
цикл с рандомом не дойдет до логичного конца
GETSCREEN
$color1 = PXL(315,540)
IF($color1 = $color2)
DEFINE($tim, $_ms+5000)
IF($tim < $_ms)
UNDEFINE($tim)
LCLICK(10,10)
WAITMS(100)
END_IF
ELSE
UNDEFINE($tim)
$color2 = $color1
END_IF
WAITMS(50)
-
а если сделать вот так:
// RECORDED SCRIPT 18.07.2014
// BEGIN AT 13:22:29
SUB(mysub)
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
HALT
END_SUB
$random = RND(1,5)
IF($random = 1)
GETSCREEN
IF(PXL(680,442) = 16770879
LCLICK(680,477)
WAITMS(50)
LCLICK(583,485)
WAIT(1)
LCLICK(681,551)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 2)
GETSCREEN
IF(PXL(741,683) = 13040127
WAIT(1)
LCLICK(741,683)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 3)
GETSCREEN
IF_PICTURE_IN (620,517, 742,609, "1w.bmp", -1, 80)
LCLICK($_return1, $_return2)
WAITMS(50)
LCLICK(656,587)
WAITMS(50)
LCLICK(674,616)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 4)
GETSCREEN
IF(PXL(402,469) = 9954544
LCLICK(493,512)
WAIT(1)
LCLICK(776,496)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 5)
GETSCREEN
IF(PXL(668,404) = 9886924
LCLICK(770,483)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
GETSCREEN
$color1 = PXL(315,540)
IF($color1 = $color2)
DEFINE($tim, $_ms+5000)
IF($tim < $_ms)
UNDEFINE($tim)
LCLICK(10,10)
WAITMS(100)
END_IF
ELSE
UNDEFINE($tim)
$color2 = $color1
END_IF
WAITMS(50)
WAIT(30)
mysub()
// FINISH AT 13:22:36
так будет работать? или как нибудь по другому, просто нужно что бы
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAITMS(50)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
эта связка отыграла один раз и в процес работы рандома не вмешивалась, а так она продолжает проигрыватся в процесе работы и сбивает все остальные процесы своим кликанием, эта связка команд идет просто как открытие того где уже будет рандом, более 1 раза она не требуется) как поступить?
-
и кстати, а как сделать так что бы вот этот кусок програмы отработался один раз и перестал до того как цикл с рандомом не дойдет до логичного конца
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAITMS(50)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
Ну вложи в простое условие.
DEFINE($$one, 0)
IF($one = 0)
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAITMS(50)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
$one = 1
END_IF
-
Можно и такой вариант, с зацикливанием через ГОТО.
LCLICK(840,215)
WAIT(1)
LCLICK(453,414)
WAIT(1)
LCLICK(427,393)
WAIT(1)
LCLICK(571,570)
WAIT(1)
LCLICK(566,257)
WAIT(1)
LCLICK(588,493)
WAIT(1)
LCLICK(929,592)
WAITMS(50)
go:
$random = RND(1,5)
IF($random = 1)
GETSCREEN
IF(PXL(680,442) = 16770879)
LCLICK(680,477)
WAITMS(50)
LCLICK(583,485)
WAIT(1)
LCLICK(681,551)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 2)
GETSCREEN
IF(PXL(741,683) = 13040127)
WAIT(1)
LCLICK(741,683)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 3)
GETSCREEN
IF_PICTURE_IN (620,517, 742,609, "1w.bmp", -1, 80)
LCLICK($_return1, $_return2)
WAITMS(50)
LCLICK(656,587)
WAITMS(50)
LCLICK(674,616)
WAITMS(100)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 4)
GETSCREEN
IF(PXL(402,469) = 9954544)
LCLICK(493,512)
WAIT(1)
LCLICK(776,496)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
IF($random = 5)
GETSCREEN
IF(PXL(668,404) = 9886924)
LCLICK(770,483)
WAITMS(50)
ELSE
WAIT(5)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
GETSCREEN
$color1 = PXL(315,540)
IF($color1 = $color2)
DEFINE($tim, $_ms+5000)
IF($tim < $_ms)
UNDEFINE($tim)
LCLICK(10,10)
WAITMS(100)
END_IF
ELSE
UNDEFINE($tim)
$color2 = $color1
END_IF
WAIT(30)
GOTO(go)
-
получилась вот такая штука:
http://screencast.com/t/l4799cBjsn
http://screencast.com/t/QjTx1tIZ
http://screencast.com/t/MhQAGeUCjqb
но все еще есть проблема, конкретно с этой частью:
IF($random = 3)
GETSCREEN
IF_PICTURE_IN (638,600, 718,633, "1w.bmp", -1, 80)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAIT(3)
LCLICK(929,592)
WAITMS(100)
END_IF
END_IF
поидее оно должно кликать на найденую картинку но оно этого не делает а сразу отрабатывает команду ELSE, что то не так? и как можно заставить его все таки это делать?
-
Попробуй добавить задержку перед GETSCREEN, может картинка не успевает появиться после предыдущего действия.
-
недождался вашего ответа так и начал пробывать действительно проблема была в задержке, просто отписыватся уже не стал)
-
Ребята, биде, затупил от недосыпа и другой скрипт сохранил на место нужного, есть какая то возможность вернуть его или тупо по новой делать нужно?
-
если не нажимал "применить" посмотри backup.cms в корне
-
появился новый глупый вопрос, можно сделать как нибудь что бы кликер выполнял цикл со свернутым окном и при этом можно было бы делать еще какой то процес не связаный с кликером, например фильм смотреть?
-
можно если включишь режим привязки к окну
-
а по подробней о том как его врубить можно?
-
alt+w
-
что то нифига не работает, нажимаю альт в и ничего, если свернуть окно кликер ничего не делает в том окне а пытается натыкать в новом открытом окне
-
Потому что тема - "Помогите!" :)
Может кто поможет с такой бедой: есть клиент, кликер, без привязки, видит его на отлично, НО есть такая беда, - вылазиет иногда одно окошко типа ошибки и кликер ни в какую не хочет его видеть. Он видит пиксили сквозь него. Может кто уже сталкивался с такой проблемой, и подскажет, что такое может быть?! Спасибо!
-
Что, никто даже не догадывается почему кликер не может видеть вылезающее окно?!
-
Что, никто даже не догадывается почему кликер не может видеть вылезающее окно?!
только изза привязки к другому окну