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

Основной раздел => Общие вопросы => Topic started by: Piano GX on March 05, 2016, 02:28:31 PM

Title: почему работает однократно?
Post by: Piano GX on March 05, 2016, 02:28:31 PM
Code: (clickermann) [Select]

SUB(MOB,$XP2,$YP2,$X2,$Y2)
  IF(($XP2>$X2)&($YP2>$Y2))
KEYPRESS(#3) //1
  $C=PXLCOUNT($X2,$Y2,$XP2,$YP2,0)
  IF($C>100000000000000)
  ELSE
  LCLICK($X2,$Y2)
  END_IF
  END_IF
//  2
IF(($XP2<$X2)&($YP2<$Y2))
KEYPRESS(#3)
  $C=PXLCOUNT($XP2,$YP2,$X2,$Y2,0)
  IF($C>120000000000000000000000)
  ELSE
  LCLICK($X2,$Y2)
  END_IF
  END_IF 
  //3
  IF((($XP2>$X2)&($YP2<$Y2))|(($XP2=$X2)&($YP2<$Y2))|(($XP2>$X2)&($YP2=$Y2)))
  KEYPRESS(#3)
  $C=PXLCOUNT($X2,$YP2,$XP2,$Y2,0)
  IF($C>1200000000000000)
  ELSE
  LCLICK($X2,$Y2)
  END_IF
  END_IF   
  //4
   IF((($XP2<$X2)&($YP2>$Y2))|(($XP2<$X2)&($YP2=$Y2))|(($XP2=$X2)&($YP2>$Y2)))
   KEYPRESS(#3)
  $C=PXLCOUNT($XP2,$Y2,$X2,$YP2,0)
  IF($C>120000000000000)
  ELSE
  LCLICK($X2,$Y2)
  END_IF
  END_IF
  undefine($C)
  UNDEFINE($XP2)
  UNDEFINE($YP2)
  UNDEFINE($X2)
  UNDEFINE($Y2)
  END_SUB
  DEFINE($T,1)
DEFINE($YM,78)
getscreen
WAIT(1)
  WHILE($T>0) // должен выполняться пока не убьет всех врагов
if_pixel_in(200,$YM,1051,438,4867928,8354971, 6709384,13224393,12829897,166776959,11909303,16119285,15395562,15724527,484940,1994075,610626,39552,7961708,3362891,1385507,134412,534055,1059630,2636088,2252621)
$YM=$_RETURN2+5// присваивает координату 1 противника +5, второго , третьего и т.д по очереди
$X=$_RETURN1//получаем
$Y=$_RETURN2//                 координаты врага
DEFINE($A,2) // делаем 2 клика по нему,все работает нормально
WHILE($A>0)
MOB($XP,$YP,$X,$Y)
INC($A,-1)
END_CYC//заканччиваем атаку по  1 противнику
ELSE// если противников нет, то есть всех прокликал, выходит из цикла, а если прокликаны не все, то должен выполнить повторный цикл, вот тут загвостка какая-то , выходит из цикла после 1 выполнения, хотя есть по кому стрелять. цвета у противников одинаковые
$T=0
END_IF
END_CYC  //1
Title: Re: почему работает однократно?
Post by: Atom on March 05, 2016, 02:34:31 PM
END_CYC в конце попробуй убрать
Title: Re: почему работает однократно?
Post by: Piano GX on March 05, 2016, 02:39:29 PM
END_CYC в конце попробуй убрать
нет, она должна там быть, без нее все равно однократно прогу прогоняет.
Title: Re: почему работает однократно?
Post by: Piano GX on March 05, 2016, 02:53:23 PM
А если убрать ELSE чтобы цикл повторялся бесконечно, но он все равно кликает только по одному противнику 2 раза и все
Title: Re: почему работает однократно?
Post by: Piano GX on March 05, 2016, 02:58:50 PM
нашел ошибку, как я понял, DEFINE  не работает повторно в цикле, и поэтому нужно после цикла его приравнивать к значению равному в DEFINE
после цикла добавил $A=2 и заработало
Title: Re: почему работает однократно?
Post by: Oraven on March 05, 2016, 03:56:18 PM
Тебе не надо использовать DEFINE а нужно сразу писать $A=2. Хоть читаешь что тебе отвечают или просто мания шлепать темы на каждый чих?

DEFINE обычно применяют когда нужно объявить какое то начальное значение но потом позволить ему меняться.
Code: (clickermann) [Select]
DEFINE($a, 100) // начальное значение, при последующих проходах значение переменной не будет меняться
LOGWRITE ($a)
INC($a,1)
WAITMS(500)