Author Topic: задержка после нажатий  (Read 6748 times)

0 Members and 1 Guest are viewing this topic.

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
задержка после нажатий
« on: October 16, 2016, 05:58:30 PM »
KEYSTRING ("keystring", [delay]) - нажимает виртуальные клавиши соответственно символам строки
Параметры
keystring - строка, представляющая собой серию символов
delay - числовое значение задержки в миллисекундах между нажатиями клавиш; если параметр не указан, задержка не производится

Предлагаю, ко всем командам мыши и клавиатуры ввести необязательный параметр [post] , так как задержка после любых нажатий нужна обязательно. В результате получим Команды вида .
Code: (clickermann) [Select]
LCLICK(10,10,500) вместо
Code: (clickermann) [Select]
LCLICK(10,10)
WAITMS(500)
это позволит;
повысить читаемость, передаваемость и редактируемость кода, за счёт значительного сокращения практически обязательно парных строк, особенно при автозаписи.
Оставит работоспособными все уже написанные скрипты, за счёт необязательности параметра.
Усложнения для начинающих, из за необязательности параметра тоже не будет.
Отличное напоминание всем о необходимости задержек, после всех манипуляций мыши и клавиатуры.

Значение по умолчанию для разных команд можно сделать разным и изменяемым в файле настроек.
« Last Edit: October 16, 2016, 10:43:19 PM by Золотой »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: задержка после нажатий
« Reply #1 on: October 16, 2016, 09:38:55 PM »
а лучше не в настройках... точнее, по умолчанию 0. Но можно задать в начале скрипта значения по умолчанию для скрипта.
Типа:
# lklickpostwait(150)
# keydownpostwait(70)
Ну или покороче/понятней  ;)


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: задержка после нажатий
« Reply #2 on: November 06, 2016, 07:34:17 PM »
Согласен, делей -- это один из значимых параметров клика (странно, что задержка часто ещё приходится передавать лишней командой). Да и имхо команду можно видоизменить с внесением нового параметра, сохраняя при этом обратную совместимость со старыми интерпретаторами Клмна, которые будут считывать только первые два параметра и игнорировать последний, третий лишний. А можно и сделать, как предлагает Винт, дополнительную команду, которая будет задавать задержку либо на весь скрипт, либо же до нового указания/переназначения.

И чем короче команда, тем имхо лучше! Нафиг эти длинные (ctrl,param,default)_mouse#down! Побольше замен пробелов вместо лишних знаков и ещё больше терпимости синтаксическому анализатору!
ПС. Просто не так давно видел в каком-то другом кликере команду вида lup 230 450 0.5 и подумал, насколько это круто без мусора писать. Но конечно везде без этого "мусора" не обойдёшься, в тех же циклах/сравнениях/группировках значений, но к этому нужно стремиться. Чем быстрее и проще пользователю написать готовый рабочий код, тем лучше, оспорьте))

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: задержка после нажатий
« Reply #3 on: November 07, 2016, 10:51:11 AM »
Просто не так давно видел в каком-то другом кликере команду вида lup 230 450 0.5 ...
оспорьте))
Оспариваю.

Когда вместо
Code: [Select]
LUP 230 450 0.5
будет не рафинированная команда с параметрами-числами, а вида
Code: (clickermann) [Select]
LUP(INT($f_x1/2), ROUND($mobY / $izo, 0), 0.5)
всё становится не настолько радужно
Code: [Select]
LUP INT $f_x1/2 ROUND $mobY / $izo 0 0.5
А написание кода это больше его чтение, чем сама запись. А читать становится, мягко говоря, трудно.
Вот глядя на последнюю строку кто может быстро сказать что там к чему относится? Что такое "0" и что такое "0.5"? И где заканчивается параметр X для LUP и начинается Y?

Ещё примеров. Вот просто надёргал строк из реальных скриптов. Переводить в "новый" вид даже не буду, сами справитесь.
Code: (clickermann) [Select]
FOR($i=($num+1), $i < $len_dist, 2)

LCLICK($tx+RND(-2,3), $ty+RND(-2,3))
LOGWRITE("monstr ", ARRSIZE($mob)/2)

COLORMODE($c_mode, $f_x1,$f_y1,$f_x2,$f_y2)
SCANPXL($mob_mk, $mk_x1,$mk_y1,$mk_x2,$mk_y2, 2928382)

SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref, $i123, ".bmp"), -1, $pr)

$dist[$i] = DIST($px, $py + ROUND((($mobY-$py) / $izo), 0), $mobX, $mobY)

