Author Topic: Вычисление времени  (Read 4287 times)

0 Members and 2 Guests are viewing this topic.

Makkvun

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Вычисление времени
« on: August 26, 2017, 11:49:57 PM »
Здравствуйте!
Нужно создать простую команду, но к сожалению не имею опыта написания кода.
Помогите пожалуйста сделать данную комбинацию:
1.От времени N(ч.м.с) отнять  время F(ч.м.с)   и получить время D(ч.м.с)
2.В полученное время D(ч.м.с) кликнуть по заданным координатам
*Время N и F задается вручную


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вычисление времени
« Reply #1 on: August 27, 2017, 08:39:46 AM »
Code: (clickermann) [Select]
// Время N
$th1 = 10 // Час
$tm1 = 0 // Минута
$ts1 = 0 // Секунда

// время F
$th2 = 5 // Час
$tm2 = 0 // Минута
$ts2 = 0 // Секунда

$cur_time1 = ($th1*60*60)+($tm1*60)+$ts1
$cur_time2 = ($th2*60*60)+($tm2*60)+$ts2
$cur_time3 = $cur_time1-$cur_time2 // время D

IF($cur_time3 < 0)
   $cur_time3 = 86400+$cur_time3
END_IF

WHILE(1)
   $cur_time = ($_time_h*60*60)+($_time_m*60)+$_time_s
   IF($cur_time = $cur_time3)
      LCLICK(10,10) // Клик
      WAIT(2)
   END_IF
   WAITMS(300)
END_CYC

Makkvun

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Вычисление времени
« Reply #2 on: August 28, 2017, 06:06:49 PM »
к сожалению простой командой здесь ни как не обойтись, трезво оценивайте задачу.
вам нужны окна ввода времени при старте,
нужны вычисления получаемого времени,
нужно условие отслеживающие наступление данного времени.
нужно предварительное согласование времени вашего компа с сайтом где будет производиться клик иначе в секунды не попадёте.
всё решаемо, но не простенькой командой, а полноценным скриптом.
к тому же подозреваю, что ваша задача практическая, но криво описанная. Если первое или второе время текущее, то его можно не вводить, а получить автоматически.
что делать если при вычислениях время будет отрицательным?

Вы верно поняли, но я не мог позволить себе просить такое.
В идеале  хотелось бы видеть это:
Внешний вид:
-место для ввода N и F времени (F всегда меньше N);
-место для ввода координаты клика;
-место для указания сайта для синхронизации реального времени (это не важно т.к. можно и с виндой, но для идеала);
-место указания задержки для пуска (в милисекундах);
-кнопка пуск и желательно рядом окно обратного  отсчета(ниже объясню);
-кнопка стоп.


Задача скрипта:
1.N-F=D
2.Выполнить клик во время D

*время обратного отсчета считать как разница между временем D и реальным сенхранезированым временем

Oraven написал код как я и просил и это соотносимо  с тем что я написал в этой сообщении.



Makkvun

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Вычисление времени
« Reply #3 on: August 28, 2017, 06:09:04 PM »
Code: (clickermann) [Select]
// Время N
$th1 = 10 // Час
$tm1 = 0 // Минута
$ts1 = 0 // Секунда

// время F
$th2 = 5 // Час
$tm2 = 0 // Минута
$ts2 = 0 // Секунда

$cur_time1 = ($th1*60*60)+($tm1*60)+$ts1
$cur_time2 = ($th2*60*60)+($tm2*60)+$ts2
$cur_time3 = $cur_time1-$cur_time2 // время D

IF($cur_time3 < 0)
   $cur_time3 = 86400+$cur_time3
END_IF

WHILE(1)
   $cur_time = ($_time_h*60*60)+($_time_m*60)+$_time_s
   IF($cur_time = $cur_time3)
      LCLICK(10,10) // Клик
      WAIT(2)
   END_IF
   WAITMS(300)
END_CYC

Oraven, спасибо!
Вы гений!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вычисление времени
« Reply #4 on: August 29, 2017, 02:30:52 PM »
Кликер не поддерживает GUI поэтому никакой собственный интерфейс в нем не возможен.

Написал на AutoIt программку.


