Author Topic: Здравствуйте,помогите оптимизировать скрипт.С уважением к вам Clickermann ы)  (Read 9938 times)

0 Members and 1 Guest are viewing this topic.

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Code: [Select]
WHILE ($a = 0)
   LCLICK(333,310)    // п. 1 настройки (1.Как сделать чтобы клик был рандумом  из 2 координат)
   WAITMS(100)
   LCLICK(342,363)
   WAITMS(100))
   LCLICK(344,425)    // п. 1.1 настройки ( хотелось бы упростить так как нужно нажать 10 раз одни и те же координаты)
   WAITMS(100))
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAITMS(100)
   LCLICK(344,425)
   WAIT(5)
   
    LCLICK(819,423)    // п.2
     WAIT(5)
   skip:
   
   GETSCREEN                                 
   IF(PXL(696, 492) = 2237115         
                                                           
             
     
      LCLICK(271,412)                       //3.1,3.22.Скрипт при условии что цвет в заданной координате красный,выполняет нужное действие раз 10 и прыгает на начало,хотя цвет остается красным=(,как сделать что бы пока красный выполнялось  бесконечно нужное действие 3.1.
      WAIT(5)
      LCLICK(819,423)
      WAIT(5)

      goto(skip)
     
   END_IF
END_CYC



$a =0




Действия скрипта:
1.выполнить настройки
2.Нажать на заданные координаты.
3.Распознать цвет
3.1 Если красный то выполнить,начиная с п.3
3.2 Если нет то вернуться к настройкам п.1.

Помогите пожалуйста улучшить
1.Как сделать чтобы клик был рандумом  из 2 координат
2.Скрипт при условии что цвет в заданной координате красный,выполняет нужное действие раз 10 и прыгает на начало,хотя цвет остается красным=(,как сделать что бы пока красный выполнялось  бесконечно нужное действие 3.1.
3.Посмотреть может как по другому написать.
С Уважением к вам. За ранние благодарен за помощь.
 

Doda

  • Guest
 8)
Code: (clickermann) [Select]
$klik=RNDFROM(1,2)              //1      рандомно из двух кликаешь по одной
switch($klik)
case(1)
   LCLICK(333,310)
   WAITMS(100)
case(2)
   LCLICK(342,363)
   WAITMS(100)
DEFAULT
end_switch


while($a<10)               //1.1 10 раз жмем  на точку
   LCLICK(344,425)
   WAITMS(100)
   inc($a)
end_cyc
WAIT(5)     //5 сек

LCLICK(819,423)    // 2 пункт 2
WAIT(5)


while($red=0) //3  .1 //пока красный
   
   GETSCREEN
   IF(PXL(696, 492) = 2237115)  //если цвет красн
     
      LCLICK(271,412)                       //3.1,3.22.Скрипт при условии что цвет в заданной координате красный,выполняет нужное действие раз 10 и прыгает на начало,хотя цвет остается красным=(,как сделать что бы пока красный выполнялось  бесконечно нужное действие 3.1.
      WAIT(5)
      LCLICK(819,423)
      WAIT(5)
   else
      $red=1
   END_IF
end_cyc
$red=0
« Last Edit: January 21, 2016, 01:00:41 AM by Браm комара »

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
 Огромное вам спасибо.Я очень извиняюсь,а множите дописать чтоб если красных выпадает больше 20 то начинать сначала?

Doda

  • Guest
Code: (clickermann) [Select]
while($red=0) //3  .1 //пока красный
 
   GETSCREEN
   IF(PXL(696, 492) = 2237115)  //если цвет красн
       LCLICK(271,412)                       //
      WAIT(5)
      LCLICK(819,423)
      WAIT(5)
   else
      $red=1
   END_IF
end_cyc

 этот код будет выполняться хоть миллион раз подряд, если там красный миллион раз подряд) красный пропал -  идет в настройку

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Code: [Select]
Код: Clickermann
$klik=RNDFROM(1,2)             
switch($klik)
case(1)
   LCLICK(333,310)
   WAITMS(100)
case(2)
   LCLICK(982,433)
   WAITMS(100)
DEFAULT
end_switch



