1 (изменено: Rainroom, 2014-01-18 21:45:15)

Тема: 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. Всё, всё сделал. Добавил $ перед каждой клавишей, всё заработало.