$log = STRCUT2($akkaunt, 1, STRPOS($akkaunt,":")-1)
$pass = STRCUT2($akkaunt, STRPOS($akkaunt,":")+1, 999)


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: задержка после нажатий
« Reply #4 on: November 23, 2016, 06:03:38 PM »
Когда вместо LUP 230 450 0.5 будет не рафинированная команда с параметрами-числами, а вида LUP(INT($f_x1/2), ROUND($mobY / $izo, 0), 0.5), всё становится не настолько радужно:
Code: [Select]
LUP INT $f_x1/2 ROUND $mobY / $izo 0 0.5
Но никто ж и не заставляет полностью отказываться от скобок, просто предлагаю вариант, как можно значительно ускорить написание обычных, простых скриптов среднестатистическим юзером, часто имеющим склонность упрощать всё. Чтоб ему стало лучшим подарком, если не быстрое прототипирование? Да и для обратной совместимости поддержку написания со запятыми/ скобками+ кавычками (с двух сторон) нужно сохранить.

А написание кода это больше его чтение, чем сама запись. А читать становится, мягко говоря, трудно.
Вот глядя на последнюю строку кто может быстро сказать что там к чему относится? Что такое "0" и что такое "0.5"? И где заканчивается параметр X для LUP и начинается Y?
Не спорю, скобки в таких примерах с выражениями хорошо отражают логические связи между операндами, но с другой стороны чтение таких нотаций это тоже своеобразная привычка, которую можно переучить коль игра стоит свеч. Да и читаем эти строки мы лишь пару раз, пока пишем их/ редактируем, в течение минуты-другой, а потом переходим к редактированию других, более простых строк.

Ещё примеров. Вот просто надёргал строк из реальных скриптов. Переводить в "новый" вид даже не буду, сами справитесь.
Code: (clickermann) [Select]
FOR ( $i = ( $num + 1 ), $i < $len_dist, 2)
FOR $i=$num+1, $i<$len_dist 2

LCLICK($tx+RND(-2,3), $ty+RND(-2,3))
LCLICK $tx+RND -2 3 $ty+RND -2 3

LOGWRITE("monstr ", ARRSIZE($mob)/2)
LOGWRITE monstr ARRSIZE $mob/2

COLORMODE($c_mode, $f_x1,$f_y1,$f_x2,$f_y2)
COLORMODE $c_mode $f_x1 $f_y1 $f_x2 $f_y2

SCANPXL($mob_mk, $mk_x1,$mk_y1,$mk_x2,$mk_y2, 2928382)
SCANPXL $mob_mk $mk_x1 $mk_y1 $mk_x2 $mk_y2 2928382

SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref, $i123, ".bmp"), -1, $pr)
SCANPICTURE $a_scan $f_x1 $f_y1 $f_x2 $f_y2 STRCONCAT $pref $i123 .bmp -1 $pr)

$dist[$i] = DIST($px, $py + ROUND((($mobY-$py) / $izo), 0), $mobX, $mobY)
$dist$i=DIST $px $py + ROUND($mobY-$py)/$izo 0 $mobX $mobY

$log = STRCUT2($akkaunt, 1, STRPOS($akkaunt,":")-1)
$log=STRCUT2 $akkaunt, 1, STRPOS($akkaunt :)-1

$pass = STRCUT2($akkaunt, STRPOS($akkaunt,":")+1, 999)
$pass=STRCUT2 $akkaunt STRPOS($akkaunt :)+1 999
$pass STRCUT2 $akkaunt STRPOS $akkaunt : +1 999
Не, ну кроме шуток, я бы должен был попробовать?!  ::)
Не все строки стали окей после удаления пунктуации, да и не везде получилось это сделать. Не везде после этого сохранилась читаемость кода, но в половине случаев такая запись вполне допустима/читабельна (при наличии привычки). Кроме того, она сокращает количество печатаемых символов как минимум на 10 процентов, и уменьшает не видимое сейчас, после печати количество нажатий Шифтов, а пробел вслепую нажимается намного легче, чем многие другие клавиши. Да и далеко не все функции настолько заморочены, а лишь часть их. Любой здравомыслящий человек понимает, что Клмну всё равно не светит подобный функционал в виде ещё большей гибкости и свободы кода, особенно в ближайшее время.

KomlevaSV

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
задержка после нажатий
« Reply #5 on: September 30, 2018, 10:29:42 PM »
Завидую тем, кто досмотрел до конца.