1 (изменено: JacksonZ, 2019-08-20 05:30:55)

Тема: AHK: Странное исполнение скрипта

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

vk2d:: 
send, {f6}/do Из динамика радиостанции слышен женский голос с помехами{enter}
sleep 4000sendplay
send, {f6}/do 3-4-9, вас ждут, как обычно по адресу Магистральное шоссе 12, не опаздывайте{enter}
return

а именно, во время запуска в игре может произойти рандомное написание параметра "/do", в некоторых случаях знак "/" игнорируется и соответственно результат совершенно другой получается. Что этому способствует?

2

Re: AHK: Странное исполнение скрипта

Этому способствует нажатия пользователя во время работы команды. Вопреки всем упоминаниям в справке, все команды этого семейства (по крайней мере у меня) оказывались чувствительными к нажатиям. Ну, то есть, вроде бы скрипт и буферизировал все, но 1-2 клавиши пропускал. Кроме того, падение производительности системы так же может способствовать подобным проблемам. Я советую использовать sendinput - он надежнее и быстрее. А лучше всего использовать samp-udf с его функцией sendchat - эта команда никогда меня не подводила.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3 (изменено: JacksonZ, 2019-08-20 15:44:53)

Re: AHK: Странное исполнение скрипта

belyankin12, благодарю за помощь, с помощью sendinput вопрос с недостающими символами решился, но теперь у меня опять вопрос возник, и не могу вообще проследить логику работы скрипта, казалось бы, обычный код:

vk2D::
sendinput {F6}Проверка{ENTER}
Return

Нажми F6, напиши "Привет", далее клавиша Enter. Но у меня в игре происходит следующее, при активации скрипта появляется строка для ввода чата, пустая, обычная имитация команды F6, без остальных заданных мной параметров. При повторном запуске скрипта горячей клавишей, идет 100% выполнение задачи ( моё "Привет" летит в чат и отправляется), но строка для ввода так и висит.
Надеюсь понятно написал, в итоге, для того что-бы мне сделать задуманное, мне нужно нажать кнопку insert, нажать ещё раз кнопку insert, ну и в завершение нажать кнопку Escape.
Если что, игра МТА: San Andreas, пробовал samp-udf с его функцией sendchat, но тут либо не работает в МТА, либо знаний у меня ноль, ибо простенькое "привет" у меня не получилось отправить в чат, даже после просмотра гайда.

4

Re: AHK: Странное исполнение скрипта

Ааа... Дело идёт про МТА. Тогда UDF тут не поможет. Единственное что могу посоветовать - это убедиться в том, что интерпретатор для скриптов по умолчанию установлен с кодировкой ANSI 32 bit. Много болезней возникало от юникодовского интерпретатора. А так, в МТА не разбираюсь, там вроде бы и защиту какую-то делали, потому ничего дельного сказать не смогу.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

5 (изменено: Humphrey, 2019-08-21 05:06:31)

Re: AHK: Странное исполнение скрипта

JacksonZ, проблема в том, что окно ввода еще не открылось, а скрипт уже начал писать. Из-за этого теряется часть строки.
Используйте SetKeyDelay. Например, SetKeyDelay, 30, 30 должен решить проблему (значения задержки примерные, подбирайте сами. Меньше- больше шанс проглотить букву).
Если скорость ввода критична- используйте последовательность {F6} > задержка > ввод текста на макс. скорости {Enter}