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

Основной раздел => Использование => Topic started by: Hito on February 24, 2014, 02:36:13 AM

Title: Почему не срабатывает, ребят? Что не так сделал?
Post by: Hito on February 24, 2014, 02:36:13 AM
Code: (clickermann) [Select]
1:

IF($time < $_time_t)
  WAITMS(1000)
  KEYPRESS(48) // Второе дыхание
  WAITMS(1200)
  KEYPRESS(57) // Заживление ран
  $time = $_time_t + 1740
END_IF

$check = 0
WHILE($check = 0)
  GETSCREEN
  IF_PIXEL_IN(302,53, 308,73, 4168809) // Полоска ХП
    $check = 1
    WAITMS(100)
    goto(1)
  Else
    WAITMS(50)
    goto(2)
  END_IF
END_CYC

2:

IF($time < $_time_t)
  WAITMS(900)
  KEYPRESS(56) // Дар жизни
  WAITMS(50)
  $time = $_time_t + 9
END_IF

KEYPRESS(49)
WAITMS(50)
KEYPRESS(50)
WAITMS(50)
KEYPRESS(51)
WAITMS(50)

Почему не срабатывает условие с 26-ой по 31-ую строчку?...
Title: Re: Почему не срабатывает, ребят? Что не так сделал?
Post by: Крис Тинка on February 24, 2014, 04:43:21 AM
1. Потому что $time больше $_time_t.
2. Не рекомендуется использовать goto в теле цикла, ведущее за пределы цикла.
3. Зачем вообще тебе такой цикл, который не выполняется больше 1 раза?
4. Чего хотел добиться использовав время в условии?
Title: Re: Почему не срабатывает, ребят? Что не так сделал?
Post by: Hito on February 24, 2014, 09:40:04 AM
1. Потому что $time больше $_time_t.
2. Не рекомендуется использовать goto в теле цикла, ведущее за пределы цикла.
3. Зачем вообще тебе такой цикл, который не выполняется больше 1 раза?
4. Чего хотел добиться использовав время в условии?

1. Первый пункт вообще не понял...
2. К goto вопросов нет - срабатывает нормально, но цикл, расположенный с 26-ой по 31-ую строчку почему-то перескакивает... Вот если убрать из макроса с 3-ей по 9-ую строчки, то "Дар жизни" срабатывает каждые 10 секунд.
3. В смысле - не выполняется больше одного раза...? Я не понял... Почему один раз?
4. В общем суть такова... У перса есть бафы, которые должны обновляться каждые пол часа. Это "Второе дыхание" и "Заживление ран". Желательно, чтоб они обновлялись не во время боя, а когда полоска ХП у перса полная и на нем никого не висит. Цыкл с GETSCREEN-ом отслеживает полоску ХП и если она не тронута, то отправляет действие на метку "1". По идее при таком условии перс должен просто стоять и ничего не делать. Только бафы обновлять каждые 29 минут. Если же полоска ХП начала убавляться, то действие переходит в метку "2", где раз в 10 секунд должен срабатывать "Дар жизни", а клавиши, которые ниже, юзаться постоянно. Ну и бафы сработают, если время придет... Вот как бы и вся задумка...
Title: Re: Почему не срабатывает, ребят? Что не так сделал?
Post by: Крис Тинка on February 24, 2014, 10:09:34 AM
IF - это не цикл, а условие (Цикл - for,while). Условие не выполняется, потому что оно ложное. Ты сравниваешь 2 переменные. Если $time < $_time_t, то тело условия выполняется.
Цикл WHILE у тебя выполняется 1 раз, потому что в теле цикла условие, по которому выпрыгиваешь из цикла либо к первой метке либо ко второй, других вариантов нет.
Title: Re: Почему не срабатывает, ребят? Что не так сделал?
Post by: Oraven on February 24, 2014, 11:13:13 AM
Code: (clickermann) [Select]
IF($time1 < $_time_t)
   WAITMS(1000)
   KEYPRESS(48) // Второе дыхание
   WAITMS(1200)
   KEYPRESS(57) // Заживление ран
   WAITMS(100)
   $time1 = $_time_t + 1740
END_IF

GETSCREEN
IF_PIXEL_IN(302,53, 308,73, 4168809) // Полоска ХП
   WAITMS(100)
Else
   IF($time2 < $_time_t)
      WAITMS(900)
      KEYPRESS(56) // Дар жизни
      WAITMS(50)
      $time2 = $_time_t + 9
   END_IF
   
   KEYPRESS(49)
   WAITMS(50)
   KEYPRESS(50)
   WAITMS(50)
   KEYPRESS(51)
   WAITMS(50)
END_IF
Title: Re: Почему не срабатывает, ребят? Что не так сделал?
Post by: Hito on February 24, 2014, 07:01:59 PM
Code: (clickermann) [Select]
IF($time1 < $_time_t)
   WAITMS(1000)
   KEYPRESS(48) // Второе дыхание
   WAITMS(1200)
   KEYPRESS(57) // Заживление ран
   WAITMS(100)
   $time1 = $_time_t + 1740
END_IF

GETSCREEN
IF_PIXEL_IN(302,53, 308,73, 4168809) // Полоска ХП
   WAITMS(100)
Else
   IF($time2 < $_time_t)
      WAITMS(900)
      KEYPRESS(56) // Дар жизни
      WAITMS(50)
      $time2 = $_time_t + 9
   END_IF
   
   KEYPRESS(49)
   WAITMS(50)
   KEYPRESS(50)
   WAITMS(50)
   KEYPRESS(51)
   WAITMS(50)
END_IF

Мне вот в голову даже не пришло, условие с таймером поставить под Else... ))) Сейчас попробую...

Все отлично работает! Спс! Но чуть позже у меня будет еще вопрос... Чтоб вас не просить за меня делать макрос, я сам его напишу, а потом к вам с вопросом - правильно ли сделал. Я хочу, чтоб скилы из строчки 21, 23 и 25 срабатывали в том случае, если они откатились. То есть GETSCREEN-ы на них впихнуть.