Вопросы по AHK-скриптингу

Vasilia

Новичок
6
1
Вопрос, как сделать ожидание закрытия диалогового окна? Допустим, у меня идёт бинд и посреди бинда вылезает диалоговое окно, когда это окно вылазит, то скрипт ожидает его закрытия, как такое сделать напомните.
 

degrando

Известный
362
127
Вопрос, как сделать ожидание закрытия диалогового окна? Допустим, у меня идёт бинд и посреди бинда вылезает диалоговое окно, когда это окно вылазит, то скрипт ожидает его закрытия, как такое сделать напомните.
AutoHotKey:
start:
if(isDialogOpen() = 1){
goto start
}
else {
;код
}
 
  • Нравится
Реакции: Vasilia

meowprd

Тот самый Котовский
Проверенный
1,280
712
Вопрос, как сделать ожидание закрытия диалогового окна? Допустим, у меня идёт бинд и посреди бинда вылезает диалоговое окно, когда это окно вылазит, то скрипт ожидает его закрытия, как такое сделать напомните.
Вот тебе пример еще одной реализации, часть функции из моего outdated скрипта
Соответственно можно использовать не метки, а обычный while.
Решение твоего вопроса тут в строках 456 и 457

1601826319306.png
 
  • Нравится
Реакции: Vasilia

solo3ix

Потрачен
46
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ку парни, хотел сделать скриптик который при нажатии 1 менял оружие в руке на дигл, не подскажите как сделать чтобы при смене оружия перс не прыгал

AutoHotKey:
#IfWinActive GTA:SA:MP
#SingleInstance Force
#NoEnv
#include SAMP.ahk

1::
{
if (isInChat()=0)
{
  if not (getPlayerWeaponId()=24)
   {
    Loop
     {  
      Send {WheelUP}
     } until getPlayerWeaponId()=24
   }
}
return
}
 
  • Нравится
Реакции: salyamiolegam

SCHWEITZER

Известный
104
71
Вот тебе пример еще одной реализации, часть функции из моего outdated скрипта
Соответственно можно использовать не метки, а обычный while.
Решение твоего вопроса тут в строках 456 и 457

Посмотреть вложение 70661
в while скобку потерял
да, сурсы функций скидывать не надо, они же в голове у всех есть =)
 

Vasilia

Новичок
6
1
Вопросик, допустим мне надо прямо в игре поменять какое-то значение в ini или txt файле, но через диалоговое окно в игре.
Как это сделать?
Что я имею ввиду: Я нажимаю на T и у меня выводится слово "Привет".
Настройка:
Я нажимаю на клавишу "I" и у меня вылазит диалоговое окно, в этом диалоговом окне нужно изменить текст, допустим с "Привет" (который уже записан в текстовом документе) на "Пока" (Делает перезапись слова).
Результат:
Когда я нажимаю T, то выводится текст "Пока" вместо "Привет".
Надеюсь более имение понятно))
 

meowprd

Тот самый Котовский
Проверенный
1,280
712
в while скобку потерял
да, сурсы функций скидывать не надо, они же в голове у всех есть =)
Нигде скобку не терял, это ласт версия скрипта, пока я не забил на него болт =)
сурс приложил просто для наглядности использования, чтобы чел понимал как работать дальше после while
ку парни, хотел сделать скриптик который при нажатии 1 менял оружие в руке на дигл, не подскажите как сделать чтобы при смене оружия перс не прыгал

AutoHotKey:
#IfWinActive GTA:SA:MP
#SingleInstance Force
#NoEnv
#include SAMP.ahk

~1::
{
if (isInChat()=0)
{
  if not (getPlayerWeaponId()=24)
   {
    Loop
     {
      Send {WheelUP}
     } until getPlayerWeaponId()=24
   }
}
return
}
govnocode:
#IfWinActive GTA:SA:MP
#SingleInstance force
#NoEnv
#include SAMP.AHK

1::
if(IsInChat() = 1 or isDialogOpen() = 1)
    Return
while(getPlayerWeaponId() != 24){
    Send, {WheelUp}
    sleep 10
}
addchatmessage("В руке дигл.")
return

F2::
Reload
return

Не понимаю почему форум BH не показывает то, что в коде есть тильда:
1602230147772.png

Она нужна чтобы единица все равно отправлялась в игру
Кароче говоря, чтобы ты мог писать цифру 1 в диалогах и в чате. Если ее не будет - то скрипт не будет посылать нажатие этой клавиши в игру.
Вопросик, допустим мне надо прямо в игре поменять какое-то значение в ini или txt файле, но через диалоговое окно в игре.
Как это сделать?
Что я имею ввиду: Я нажимаю на T и у меня выводится слово "Привет".
Настройка:
Я нажимаю на клавишу "I" и у меня вылазит диалоговое окно, в этом диалоговом окне нужно изменить текст, допустим с "Привет" (который уже записан в текстовом документе) на "Пока" (Делает перезапись слова).
Результат:
Когда я нажимаю T, то выводится текст "Пока" вместо "Привет".
Надеюсь более имение понятно))

Все очень просто:
AutoHotKey:
NumPad1::
showDialog(DIALOG_STYLE_INPUT, "Название диалога", "Текст внутри диалога", "1", "2", 1597)
sleep 10
while(getdialogid() = 1597) and (isDialogOpen())
    Continue
if(GetKeyState("Esc"))
    return
result := readString(hGta, dwSAMP + 0x12D8F8, 256)
addchatmessage("result = " result)
return

где result = то значение, которое ввели в диалог
как только получили результат, то делаем:
AutoHotKey:
FileDelete, yourfile.txt
FileAppend, %result%, yourfile.txt

Ну и как я понял выводить ты уже умеешь.
 
Последнее редактирование:
  • Влюблен
Реакции: solo3ix

timurqa222

Новичок
5
0
у меня не читается udf , стоит ansi 32, удф находится в одной папке
1602298881526.png
путь указал правильно, что не так,?
 

meowprd

Тот самый Котовский
Проверенный
1,280
712

bannenado

Новичок
4
0
Всем qq! Короче, у меня такая проблема, проект crmp с собственным лаунчером каким-то образом определяет что нажатия клавиш идет именно от ahk и блокирует их, либо вообще банит вас, но не суть. Мне нужно как-то обойти эту хуйню, чтобы нажатия были типо человеческих. Заранее спасибо за ответ)
 

sep

Известный
673
76
гта 5 вместо вода текста нажимаются клавишы k k k
AutoHotKey:
Numpad1::
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6} л л л{Enter}
Return
 

meowprd

Тот самый Котовский
Проверенный
1,280
712
Всем qq! Короче, у меня такая проблема, проект crmp с собственным лаунчером каким-то образом определяет что нажатия клавиш идет именно от ahk и блокирует их, либо вообще банит вас, но не суть. Мне нужно как-то обойти эту хуйню, чтобы нажатия были типо человеческих. Заранее спасибо за ответ)

Юзай SendInput обычный, но сделай задержки нажатия
Что-то типо:
AutoHotKey:
SendInput, {F6 down}
sleep 400
SendInput, {F6 up}

ну или setkeydelay, чтобы не париться со слипами
 

666lamb_of_god666

Новичок
3
0
Приветствую, мне нужен скрипт AHK/lua/cleo для автоматической покупки в окне. Тобишь /donate, выбор второй строки, выбор третьей строки (всё со списка). И так бесконечно, пока не выключишь