Координата устанавливается зажатием курсора на кнопки X и перемещением его в нужное место.
Синхронизация с NTP сервером происходит за 10 минут до клика. Если при проверке сервера выскакивает ошибка, значит нужно настроить файервол.
Настройки сохраняются в файл.
В архиве есть исходный код.

Интересно что это за время N и F и для чего это нужно?

Автоматизатор

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Вычисление времени
« Reply #5 on: August 29, 2017, 09:21:25 PM »
моё мнение. Модераторам  должно быть стыдно так открыто пропагандировать здесь  конкурирующий AutoIt.
Нельзя злоупотреблять доверием автора Clickermann, число новых пользователей и так постоянно падает.
Может люди, освоив кликер, растут дальше? Языки программирования, джава, делфи, си плюс.

Makkvun

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Вычисление времени
« Reply #6 on: August 30, 2017, 01:49:55 AM »
Кликер не поддерживает GUI поэтому никакой собственный интерфейс в нем не возможен.

Написал на AutoIt программку.


Координата устанавливается зажатием курсора на кнопки X и перемещением его в нужное место.
Синхронизация с NTP сервером происходит за 10 минут до клика. Если при проверке сервера выскакивает ошибка, значит нужно настроить файервол.
Настройки сохраняются в файл.
В архиве есть исходный код.

Интересно что это за время N и F и для чего это нужно?
Вот задача которую я хотел выполнить:
Есть войско А и В
Отправив войска А на деревню получим их время прихода N(ч.м.с.)
Скорость войск А<В (А войска дольше идут)
Время хода войска В=F(ч.м.с.)
Надо найти N-F для того чтобы найти время отправки войск B, а это надо для прихода обеих войск  в одну секунду и в промежуток миллисекунд


Oraven, добавьте пожалуйста место для указания задержки в миллисекундах.
Oraven, благодарю за ваш труд.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вычисление времени
« Reply #7 on: August 30, 2017, 03:54:14 PM »
Какие миллисекунды в такой игре? Это же не шутер, где задержки целенаправленно минимизируют и введены механизмы коррекции.
Пока клиент среагирует (не дай бог это ещё и flash, тогда совсем грустно)... Пока отправится запрос на сервер... Пока сервер обработает в порядке очереди... ms и не пахнет.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вычисление времени
« Reply #8 on: August 30, 2017, 04:07:07 PM »
моё мнение. Модераторам  должно быть стыдно так открыто пропагандировать здесь  конкурирующий AutoIt.

Ты частично прав. Но AutoIt не конкурент Clickermann-у. Точнее наоборот :o
Сори, не конкурент в плане сложности освоения.
Вот прямо указана программа и выложен даже её код, что в ней понятно для Makkvun? Он может сразу перепрыгнуть на AutoIt и там продолжать свой проект? Или хотя-бы изменить и дополнить тот код?  Очень сомневаюсь. Он и на кликере не все вопросы может решить.
А тем кто может, и сами всё найдут. Им для этого не помешает блокада упоминания AutoIt на этом сайте.

Вот если бы программы были равноценные в плане сложности освоения и возможностей, вот тогда бы была конкуренция прямая. Может в этом случае и стоило бы осторожничать.

Нельзя злоупотреблять доверием автора Clickermann, число новых пользователей и так постоянно падает.
По моему мнению оно падает по другой причине. Долгое отсутствие правок багов которые мешают жить. Не желание заниматься проектом и вносить доп. функционал. Создаётся ощущение что CM заброшен. Это очень печально, но от нас не зависит.

P.S. В твоём лице умирает ценный модератор  ;D А я говорил...


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вычисление времени
« Reply #9 on: August 31, 2017, 10:13:12 AM »
Не понял куда эту задержку в ms вставлять то? Перед кликом что ли? Там вообще в данном примере идет анализ времени раз в 100 мс. Но это легко исправить добавив условие.

Улучшил точность срабатывания.
Добавил задержку перед кликом.  То есть если написать 500 то клик произойдет через полсекунды после назначенного времени.

Кстати нужно ли останавливаться после этого клика? Сейчас выполнение продолжается, следующий клик будет через сутки.
« Last Edit: August 31, 2017, 11:11:31 AM by Oraven »