Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - intro

Pages: [1] 2
1
Вот такая хреновина получилась. ;D
Большие числа не мешают, только INT иногда почему то приписывает к этим числам дробную часть (как и ROUND), но это ни на что не влияет.
Устанавливать время отключения в этом таймере не удобно, нужно соблюдать формат. Для удобства вставил разделители " :.", но все равно можно легко ошибиться. Зато можно установить любое время, с точностью до секунды.

Code: (clickermann) [Select]
DEFINE($stop_time, "2021.02.19 02:00:00") // время отключения кликера (год.месяц.число часы:минуты:секунды)

WAIT(1) // основной скрипт

IF(INT(STRCONCAT($_date_y, STRCONCAT(STRCUT("00", 1, 2-STRLEN($_date_m)), $_date_m), STRCONCAT(STRCUT("00", 1, 2-STRLEN($_date_d)), $_date_d), STRCONCAT(STRCUT("00", 1, 2-STRLEN($_time_h)), $_time_h), STRCONCAT(STRCUT("00", 1, 2-STRLEN($_time_m)), $_time_m), STRCONCAT(STRCUT("00", 1, 2-STRLEN($_time_s)), $_time_s))) >= INT(STRFILTER($stop_time, " :.", 0)))
   HALT(1) // стоп и закрыть кликер
END_IF

Что то мне кажется, что зря я вчера забраковал свой вариант со смещением времени, он интересней и я его просто не дожал. В том варианте таймер устанавливается на 24 часа максимум, что обычно и требуется.

2

Круто конечно. Мне такое даже осмыслить пока будет трудно. Но попробую в этом разобраться, пригодится.
С временем юникс тоже вчера пробовал экспериментировать, но потом отказался. Мне показалось, что я слишком углубился и полез в дебри, и что всё должно быть гораздо проще. Закончил свои вчерашние опыты на сравнении вот таких строк.

Code: (clickermann) [Select]
LOGWRITE (STRFILTER(STRCONCAT($_date_str, $_time_str), ":.", 0)) // 17022021162947
В таком сравнении >= тоже будет работать. Кажется, что надо то всего дождаться когда такая строка совпадет с указанным временем остановки скрипта. Само время остановки можно собрать в строку из отдельных элементов $_date_y, $_date_m, $_time_m,... Лишние разряды, такие как секунды, можно отбросить сразу, или динамически, или на основании настроек. Мне кажется это перспективным. Будет время, продолжу. Может и у меня получится сделать универсальный таймер. :)

3
Основная ошибка это знак >=. Представь, что мне нужно выключить скрипт в 12 ночи. В таком условии кликер сразу вырубится, и не важно сколько времени. Правильный знак в условии должен быть = .

Спасибо за подсказку, мне с этими знаками >= сразу понятно было, хотелось как то обойти ограничение на 1 час работы скрипта. Мой утренний скрипт с такой же проблемой, не работает если цифра времени старта больше цифры времени отключения скрипта. Идея со смещением времени не оправдалась. Свой неправильный пост выше удаляю.
Сейчас еще поковырял немного и бросил, даже если что-то и получится, то этот скрипт будет больше основного. В итоге, исправляю >= на = и заканчиваю "помогать". ;D

Ничего лучше этого у меня пока не получилось:
Code: (clickermann) [Select]
//-------------------------
WAIT(1) // основной скрипт
//-------------------------

IF($_time_h = 2) // если время 2 часа ночи
   HALT(1) // стоп и закрыть кликер
END_IF

Code: (clickermann) [Select]
THREAD(name, 1)
   IF($_time_h = 2) // если время 2 часа ночи
      HALT(1) // стоп и закрыть кликер
   END_IF
   WAIT(5)
END_THREAD

4
В меню Команды есть раздел Системные переменные, там есть нужные команды.
В самом конце скрипта нужно вставить такую проверку времени.
Code: (clickermann) [Select]
IF($_time_h >= 2) // если время 2 часа ночи, или больше
   HALT(1) // стоп и закрыть кликер
END_IF

5
Прости друг, я спать. Всеравно у меня больше идей нету пока. Если что придумаю то завтра напишу.

6
Можно сделать тогда новую картинку. Сначала сделать SCREENSHOTEX. И из него вырезать. Она должна отличаться от ff.bmp теоретически.
Code: (clickermann) [Select]
WAITMS(500)
RCLICK(1271,326)
WAITMS(500)
LCLICK(1125,731)
WAITMS(500)

GETSCREEN

SCREENSHOTEX(1445,1296, 1496,1305, "Image_", 0)
HALT

7
Не наоборот сначала убирать курсор, потом паузу.
Code: (clickermann) [Select]
MOVE(0,0)
WAIT(1)

8
Тогда перед GETSCREEN сделать паузу и убирать курсор надо куда нибудь
Code: (clickermann) [Select]
WAIT(1)
MOVE(0,0)

9
А в лог что пишет, находит картинку?
Можно попробовать область поиска увеличить если не находит

10
Scanpicture возвращает массив. Его размер ARRSIZE равен количеству найденных картинок.
Вот, только координаты свои напиши, я код из другой темы взял для примера.
Code: (clickermann) [Select]
GETSCREEN

SCANPICTURE($ARR_SCAN, 1445,1296, 1496,1305, "file.bmp", -1, 100)

IF(ARRSIZE($ARR_SCAN) = 2)
   //  выполнить скрипт А
ELSE
   //  выполнить скрипт Б
END_IF

11
Привет, видимо скрипт просто картинку не находит. Можно вставить перед циклом вывод в лог
Code: (clickermann) [Select]
LOGWRITE ("Найдено картинок:", ARRSIZE($ARR_SCAN))если не находит, значит эти клики как то влияют на экран. Может какой ховер эффект срабатывает когда курсор над координатами кликов. Тогда курсор убирать в строну надо перед GETSCREEN. Или может паузу перед циклом увеличить попробовать?

12
Axelenz спасибо за помощь и интересный вариант.
Я просто думал что обсуждение темы закончилось. Вот и не заходил.
К сожалению у меня это не работает. Скрипт бесконечно плодит окна PowerShell и всё. Никакие команды он в эти окна не пишет. Может прав не хватает или еще что. Сам с этим не разобрался. :-[

13
Огромное спасибо всем за помощь и исчерпывающие ответы. Хорошая получилась тема.
Все варианты отлично работают и будут полезны не только мне, но и другим новичкам.
Спасибо! :)

14
Вот эта команда в .bat файле выводит содержимое подкаталогов в файл a.txt
dir /a:d /s >> a.txt

Спасибо, :) как вариант тоже пригодится.

15
Пока ждал помощи здесь, разместил вопрос ешё на паре форумов. Нашелся один умелец. За готовый скрипт он запросил 500 рублей. Говорит, что "алгоритм сложный для понимания и вообще, такое мало кто сможет зделать" и что "это еще не дорого". А сам он якобы уложится в 10 строк кода, включая сортировку и HALT. Верится с трудом. Наверно ищет дурака, чтобы кинуть на бабки. В общем - тут тишина, а там просят денег. ;D
Или на самом деле всё так сложно и дорого? Мне первому чтоли взбрело в голову просканировать вложенные папки? ;D

Pages: [1] 2