1

Тема: AHK: Объединение нескольких действий в одно

Здравствуйте, судари и сударыни! Возник трабл, т.к. в AHK я полный нуль, но реализовать данную фичу хотелось бы. Попытался написать небольшой скрипт - нужно, чтобы при зажатии кнопки выполнялся цикл определённых действий.
Вот пример моего творения:

#IfWinActive ahk_class Diablo II
 
F12::suspend,toggle

vk45::

send B                    ; тут по идее идёт смена оружия

KeyWait, %A_vk45%, U     ; здесь должна идти проверка зажатия кнопки (если зажата, то действие ниже, если отжата, то идёт обратная смена)
If ErrorLevel = 0
send B

Else                       ; а здесь ,грубо говоря, производится каст 
{
KeyWait, %A_vk45%, U
send C
}
while GetKeyState("vk45","P")
{
Click right
}
send D
return 

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

Другой скрипт работает как надо:

#IfWinActive ahk_class Diablo II
 
F12::suspend,toggle              
 
Q::                        
send v                           
while GetKeyState("Q","P")
{
Click right
sleep 25
}
send d 

А вот ещё добавить действие что-то не получается, поэтому прошу совета у знающих людей.
Спасибо за уделённое время и надеюсь, на вашу помощь.

2

Re: AHK: Объединение нескольких действий в одно

The6r3atRQ пишет:

KeyWait, %A_vk45%, U

A_vk45?
И Return потеряли. Также учтите, что работающий цикл может быть только один на скрипт - последний запущенный, предыдущий цикл морозится до конца работы нового.