Тема: AHK: Loop нажатия клавиш с переменным количеством нажатий
Здравствуйте.
Пробую написать скрипт для одной игры (Dark Souls), с учётом особенностей: там нет горячих клавиш, можно только в списке перелистывать по кругу.
Попытался сделать следующее - на NumPad'ы назначить общее количество ячеек от 2 до 10 соответственно цифре клавиши:
Numpad3::
SpellQuantity = 3 ;общее количество ячеек
SpellCurrent = 1 ;текущий слот
SpellNew = 1 ;новый слот
SpellClick = 0 ;сколько раз нажать кнопку смены слотов
Return
Здесь всё нормально, вроде бы. А вот дальше я попытался написать под каждую цифру на основной клавиатуре от 1 до 0 скрипт, и он не хочет работать - у меня мало навыков работы с этой программой, увы:
1::
SpellNew = 1 ;значение новой ячейки (куда перемещаться) равно цифре нажатой клавиши
if (SpellNew > SpellCurrent)
{
SpellClick := (SpellNew - SpellCurrent)
}
else if (SpellNew < SpellCurrent)
{
SpellClick := (SpellQuantity - SpellCurrent + SpellNew)
}
else if (SpellNew = SpellCurrent)
{
SpellClick = 0
}
Loop, %SpellClick%
{
Send, {r down}
Sleep, 70
Send, {r up}
Sleep, 70
}
SpellCurrent = %SpellNew%
Return
Получиться в итоге должно что-то вроде горячих клавиш. Но не получается - не работает. Подскажите, где я что упустил или написал не так.
Заранее спасибо.
Update. Скрипт работает в блокноте правильно - он жмёт мне r именно так, как нужно. Но в окне игры не пашет вообще никак, при том, что отдельный скрипт с заданным количеством повторов нажатия клавиши R при нажатии клавиши Y работает нормально. Не знаю, что с этим делать - может, кто сталкивался с подобным.
Там ещё ошибка была: не
(SpellQuantity + SpellCurrent - SpellNew)
, а
(SpellQuantity - SpellCurrent + SpellNew)
.
Update. Всё, всё сделал. Добавил $ перед каждой клавишей, всё заработало.