Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: casethps on February 08, 2017, 03:45:59 PM

Title: Условие IF и Цикличность
Post by: casethps on February 08, 2017, 03:45:59 PM
Все привет еще раз)
Мне нужно создать такие условия
Чтобы мой макрос проходил два раза, потом использовал WHEELDOWN,  снова два раза проходил, потом использовал WHEELUP (+ в последсвтии надо будет еще добавить)
Как я понимаю это двойная цикличность
Как это будет выглядеть?
Title: Re: Условие IF и Цикличность
Post by: Vint on February 08, 2017, 05:02:14 PM
Вариант 1
Code: (clickermann) [Select]
FOR($i=0, $i < 2)
    // основные действия
END_CYC

$mode = $mode ^ 1
IF($mode = 1)
    WHEELDOWN
ELSE
    WHEELUP
END_IF

Вариант 2
Code: (clickermann) [Select]
SUB(actions)
    FOR($i=0, $i < 2)
        // основные действия
    END_CYC
END_SUB

actions()
WHEELDOWN
actions()
WHEELUP
Title: Re: Условие IF и Цикличность
Post by: casethps on February 08, 2017, 05:29:58 PM
спасибо большое щас попробую
Title: Re: Условие IF и Цикличность
Post by: casethps on February 08, 2017, 05:45:32 PM
если можно прокоментируйте строчки для более лучше понимания и если макрос мне надо будет добавить в макрос действия между циклами
2 раза проходит макрос
потом wheeldown
2 раза проходит
потом wheeldown
2 раза проходит
потом wheeldown
2 раза проходит
потом wheelup
Title: Re: Условие IF и Цикличность
Post by: Vint on February 08, 2017, 06:05:44 PM
Code: (clickermann) [Select]
    SUB(actions)
        FOR($i=0, $i < 2)  // цикл, выполняется 2 раза
            // основные действия
        END_CYC
    END_SUB
     
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELUP
Title: Re: Условие IF и Цикличность
Post by: casethps on February 08, 2017, 06:09:22 PM
SUB(actions)
        FOR($i=0, $i < 2)  // цикл, выполняется 2 раза
            // основные действия
        END_CYC
    END_SUB
 
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELUP

Вот так код будет выглядеть?
2 раза проходит макрос
потом wheeldown
2 раза проходит
потом wheeldown
2 раза проходит
потом wheeldown
2 раза проходит
потом wheelup
Title: Re: Условие IF и Цикличность
Post by: Vint on February 08, 2017, 06:10:03 PM
Да.
Title: Re: Условие IF и Цикличность
Post by: casethps on February 08, 2017, 06:21:47 PM
спасибо большое все работает))
Осталось последнее сделать действия при краше клиента(=автоперезаход в игру)
Как это реализовывается? Как сделать так чтобы кликер проверял экран после каждого цикла? и если экран дает такой то цвет то он делал сначала действия по перезапуску клиента а потом делал цикл мой(клики то есть, которые выше)

