Author Topic: If_pixel in x,y или пробую сбацать цикл  (Read 1840 times)

0 Members and 1 Guest are viewing this topic.

braaaaaain

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
If_pixel in x,y или пробую сбацать цикл
« on: April 18, 2017, 11:30:21 PM »
Вместе с умершим ссд, умер и мой кликер, помогите сообразить как сделать. Делал год назад, уже забыл что и как. Суть такая, Нужно заставить бота ставить на рулетке сначала три раза подряд на черное, потом три раза подряд на красное и дальше по кругу. При пройгрыше удваивать ставку. Скрипт я делал через кучу if_pixel in  но знаю что можно проще. Буду благодарен за помошь) браузер хром, всегда пользовался на ноуте с открытым браузером, но прочитал что в свернутом состоянии работать не будет?
« Last Edit: April 19, 2017, 10:40:27 AM by braaaaaain »

braaaaaain

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: If_pixel in x,y
« Reply #1 on: April 19, 2017, 10:35:02 AM »
Пока сделал так, единственная проблема так и не понял как умножать переменную, при отрицательном результате условия она должна умножиться сама на себя и сохраниться, на этой строчке выдает ошибку, и как заставить goto  работать только 3 раза, можно просто продублировать, но думаю можно поще.
« Last Edit: April 19, 2017, 10:41:15 AM by braaaaaain »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #2 on: April 19, 2017, 11:09:21 AM »
Зачем кавычек напихал?
"$var" это просто строка из символов   "$" "v" "a" "r".


KEYSTRING("$var")
Code: (clickermann) [Select]
KEYSTRING($var)

KEYSTRING("($var*2)")
Code: (clickermann) [Select]
$var = $var * 2
KEYSTRING($var)

goto(1)  - выкинь. Мало того, что не нужно, так и не правильно. По номеру строки не переходит, только по метке.
DEFINE тоже нужно использовать правильно. Он срабатывает только если переменной нет.
Пиши простое присваивание
$var = ...
« Last Edit: April 19, 2017, 11:13:18 AM by Vint »


