1 (изменено: kna1703, 2015-07-24 18:51:35)

Тема: Возможные проблемы составления кода, прошу указать на ошибки

------------! Отредактировал пост под актуальную тему !------------


Здравствуйте!

Не так давно ознакомился с программой "AutoHotKey", до этого пользовался аналогом сего чуда (сейчас так же использую в синергии с 1-ой программой), но там не нашёл нужного мне функционала, а точнее варианты макроса с "умной" задержкой.

+ Пример схемы в почти аналогичной программе":

1) Добавил в профиль возможность по "колёсику мыши" нажимать комбинацию клавиш:
Кнопка "E" + "Левый клик мыши" + "Задержка 1850 мс" + кнопка "E" (Для использования в игре)

2) В том же профиле по нажатию кнопки "A":
Кнопка "A" + "Левый клик мыши" (Для использования в игре)

Тем самым, когда идёт черёд "Задержка 1850 мс" в 1-ом варианте, 2-ой вариант не срабатывает по нажатию кнопки "А", пока не доделывается 1-ый вариант.

Тем самым, пришёл к программе "AutoHotKey" и набросал простой код:

WheelDown::
Send {vk45}
Send {vk01}
Sleep, 1850
Send {vk45}
return

vk60:: Suspend 

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

(Под этими словами, я имею ввиду то, что код срабатывает с небольшой задержкой и это очень хорошо видно в игре, когда видна область наведения способности перед использованием.
В другой программе всё срабатывает моментально и не видно прорех в скорости использовании).

2

Re: Возможные проблемы составления кода, прошу указать на ошибки

Объясните в чем состоит задача? Что Вы хотите добиться.

3

Re: Возможные проблемы составления кода, прошу указать на ошибки

У тебя пробел.

vk60:: Suspend 

А мне помнится нужен Return

+vk45::
Send {vk33}
Send {vk45}
Send {vk01}
Sleep, 1000
Send {vk45}
return

vk60::Suspend
return

Могу ошибаться.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

4

Re: Возможные проблемы составления кода, прошу указать на ошибки

У меня не срабатывает последнее условие, после задержки, если только не нажимать комбинацию "Shift + E" несколько раз.
В приоритете нужно нажимать один раз.

Можно уточнить, а код замысловатый у вас.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

5 (изменено: kna1703, 2015-07-24 05:11:21)

Re: Возможные проблемы составления кода, прошу указать на ошибки

Доктор ТуамОсес пишет:

Объясните в чем состоит задача? Что Вы хотите добиться.

У меня в профиле аналогичной программы ещё очень много макросов, но задержка в этой утилите работает так, как мне неудобно.
Пришёл к выводу, что мне в дополнении нужна программа AutoHotKey, и написал отдельный код, где мне нужна задержка.

Вопросы:
1) Насколько правильно я написал код (Быстро ли будет исполняться)  - В 1-ом варианте.
2) Почему во 2-ом, указанным мной коде, не работает последнее условие после задержки, а точнее:

Send {vk45}

Indomito пишет:

У тебя пробел.

vk60:: Suspend 

Работает корректно (использую для паузы скрипта).

6 (изменено: Alectric, 2015-07-23 20:39:09)

Re: Возможные проблемы составления кода, прошу указать на ошибки

Наверное нужно это:

SetBatchLines,-1
SetKeyDelay,1
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

7 (изменено: kna1703, 2015-07-23 20:41:52)

Re: Возможные проблемы составления кода, прошу указать на ошибки

Alectric пишет:

Наверное нужно это:

SetBatchLines,-1
SetKeyDelay,1

Как это вставить и для чего нужно?

8

Re: Возможные проблемы составления кода, прошу указать на ошибки

Еще, возможно, нужно разделить нажатие и отпускание клавиш:

Send {vk45 down}
sleep,1
Send {vk45 up}
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

9

Re: Возможные проблемы составления кода, прошу указать на ошибки

SetBatchLines на русском не нашел.
SetKeyDelay.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

10 (изменено: kna1703, 2015-07-23 21:45:24)

Re: Возможные проблемы составления кода, прошу указать на ошибки

Indomito пишет:

У меня не срабатывает последнее условие, после задержки, если только не нажимать комбинацию "Shift + E" несколько раз.
В приоритете нужно нажимать один раз.

Можно уточнить, а код замысловатый у вас.

Уточняю в коде:

+vk45::
Send {vk33}     ; абилка 1
Send {vk45}     ; абилка 2
Send {vk01}     ; Клик мыши
Sleep, 1000     ; Задержка
Send {vk45}     ; Повтор абилки 2, после КД (Вот именно здесь ничего не происходит, если нажать один раз на комбинацию, при многократном нажатии - работает).
return

vk60:: Suspend  ; Пауза скрипта

1-ый код особо не отличается от 2-ого, но он полностью работает в отличии от другого.

11 (изменено: kna1703, 2015-07-24 05:02:33)

Re: Возможные проблемы составления кода, прошу указать на ошибки

Всё не могу разобраться, почему 2-ой код неправильно работает. хотя в текстовике он все условия исполняет корректно, а в игре нет.

Приходится прожимать больше одного раза, что не удобно.

----------------UPD.--------------------------

Спасибо за помощь!
Как всегда это и бывает, ошибка была в моей невнимательности.
Со 2-ым кодом разобрался.

А сама суть:

+vk45::
Send {vk33}
Send {vk45}
Send {vk01}
Sleep, 1000
Send {vk45}
Send {vk01}     ; Забыл добавить клик мыши...
return

vk60:: Suspend

---------------------------------------------------------------------------


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