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

Основной раздел => Общие вопросы => Topic started by: Hito on November 12, 2014, 10:25:41 PM

Title: Как мне вычислить миллисекунды?
Post by: Hito on November 12, 2014, 10:25:41 PM
Ребят, условия такие. Мне надо заюзать определенную кнопку и вычислить, через какое время, после этого, в определенных координатах появится определенный цвет. Вот пример:

Code: (clickermann) [Select]
KEYPRESS(#A)
// Тут команду, которая начала бы отсчет миллисекунд
WAITMS(300)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      $check = 1
      // Тут команду, которая закончила бы отсчет миллисекунд и вывела бы результат в лог.
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
HALT

Как это намутить?
Title: Re: Как мне вычислить миллисекунды?
Post by: ksa-nsk on November 12, 2014, 11:27:48 PM
а комп в состоянии за милисекунды сохранять весь экран и искать внем ваши точки?
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 12:59:16 AM
а комп в состоянии за милисекунды сохранять весь экран и искать внем ваши точки?

Вообще-то он этим занимается каждый день. Но при чем тут комп? Мне нужно вычислить время от нажатия клавиши и до того, как скрипт найдет нужный цвет в нужном месте - какой бы мощности не был комп и за какое бы время он это не сделал.
Title: Re: Как мне вычислить миллисекунды?
Post by: quant13 on November 13, 2014, 01:39:35 AM
а просто взять переменную и увеличивать ее уже не модно?
INC ($var)
PRINT($var)
Title: Re: Как мне вычислить миллисекунды?
Post by: Луций on November 13, 2014, 01:54:03 AM
 через
Code: (clickermann) [Select]
for($i=0, $i < 0)
getscreen ну ты понел
WAITMS(1)
if ваше событие
 print($i)
 $i=0
end if
end_cyc
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 02:07:13 AM
через
Code: (clickermann) [Select]
for($i=0, $i < 0)  // Я вот эту строку вообще не понимаю...
getscreen ну ты понел  // Нихрена я не понял
WAITMS(1)  // Что тут делает одна миллисекунда?
if ваше событие
 print($i)
 $i=0
end if
end_cyc

Эт че такое...?
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 02:43:16 AM
Пока я придумал только такой вариант...

Code: (clickermann) [Select]
KEYPRESS(#A)
PRINT($_ms)  // Старт
WAITMS(300)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      $check = 1
      PRINT($_ms)  // А потом из этих миллисекунд вычесть на калькуляторе первые...
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
HALT
Title: Re: Как мне вычислить миллисекунды?
Post by: Atas on November 13, 2014, 08:22:07 AM
Вот как-то так, в общих чертах.
Code: (clickermann) [Select]
KEYPRESS(#A)

$time_1 = $_ms // Запоминаем время нажатия клавиши #A

WHILE($time_2 = 0)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      $time_2 = $_ms // Запоминаем время появления пикселя
   END_IF
END_CYC

$time_3 = $time_2 - $time_1 // Вычисляем время затраченное на ожидание

LOGWRITE (STRCONCAT("Пиксель появился через - ", $time_3, " ms")) // Выводим результат в лог

HALT
Title: Re: Как мне вычислить миллисекунды?
Post by: Oraven on November 13, 2014, 10:02:38 AM
Чуть поменьше строк, и нафига STRCONCAT в LOGWRITE?

Code: (clickermann) [Select]
KEYPRESS(#A)
$ms = $_ms
WHILE(1)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      LOGWRITE ("Найдено через: ", $_ms-$ms, " мс")
      HALT
   END_IF
END_CYC
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 12:24:26 PM
Вот как-то так, в общих чертах.
Code: (clickermann) [Select]
KEYPRESS(#A)

$time_1 = $_ms // Запоминаем время нажатия клавиши #A

WHILE($time_2 = 0)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      $time_2 = $_ms // Запоминаем время появления пикселя
   END_IF
END_CYC

$time_3 = $time_2 - $time_1 // Вычисляем время затраченное на ожидание

LOGWRITE (STRCONCAT("Пиксель появился через - ", $time_3, " ms")) // Выводим результат в лог

HALT

Благодарю
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 12:24:48 PM
Чуть поменьше строк, и нафига STRCONCAT в LOGWRITE?

Code: (clickermann) [Select]
KEYPRESS(#A)
$ms = $_ms
WHILE(1)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
      LOGWRITE ("Найдено через: ", $_ms-$ms, " мс")
      HALT
   END_IF
END_CYC

Благодарю
Title: Re: Как мне вычислить миллисекунды?
Post by: Hito on November 13, 2014, 12:40:32 PM
а комп в состоянии за милисекунды сохранять весь экран и искать внем ваши точки?

Code: (clickermann) [Select]
$ms = $_ms
GETSCREEN
IF_PIXEL_IN(506,757, 506,757, 201276,14410719) // Лук, молния
   LOGWRITE ("Найдено через: ", $_ms-$ms, " мс")
END_IF

(http://f6.s.qip.ru/G1CCNGeo.png)

А ты говоришь...)
Title: Re: Как мне вычислить миллисекунды?
Post by: quant13 on November 13, 2014, 12:44:25 PM
2 Oraven
Quote
WHILE(1)
А что это за условие такое?
Title: Re: Как мне вычислить миллисекунды?
Post by: Oraven on November 13, 2014, 01:11:34 PM
2 Oraven
Quote
WHILE(1)
А что это за условие такое?
Это бесконечный цикл. Условие всегда будет верным.