braaaaaain

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #3 on: April 19, 2017, 12:55:50 PM »
Code: (clickermann) [Select]
DEFINE($var, )
define($var2, )
skip:   
GETSCREEN
IF_PIXEL_IN(356,304, 356,304, 14671839) //если строка состояния доходит до 0
    WAIT(18)            //ждем 18 секунд
    IF_PIXEL_IN (1015,451,1015,451, 4410032)   //проверяем предыдущий результат , если он красный, а мы ставим на красное(пока что хочу хотя бы это сделать) то продолжаем
    LCLICK(649,509) //клик на поле ввода
    WAITMS(50)
    KEYDOWN(#CTRL)               //очищаем его
    WAITMS(50)
    KEYPRESS(#BACKSPACE)
    KEYUP(#CTRL)
    WAITMS(50)
    $var2 = 1          // начальная ставка
    KEYSTRING($var2)
    WAITMS(50)
    lclick(545,605)           //кликаем на "поставить на красное"
    WAITMS(50)
    $var = 1              //в случае если предыдущий ролл бый выйгышный, то изменяем на начальную ставку
    else
    LCLICK(649,509)     
    WAITMS(50)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#BACKSPACE)
    KEYUP(#CTRL)
    WAITMS(50)
    $var = $var*2           //в случае если предыдущий был черный, умножаем на 2
    KEYSTRING($var)
    WAITMS(50)
    lclick(545,605)   // ставим снова на красное
    WAITMS(50)
    end_if
else         //если строка состояния не равна 0, то в начало.
goto(skip)
END_IF                     
 goto(skip)
           

так лучше? или убрать
Quote
DEFINE($var, )
define($var2, )
?
в таком виде, при любом раскладе вводит только 1, то есть на 2 не умножает. то есть игнорирует второе ТО
Code: (clickermann) [Select]
IF_PIXEL_IN (1015,451, 4410032)
    LCLICK(649,509)
    WAITMS(50)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#BACKSPACE)
    KEYUP(#CTRL)
    WAITMS(50)
    $var2 = 1
    KEYSTRING($var2)
    WAITMS(50)
    lclick(545,605)
    WAITMS(50)
    $var = 1
и переходит сразу к
Code: (clickermann) [Select]
else
    LCLICK(649,509)
    WAITMS(50)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#BACKSPACE)
    KEYUP(#CTRL)
    WAITMS(50)
    $var = $var*2
    KEYSTRING(5)
    WAITMS(50)
    lclick(545,605)
    WAITMS(50)
    end_if
« Last Edit: April 19, 2017, 01:11:25 PM by braaaaaain »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #4 on: April 19, 2017, 01:07:54 PM »
GOTO все убрать. Метку Skip: убрать.
DEFINE написать правильно. Синтаксис соблюдать! Не лепить отсебятину и команды-полуфабрикаты.

Нет снимка экрана после паузы в 18 секунд. Так ничего и не увидит.
Code: (clickermann) [Select]
DEFINE($var, 1)
GETSCREEN
IF_PIXEL_IN(356,304, 356,304, 14671839)
    WAIT(18)   // 18 секунд?
    GETSCREEN
    IF_PIXEL_IN(1015,451,1015,451, 4410032)
        $var = 1
    else
        $var = $var*2
    end_if
    LCLICK(649,509)
    WAITMS(50)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#BACKSPACE)
    KEYUP(#CTRL)
    WAITMS(50)
    KEYSTRING($var)
    WAITMS(50)
    lclick(545,605)
    WAITMS(50)
else
    WAITMS(50)
END_IF


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #5 on: April 19, 2017, 01:12:16 PM »
Так не правильно
Code: (clickermann) [Select]
DEFINE($var, )Вот так правильно
Code: (clickermann) [Select]
DEFINE($var)Или так
Code: (clickermann) [Select]
DEFINE($var, 0)
Писать DEFINE есть смысл когда нужно объявить переменную с начальным значением не 0, а потом при следующих проходах скрипта DEFINE на переменную уже не будет воздействовать.
Понятное дело что умножая на 0 ничего кроме нуля не получишь поэтому в начале DEFINE($var, 1) написано правильно.

Кликер сам объявляет переменные при первом упоминании, так что если начальное значение 0 то ничего писать не надо.

Зачем там $var2 = 1 не понятно.
Code: (clickermann) [Select]
DEFINE($var, 1)
skip:
GETSCREEN
IF_PIXEL_IN(356,304, 356,304, 14671839)
   WAIT(18)
   GETSCREEN // вот здесь может надо снова сделать снимок через 18 секунд то?! 
   IF_PIXEL_IN (1015,451,1015,451, 4410032)
      LCLICK(649,509)
      WAITMS(50)
      KEYDOWN(#CTRL)
      WAITMS(50)
      KEYPRESS(#BACKSPACE)
      KEYUP(#CTRL)
      WAITMS(50)
      $var2 = 1
      KEYSTRING($var2)
      WAITMS(50)
      lclick(545,605)
      WAITMS(50)
      $var = 1
   else
      LCLICK(649,509)
      WAITMS(50)
      KEYDOWN(#CTRL)
      WAITMS(50)
      KEYPRESS(#BACKSPACE)
      KEYUP(#CTRL)
      WAITMS(50)
      $var = $var*2
      KEYSTRING($var)
      WAITMS(50)
      lclick(545,605)
      WAITMS(50)
   end_if
else
   WAITMS(50)  // а здесь стоит добавить задержку чтоб не грузил процессор если не найдено
   goto(skip)
END_IF
goto(skip)

braaaaaain

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #6 on: April 19, 2017, 01:12:59 PM »
со снимком экрана втупил) сейчас проверю $var2=1 сбрасываетпредыдущее множение в случае пройгрыша, то есть следующая ставка после выйгрыша уже будет не 8(к примеру) а снова 1*1
« Last Edit: April 19, 2017, 01:15:41 PM by braaaaaain »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: If_pixel in x,y или пробую сбацать цикл
« Reply #7 on: April 19, 2017, 01:47:56 PM »
Ааааааа. Мой ответ прозевал.