LCLICK(341,311)  //  Чтобы вот суда возвращался( и будет ли они работать,в тот скрипт не вставил(
WAITMS(100
LCLICK(332,366)
WAIT(1)
while($a<10)             
   LCLICK(344,425)           
   WAITMS(100)
 
   inc($a)
end_cyc
WAIT(5)     

LCLICK(819,423)   
WAIT(5)


while($red=0)
   
   GETSCREEN
   IF(PXL(696, 492) = 2237115) 
     
      LCLICK(271,412)                       
      WAIT(5)
      LCLICK(819,423)      // вот эти 2 тоже рандомно сделать
       WAIT(5)
        LCLICK(819,423)   //
   else
      $red=1
   END_IF
end_cyc
$red=0[/cod

Пожалуйста,уделите еще немного времянки.
« Last Edit: January 21, 2016, 02:01:42 AM by sanek83 »

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Пожалуйста,уделите еще немного времянки.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вот

Code: (clickermann) [Select]
// п. 1 настройки (1.Как сделать чтобы клик был рандумом  из 2 координат)

$r = RND(1,2) // записываем рандомное число в переменную 1 или 2
SWITCH($r) // свитч выполнит ту или иную секцию
CASE(1)
   LCLICK(333,310)
CASE(2)
   LCLICK(982,433)
DEFAULT
END_SWITCH
WAITMS(100)

// п. 1.1 настройки ( хотелось бы упростить так как нужно нажать 10 раз одни и те же координаты)

start:    //  Чтобы вот суда возвращался

LCLICK(341,311)
WAITMS(100
LCLICK(332,366)
WAIT(1)

FOR($a=0,$a<10) // повторяем код 10 раз
   LCLICK(344,425)
   WAITMS(100)
END_CYC
WAIT(5)

LCLICK(819,423)    // п.2
WAIT(5)

GETSCREEN
WHILE(PXL(696, 492) = 2237115)
   LCLICK(271,412)
   WAIT(5)
   
   $r = RND(1,2)
   SWITCH($r)
   CASE(1)
      LCLICK(819,423)
   CASE(2)
      LCLICK(819,423)
   DEFAULT
   END_SWITCH
   WAIT(5)
   
   GETSCREEN
END_CYC
GOTO(start)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Code: (clickermann) [Select]
IF($rep = 0)
   $rep = 1
   IF(RND(0,1) = 0)
      LCLICK(333,310)
      WAITMS(100)
   ELSE
      LCLICK(342,363)
      WAITMS(100)
   END_IF
END_IF

LCLICK(341,311)
WAITMS(100)
LCLICK(332,366)
WAIT(1)

FOR($i=0, $i < 10)
   LCLICK(344,425)
   WAITMS(100)
END_CYC
WAIT(5)

LCLICK(819,423)    // п.2
WAIT(5)

$red = 0
GETSCREEN
WHILE((PXL(696, 492) = 2237115) & ($red < 20))
   INC($red)
   IF(RND(0,1) = 0)
      LCLICK(271,412)
      WAIT(5)
   ELSE
      LCLICK(819,423)
      WAIT(5)
   END_IF
   GETSCREEN
END_CYC

И следи за скобками. В первом посте, две лишние закрывающие и одной не хватает.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Ты давай соберись и напиши всё сразу, а то изменения размазаны по времени, то кусок пропустил, то вот это уже не бесконечно а не больше 20.
И внимательней, а то будут ответы как на скрине. Твои то координаты никто не проверяет.


sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Code: [Select]

$r = RND(1,2)
SWITCH($r)
CASE(1)
   LCLICK(333,310)
CASE(2)
   LCLICK(982,433)
DEFAULT
END_SWITCH
WAITMS(100)
 

 
start:   
 
LCLICK(341,311)
WAITMS(100)
LCLICK(332,366)
WAITMS(100)
 
FOR($a=0,$a<10)
   LCLICK(344,425)
   WAITMS(100)
END_CYC
WAIT(1)
 
LCLICK(819,423)    // п.2
WAIT(5)
 
$red = 0
GETSCREEN
WHILE((PXL(696, 492) = 2237115) & ($red < 15)) // Вот тут не корректно работает,можно ли сделать так чтобы было если красных 20 раз в [b]подряд[/b],то на start:? А то я не как понять не могу он то правильно работает,а то раньше уходит,а это важно=( 
   LCLICK(271,412)
   WAIT(1)
   INC($red)
 
   $r = RND(1,2)
   SWITCH($r)
   CASE(1)
      LCLICK(819,423)
   CASE(2)
      LCLICK(819,423)
   DEFAULT
   END_SWITCH
   WAIT(3)
 
   GETSCREEN
END_CYC
GOTO(start)

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Спасибо большое за терпение,вчера просто не выспался,все работает как надо за одним исключением( описал выше),помогите немножко доделать. С уважением Александр.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
$r = RND(1,2)
SWITCH($r)
CASE(1)
   LCLICK(333,310)
CASE(2)
   LCLICK(982,433)
DEFAULT
END_SWITCH
WAITMS(100)

start:

LCLICK(341,311)
WAITMS(100)
LCLICK(332,366)
WAITMS(100)

FOR($a=0,$a<10)
   LCLICK(344,425)
   WAITMS(100)
END_CYC
WAIT(1)

LCLICK(819,423)    // п.2
WAIT(5)

$red = 0
GETSCREEN
WHILE((PXL(696,492) = 2237115)&($red < 21)) // цикл выполняется если цвет верный и не более 20 раз
   INC($red)
   LCLICK(271,412)
   WAIT(1)
   
   $r = RND(1,2)
   SWITCH($r)
   CASE(1)
      LCLICK(819,423) // 2е одинаковые координаты!
   CASE(2)
      LCLICK(819,423)
   DEFAULT
   END_SWITCH
   WAIT(3)
   
   GETSCREEN
END_CYC
GOTO(start)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile


sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Спасибо большое,нашел причину,сдвигается место с цветом),буду думать как решить. С уважением Александр.

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Code: [Select]
FOR($a=0,$a<4) \\  Подскажите вариант  чтобы тут нажимал рандомно от 1 до 7 раз?
   LCLICK(826,440)
   WAITMS(500)
END_CYC