Author Topic: После else выполняется через раз  (Read 1226 times)

0 Members and 1 Guest are viewing this topic.

WinterSt

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
После else выполняется через раз
« on: December 31, 2015, 03:39:13 PM »
Помогите, после else все выполняется через раз, в чем может быть баг?
Code: (clickermann) [Select]
#name "New Script"


$raz = 0
IF ($raz=0)
  GETSCREEN
  IF_PIXEL_IN(1397, 291, 1397, 291, 2896073)
    WHILE($skinut > 0)
      WAIT(1)
      LCLICK(837,398)
      $skinut = $skinut - 1
   END_CYC
  WAIT(3)
  LCLICK(594,529)
  $raz = $raz + 1
 ELSE
  WAIT(1)
  LCLICK(871,402)
  WAIT(1)
    LCLICK(594,529)
   $skinut = $skinut + 1
   $raz = $raz + 1
 END_IF

   
END_IF


WHILE ($raz = 1)
 
  GETSCREEN
 IF_PIXEL_IN(1099, 160, 1099,160, 3355443)

 WAIT(7)
 $raz = 0
 END_IF
 
 
END_CYC
« Last Edit: December 31, 2015, 03:46:55 PM by WinterSt »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: После else выполняется через раз
« Reply #1 on: December 31, 2015, 03:58:42 PM »
ошибок в коде нет, но отнимать и прибавлять переменные лучше специальной функцией INC

Code: (clickermann) [Select]
$raz = 0
IF($raz=0)
   GETSCREEN
   IF_PIXEL_IN(1397, 291, 1397, 291, 2896073)
      WHILE($skinut > 0)
         WAIT(1)
         LCLICK(837,398)
         INC($skinut,-1)
      END_CYC
      WAIT(3)
      LCLICK(594,529)
      INC($raz,1)
   ELSE
      WAIT(1)
      LCLICK(871,402)
      WAIT(1)
      LCLICK(594,529)
      INC($skinut,1)
      INC($raz,1)
   END_IF
END_IF

WHILE($raz = 1)
   GETSCREEN
   IF_PIXEL_IN(1099, 160, 1099,160, 3355443)
      WAIT(7)
      $raz = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC

WinterSt

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: После else выполняется через раз
« Reply #2 on: December 31, 2015, 04:03:32 PM »
А как выводить переменные в лог, что бы понял где возникает проблема?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: После else выполняется через раз
« Reply #3 on: December 31, 2015, 04:08:56 PM »
Например вот так
Code: (clickermann) [Select]
$raz = 0
IF($raz=0)
   GETSCREEN
   IF_PIXEL_IN(1397, 291, 1397, 291, 2896073)
      WHILE($skinut > 0)
         WAIT(1)
         LCLICK(837,398)
         INC($skinut,-1)
      END_CYC
      WAIT(3)
      LCLICK(594,529)
      INC($raz,1)
   ELSE
      WAIT(1)
      LCLICK(871,402)
      WAIT(1)
      LCLICK(594,529)
      INC($skinut,1)
      INC($raz,1)
   END_IF
END_IF
LOGWRITE ("skinut ", $skinut)

WHILE($raz = 1)
   GETSCREEN
   IF_PIXEL_IN(1099, 160, 1099,160, 3355443)
      WAIT(7)
      $raz = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC