Author Topic: Помогите найти ошибку.  (Read 1503 times)

0 Members and 1 Guest are viewing this topic.

Orotund

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Помогите найти ошибку.
« on: June 07, 2015, 04:14:52 PM »
Пользуюсь Кликермунам довольно давно, но что-то не могу найти ошибку самостоятельно.

Code: (clickermann) [Select]
#ps2_mouse
#ps2_keyboard
#name "AA autoposadka"
#logfile

DEFINE($X, 0)
DEFINE($Y, 0)
DEFINE($Plant_Wait, 1600)

SUB (Plant)
KEYPRESS(#1)
WAITMS(100)
LCLICK(690,300)

KEYPRESS(#1)
WAITMS(100)
LCLICK(690,300)

WAITMS($Plant_Wait)
END_SUB

SUB (Move_W)
KEYDOWN(#W)
WAITMS(200)
KEYUP(#W)
END_SUB

SUB (Move_S)
KEYDOWN(#S)
WAITMS(200)
KEYUP(#S)
END_SUB

SUB (Move_D_S)
       KEYDOWN(#D)
       WAITMS(250)
       KEYUP(#D)
       KEYDOWN(#S)
       WAITMS(250)
       KEYUP(#S) 
END_SUB

SUB (Move_D_W)
        KEYDOWN(#D)
        WAITMS(250)
        KEYUP(#D)
        KEYDOWN(#W)
        WAITMS(250)
        KEYUP(#w) 
END_SUB


///сценарий
FOR ($i, $i < 10)
Plant()
Move_W()
END_CYC


Move_D_S()
LOGWRITE ("Переступил")


FOR ($i, $i < 10)
Plant()
Move_S()
END_CYC

Move_D_W()

   Значит проблема вот в чем: сценарий доходит до саба Move_D_S() и выполняет его бесконечное кол-во раз вместе с "LOGWRITE ("Переступил")".

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помогите найти ошибку.
« Reply #1 on: June 07, 2015, 05:24:10 PM »
всё просто, в цикле for нужно обнулять $i, так как в версии 4.11 "Цикл FOR не обнуляет индекс, если он (индекс) уже был инициализирован ранее".
Code: (clickermann) [Select]
///сценарий

FOR ($i=0, $i < 10)
Plant()
Move_W()
END_CYC 

Move_D_S()
LOGWRITE ("Переступил")

 
FOR ($i=0, $i < 10)
Plant()
Move_S()
END_CYC
 
Move_D_W()

Orotund

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Re: Помогите найти ошибку.
« Reply #2 on: June 07, 2015, 08:36:06 PM »
Ох спасибо, наверно моя ошибка в том что я не ознакомился с изменениями в 11й версии.
Не зря сценарий заработал когда я откатил программу до 10й версии = /