Title: Re: Условие IF и Цикличность
Post by: Vint on February 08, 2017, 06:42:09 PM
Тема прямо под этой http://crapware.aidf.org/forum/index.php?topic=3033.msg20020#msg20020
Title: Re: Условие IF и Цикличность
Post by: casethps on February 09, 2017, 08:31:27 PM
Хотел бы еще ускорить свой макрос
чтобы он получал точку или область экрана и если там не такой цвет то сразу переходил на след действие
// основные действия
LDOWN(750,350)
WAITMS(50)
LUP(750,350)
WAITMS(100)
LDOWN(600,453)
WAITMS(50)
LUP(600,453)
WAITMS(100)
Если он нашел цвет то нажимает это(и дальше переходил к если нет)
KEYDOWN(#F)
WAITMS(150)
KEYUP(#F)
WAITMS(3000)
KEYDOWN(#F)
WAITMS(150)
KEYUP(#F)
Если нет
LDOWN(520,350)
WAITMS(50)
LUP(520,350)
WAITMS(100)
LDOWN(320,453)
WAITMS(50)
LUP(320,453)
WAITMS(100)


SUB(actions)
        FOR($i=0, $i < 2)  // цикл, выполняется 2 раза
            // основные действия
        END_CYC
    END_SUB
 
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELDOWN
    actions() // вызываем подпрограмму actions
    WHEELUP
Title: Re: Условие IF и Цикличность
Post by: Oraven on February 09, 2017, 10:06:48 PM
Читай про IF_PIXEL_IN в справке, раздел Экран

Code: (clickermann) [Select]
SUB(actions)
   FOR($i=0, $i < 2)  // цикл, выполняется 2 раза
      // основные действия
      LDOWN(750,350)
      WAITMS(50)
      LUP(750,350)
      WAITMS(100)
      LDOWN(600,453)
      WAITMS(50)
      LUP(600,453)
      WAITMS(100)
     
      GETSCREEN
      IF_PIXEL_IN(0,0, 500,500, 255) // здесь надо указать область и цвет
         KEYDOWN(#F)
         WAITMS(150)
         KEYUP(#F)
         WAITMS(3000)
         KEYDOWN(#F)
         WAITMS(150)
         KEYUP(#F)
         WAITMS(100)
      END_IF
     
      LDOWN(520,350)
      WAITMS(50)
      LUP(520,350)
      WAITMS(100)
      LDOWN(320,453)
      WAITMS(50)
      LUP(320,453)
      WAITMS(100)
     
   END_CYC
END_SUB

actions() // вызываем подпрограмму actions
WHEELDOWN
actions() // вызываем подпрограмму actions
WHEELDOWN
actions() // вызываем подпрограмму actions
WHEELDOWN
actions() // вызываем подпрограмму actions
WHEELUP
Title: Re: Условие IF и Цикличность
Post by: casethps on February 10, 2017, 12:57:53 AM
А можно указать диапозон цветов?и как это сделать? Потому что в игре иконка чуть изменяет цвет от освещения
Title: Re: Условие IF и Цикличность
Post by: Oraven on February 10, 2017, 08:43:28 AM
А можно указать диапозон цветов?и как это сделать? Потому что в игре иконка чуть изменяет цвет от освещения

Для этого есть цветокоррекция
Вот таким скриптом получаешь снимок, он появится в папке Screens в папке скрипта
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6) // можно попробовать значения 5-8
SCREENSHOT
HALT

С этого снимка берешь цвет

В своем скрипте также пишешь
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6) // тот уровень который использовал для получения снимка.
Title: Re: Условие IF и Цикличность
Post by: casethps on February 10, 2017, 12:11:40 PM
Почему то он делает скрин только левого угла экрана при том растягивая эту картинку(1536х864 а разрегение экрана 4k). В чем проблема?(Все разобрался игра не хотела фоткать целый экран в псевдоокне а полноэкранном все ок)
Title: Re: Условие IF и Цикличность
Post by: casethps on February 10, 2017, 01:00:26 PM
ошибся на полном экране в 2048 на 1152 тоже фоткает 70% жкрана от верхнего левого угла в чем проблема?
Title: Re: Условие IF и Цикличность
Post by: dramster on February 10, 2017, 01:06:31 PM
есть 2 выхода:
1. отключить масштабирование
(http://i.imgur.com/CM3ZAHG.png)

2. если при масштабе 100% не комфортно работать (всё мелкое), то уменьшить разрешение до работопригодного состояния.
Title: Re: Условие IF и Цикличность
Post by: Vint on February 10, 2017, 05:07:10 PM
Понакупают мониторов 4k и выставляют разрешение 640х480. Вот нафига? Получается в 4k только обои на столе?
Title: Re: Условие IF и Цикличность
Post by: dramster on February 10, 2017, 05:55:00 PM
а я гдето уже писал насчет этого. 4к очень даже отличная штука, но при условии что размер монитора будет как минимум 32", а лучше чуть больше. к примеру при 40" в 4к равносильно четырем мониторам в 20" и разрешением 1920х1080, и при этом это всё чудо у тебя на одном мониторе. ктото скажет, а нгахера такой огромныи моник? .... я отвечу - а нахера люди покупают по 2-3 монитора, ведь их же можно разместить на одном. мешает большой размер - работай в окнах.
всем рекомендую  :D .  если приходится после такого садится на обычный, к примеру фулхд моник, чувствую катострафическую нехватку рабочего пространства.
а вот сунуть 4к в 15-20"(и при этом использовать масштабирование), как по мне это маразм :D.