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

Основной раздел => Общие вопросы => Topic started by: kest430 on December 01, 2014, 10:24:43 PM

Title: Таймер на ожидание с выходом
Post by: kest430 on December 01, 2014, 10:24:43 PM
Это опять я со своим говноскриптом.

Внутри своего скрипта я использую задержку в минутах, которую вынес в отдельный СУБ.
Задача этого СУБа такая: получить в атрибутах длину в минутах, а потом, каждые 10 секунд писать в лог сколько осталось до окончания. Это надо мне, чтобы параллельно я мог запускать другие скрипты или играть руками

Code: [Select]
SUB(wait_x_min, $x_min)
Print ("ждать еще: ", $x_min, ":00")
FOR($time_min = 0, $time_min<$x_min)
FOR($time_sec = 1, $time_sec<7)
wait (10)
Print ("ждать еще: ", $x_min-1-$time_min, ":", 60-$time_sec*10)
END_CYC
end_cyc
END_SUB

На выходе в логе получается что-то типа такого
Code: [Select]
21:35:26 ждать еще: 2:0
21:35:36 ждать еще: 1:50
21:35:46 ждать еще: 1:40
21:35:56 ждать еще: 1:30
21:36:07 ждать еще: 1:20
21:36:17 ждать еще: 1:10
21:36:27 ждать еще: 1:0
21:36:37 ждать еще: 0:50
21:36:47 ждать еще: 0:40
21:36:57 ждать еще: 0:30
21:37:07 ждать еще: 0:20
21:37:17 ждать еще: 0:10
21:37:28 ждать еще: 0:0

Работает - ОК, меня устраивает.

Но хотелось бы допилить "выход" из этого СУБа.
Т.Е. например основной скрипт запустил его wait_x_min (15), но вдруг оказалось мне не нужна такая задержка (бой окончился раньше чем я думал). Получается или ручками тормозить весь скрипт, или ждать.

Думал вставить туда iskeydown, но что-то не могу допереть как это реализовать.

Прошу у "отцов" помощи.
Title: Re: Таймер на ожидание с выходом
Post by: Oraven on December 01, 2014, 10:43:23 PM
Как то так

Code: (clickermann) [Select]
SUB(wait_x_min, $x_min)
   Print ("ждать еще: ", $x_min, ":00")
   FOR($time_min = 0, $time_min<$x_min)
      FOR($time_sec = 1, $time_sec<7)
         FOR($time_sec2=0,$time_sec2<10)
            IF(iskeydown(#space)=1) // пробел
               $time_sec2 = 10
               $time_sec = 6
               $time_min = $x_min-1
            ELSE
               wait(1)
            END_IF
         END_CYC
         Print ("ждать еще: ", $x_min-1-$time_min, ":", 60-$time_sec*10)
      END_CYC
   end_cyc
END_SUB


wait_x_min(2)
LOGWRITE ("Стоп")

HALT
Title: Re: Таймер на ожидание с выходом
Post by: kest430 on December 01, 2014, 11:33:52 PM
Code: (clickermann) [Select]
         goto(skip_Priexal)
    skip_Priexal:
END_SUB
не люблю я эти костыли GOTO еще с бейсика

а не проще поиском типичной картинки, контролировать идущий бой и выходить автоматически если бой завершён досрочно?
В том то и прикол, что какой-то типичной картинки нет.

Главный скрипт фармит по списку жертв.
Открывает страницу жертвы, проверяет здоровье, атакует, проверяет был ли бой. Если надпись "Бой" не появилась, он начинает сканить типичные картинки ошибок: часто деретесь, на перса недавно напали и другие. Среди них есть картинка "вы заняты", которая появляется, когда я руками записываюсь в групповой бой например или делаю квест.
Если скрипт находит "вы заняты" он спрашивает inputbox("Сколько минут ждем?", "2"). В этот момент я могу указать например 15 и до следующей попытки атаки скрипт будет ждать 15 минут. Но не всегда получается точно угадать с задержкой и получается что поставил задержку в 15 минут я могу пройти групповой бой за 5 и еще 10 минут скрипт будет бездельничать
Title: Re: Таймер на ожидание с выходом
Post by: kest430 on December 01, 2014, 11:45:29 PM
Как то так
Блин, Oraven, ты выручаешь меня который раз. Спасибо!!!