Автор Тема: задержка после нажатий  (Прочитано 732 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Золотой

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

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

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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3103
  • Лечу куда хочу. cman 4.11.003, xp32
    • Просмотр профиля
Re: задержка после нажатий
« Ответ #1 : Октябрь 16, 2016, 09:38:55 pm »
а лучше не в настройках... точнее, по умолчанию 0. Но можно задать в начале скрипта значения по умолчанию для скрипта.
Типа:
# lklickpostwait(150)
# keydownpostwait(70)
Ну или покороче/понятней  ;)


Cleoss

  • Активный участник
  • ***
  • Сообщений: 248
  • Автоматизируй это!
    • Просмотр профиля
Re: задержка после нажатий
« Ответ #2 : Ноябрь 06, 2016, 07:34:17 pm »
Согласен, делей -- это один из значимых параметров клика (странно, что задержка часто ещё приходится передавать лишней командой). Да и имхо команду можно видоизменить с внесением нового параметра, сохраняя при этом обратную совместимость со старыми интерпретаторами Клмна, которые будут считывать только первые два параметра и игнорировать последний, третий лишний. А можно и сделать, как предлагает Винт, дополнительную команду, которая будет задавать задержку либо на весь скрипт, либо же до нового указания/переназначения.

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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3103
  • Лечу куда хочу. cman 4.11.003, xp32
    • Просмотр профиля
Re: задержка после нажатий
« Ответ #3 : Ноябрь 07, 2016, 10:51:11 am »
Просто не так давно видел в каком-то другом кликере команду вида lup 230 450 0.5 ...
оспорьте))
Оспариваю.

Когда вместо
LUP 230 450 0.5
будет не рафинированная команда с параметрами-числами, а вида
Код: Clickermann
  1. LUP(INT($f_x1/2), ROUND($mobY / $izo, 0), 0.5)

всё становится не настолько радужно
LUP INT $f_x1/2 ROUND $mobY / $izo 0 0.5
А написание кода это больше его чтение, чем сама запись. А читать становится, мягко говоря, трудно.
Вот глядя на последнюю строку кто может быстро сказать что там к чему относится? Что такое "0" и что такое "0.5"? И где заканчивается параметр X для LUP и начинается Y?

Ещё примеров. Вот просто надёргал строк из реальных скриптов. Переводить в "новый" вид даже не буду, сами справитесь.
Код: Clickermann
  1. FOR($i=($num+1), $i < $len_dist, 2)
  2.  
  3. LCLICK($tx+RND(-2,3), $ty+RND(-2,3))
  4. LOGWRITE("monstr ", ARRSIZE($mob)/2)
  5.  
  6. COLORMODE($c_mode, $f_x1,$f_y1,$f_x2,$f_y2)
  7. SCANPXL($mob_mk, $mk_x1,$mk_y1,$mk_x2,$mk_y2, 2928382)
  8.  
  9. SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref, $i123, ".bmp"), -1, $pr)
  10.  
  11. $dist[$i] = DIST($px, $py + ROUND((($mobY-$py) / $izo), 0), $mobX, $mobY)
  12.  
  13. $log = STRCUT2($akkaunt, 1, STRPOS($akkaunt,":")-1)
  14. $pass = STRCUT2($akkaunt, STRPOS($akkaunt,":")+1, 999)


Cleoss

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

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

Ещё примеров. Вот просто надёргал строк из реальных скриптов. Переводить в "новый" вид даже не буду, сами справитесь.
Код: Clickermann
  1. FOR ( $i = ( $num + 1 ), $i < $len_dist, 2)
  2. FOR $i=$num+1, $i<$len_dist 2
  3.  
  4. LCLICK($tx+RND(-2,3), $ty+RND(-2,3))
  5. LCLICK $tx+RND -2 3 $ty+RND -2 3
  6.  
  7. LOGWRITE("monstr ", ARRSIZE($mob)/2)
  8. LOGWRITE monstr ARRSIZE $mob/2
  9.  
  10. COLORMODE($c_mode, $f_x1,$f_y1,$f_x2,$f_y2)
  11. COLORMODE $c_mode $f_x1 $f_y1 $f_x2 $f_y2
  12.  
  13. SCANPXL($mob_mk, $mk_x1,$mk_y1,$mk_x2,$mk_y2, 2928382)
  14. SCANPXL $mob_mk $mk_x1 $mk_y1 $mk_x2 $mk_y2 2928382
  15.  
  16. SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref, $i123, ".bmp"), -1, $pr)
  17. SCANPICTURE $a_scan $f_x1 $f_y1 $f_x2 $f_y2 STRCONCAT $pref $i123 .bmp -1 $pr)
  18.  
  19. $dist[$i] = DIST($px, $py + ROUND((($mobY-$py) / $izo), 0), $mobX, $mobY)
  20. $dist$i=DIST $px $py + ROUND($mobY-$py)/$izo 0 $mobX $mobY
  21.  
  22. $log = STRCUT2($akkaunt, 1, STRPOS($akkaunt,":")-1)
  23. $log=STRCUT2 $akkaunt, 1, STRPOS($akkaunt :)-1
  24.  
  25. $pass = STRCUT2($akkaunt, STRPOS($akkaunt,":")+1, 999)
  26. $pass=STRCUT2 $akkaunt STRPOS($akkaunt :)+1 999
  27. $pass STRCUT2 $akkaunt STRPOS $akkaunt : +1 999
Не, ну кроме шуток, я бы должен был попробовать?!  ::)
Не все строки стали окей после удаления пунктуации, да и не везде получилось это сделать. Не везде после этого сохранилась читаемость кода, но в половине случаев такая запись вполне допустима/читабельна (при наличии привычки). Кроме того, она сокращает количество печатаемых символов как минимум на 10 процентов, и уменьшает не видимое сейчас, после печати количество нажатий Шифтов, а пробел вслепую нажимается намного легче, чем многие другие клавиши. Да и далеко не все функции настолько заморочены, а лишь часть их. Любой здравомыслящий человек понимает, что Клмну всё равно не светит подобный функционал в виде ещё большей гибкости и свободы кода, особенно в ближайшее время.

kiril

  • Герой форума
  • *****
  • Сообщений: 1027
    • Просмотр профиля
Re: задержка после нажатий
« Ответ #5 : Июль 08, 2018, 10:02:12 am »
 Эх и эту тему похерели, мля!
Предлагаю, ко всем командам мыши и клавиатуры ввести  два необязательных параметра [post1], [post2] , так как задержка после любых нажатий нужна обязательно.

В результате получим Команды вида .

 LCLICK(10,10)               - клик без задержек
 LCLICK(10,10,500)        - клик с задержкой в мс.
 LCLICK(10,10,500,800) - клик с рандомной задержкой от 500 до 800 мс.
« Последнее редактирование: Июль 17, 2018, 11:04:44 am от kiril »