1

Тема: AHK: Бесконечный повтор действий, при зажатой клавише

Я новичок в этом деле, помогите пожалуйста.
Как при зажатой клавише, например А, поочерёдно нажимались две другие В и С (неограниченное число раз), а при отпускании перестовали? Причём чтобы последней была нажата именно С. Либо чтобы при зажатой А, нажималась А и В.Соответственно последней будет - В. Как можно отрегулировать задержку между нажатиями? И как превратить всё это в EXE-к?

2 (изменено: Grey, 2012-08-11 18:06:59)

Re: AHK: Бесконечный повтор действий, при зажатой клавише

ak52ru пишет:

Как при зажатой клавише, например А, поочерёдно нажимались две другие В и С...

vk41:: ; a
   Loop
   {
      Send, {vk42} ; b
      Sleep, 250
      Send, {vk43} ; c
      Sleep, 250
      If !GetKeyState("vk41", "P")
         Break
   }
   Return
ak52ru пишет:

Либо чтобы при зажатой А, нажималась А и В.

$vk41::
   Loop
   {
      Send, {vk41}
      Sleep, 250
      Send, {vk42}
      Sleep, 250
      If !GetKeyState("vk41", "P")
         Break
   }
   Return
ak52ru пишет:

Как можно отрегулировать задержку между нажатиями?

Sleep, 250

ak52ru пишет:

И как превратить всё это в EXE-к?

...\AutoHotkey\Compiler\Ahk2Exe.exe

3 (изменено: ak52ru, 2011-06-21 16:35:35)

Re: AHK: Бесконечный повтор действий, при зажатой клавише

Спасибо.
Всё работает.
Но вот попытался подогнать скрипт под игру "Ragnarok" - не получилось. Если участвуют кнопки с клавиатуры - всё работает, заменяю одну из них на клик мышью - появляется непонятная задержка.

4

Re: AHK: Бесконечный повтор действий, при зажатой клавише

ak52ru пишет:

Но вот попытался подогнать скрипт под игру "Ragnarok"...

У меня нет такой игры.

5

Re: AHK: Бесконечный повтор действий, при зажатой клавише

ak52ru пишет:

Спасибо.
Всё работает.
Но вот попытался подогнать скрипт под игру "Ragnarok" - не получилось. Если участвуют кнопки с клавиатуры - всё работает, заменяю одну из них на клик мышью - появляется непонятная задержка.

На некоторых серверах есть некая защита! А еще проблемы с вин7. Посему спроси у Гуру сего форума, как заменить тебе твои кнопки на виртуальную клавиатуру, возможно поможет.
З.ы. Такое наблюдал на вин7.
З.ы.ы. Напиши, что ты хочешь от скрипта, может я тебе готовый напишу. Я предпологаю что это либо "Азура", либо "Комба"?

6 (изменено: ak52ru, 2011-06-23 15:24:03)

Re: AHK: Бесконечный повтор действий, при зажатой клавише

DaVinchi пишет:

На некоторых серверах есть некая защита! А еще проблемы с вин7. Посему спроси у Гуру сего форума, как заменить тебе твои кнопки на виртуальную клавиатуру, возможно поможет.
З.ы. Такое наблюдал на вин7.
З.ы.ы. Напиши, что ты хочешь от скрипта, может я тебе готовый напишу. Я предпологаю что это либо "Азура", либо "Комба"?

Система у меня WinХР-SP3.
На азуру или комбу у меня рук хватает. Основная задача скриптов для меня - избежать монотонного и многократного повторения каких либо действий. Пораллельно хочу сам научиться полноценно использовать возможности АНК. Мануал я уже видел и примеры рассматривал. Кое в чём я уже разобрался. Начал с самого простого - даблы, с задержкой разобрался, хотя явно очень кривым способом: заставил скрипт не 1 раз кликать мышью, а 5 - мне очень не нравится такой способ.
По мере необходимости появляются новые задачи: номер один - как сделать чтобы скрипт работал только в определённом окне, в том числе когда оно свёрнуто(и можно ли его продублировать для работы в 2х и более окнах). Второе - автокормёжка "гома" и автопередвижение(на одну клетку от персонажа) по локе (ну и сомо сабой авто винг). Третья (наверно не выполнимая с помошью АНК) - автоатака мобов персонажем, причём выборочно. А ещё вспомнил что хотел - автохил, реально ли сделать скрипт 1 раз, чтобы потом его не подгонять под координаты пикселей, как в Upilot?
Хотя, наверно, для этого отдельную тему нужно создавать...надеюсь модераторы простят меня:D

7

Re: AHK: Бесконечный повтор действий, при зажатой клавише

Начал с самого простого - даблы, с задержкой разобрался, хотя явно очень кривым способом: заставил скрипт не 1 раз кликать мышью, а 5 - мне очень не нравится такой способ.

В чем именно загвозка в задержке? Минимальная задержка с очень хорошим интернетом и мощьным компом, является 30мс, т.к. 0,03сек (я имею ввиду в самой игре). Это уже с убранной задержкой на анимацию, а с этой штукой, вроде 300мс. В общем опиши свою проблемы, постараюсь помочь.

как сделать чтобы скрипт работал только в определённом окне, в том числе когда оно свёрнуто

Для этого используется оператор ControlSend. Пример использования этой команды:

WinGet, p_id, pid, Ragnarok  ; Записывает PID рагнарка

    ControlSend, ,{F9}, ahk_pid %p_id% ; Посылает нажатие Ф9 в окно Рагнарок, даже если свернуто!!!
    Sleep, 2000
    ControlSend, ,{F8}, ahk_pid %p_id% ; Посылает Ф8.
    Sleep, 1000

Я еще не разобрался до путя с этой командой, но по моему команду мыши нельза давать таким способом (тут может быть подскажут ребята лучше разбирающиеся в этом).

(и можно ли его продублировать для работы в 2х и более окнах).

Где то на форуме видел тему с попыткой реализовать это. Получилось или нет, не знаю, тему щас некогда искать.

Второе - автокормёжка "гома" и автопередвижение(на одну клетку от персонажа) по локе (ну и сомо сабой авто винг).

Передвигаешь окно со статами хомяка в угол какой нибудьдь. Определяешь координаты окошка выбора кормежки, определяешь координаты в меню пункт про кормежку и пишешь скрипт с эллементарными кликами.
Автовинг: поставь в цикл (Loop) нажатие на кнопку винга и пусть он ее клацает постоянно.

Третья (наверно не выполнимая с помошью АНК) - автоатака мобов персонажем, причём выборочно.

Если кустарный сервер и у тебя есть возможность модернезировать клиент по своему желанию, то залезь в grf`ку, найди спрайт нужного моба, распакуй, отредактируй (запаж каким то одним монотонным цветом) и заставь скрипт искать этот цвет на всем экране PixelSearch.

А ещё вспомнил что хотел - автохил, реально ли сделать скрипт 1 раз, чтобы потом его не подгонять под координаты пикселей, как в Upilot?

Если ты не знаешь как написать сам автохил, то тут я тебе не помощник. Я с этим скриптом колупался долго. А если ты уже написал скрипт, просто каждый раз тебе надоедает искать координаты, то играй в полноэкранном режиме=) или в псевдополноэкранном или не перетягивай окно с игрой с места на место!

8

Re: AHK: Бесконечный повтор действий, при зажатой клавише

Вобщем то если я тебя правильно понял, и ты хочешь скрипт на спам даблами, то вот этот должен работать изумительно.

A::
   Loop
      {
         Send, {F1} ; Это к примеру дабл
         Sleep, 100
         Click (by itself) ; Нажмет мышь, в том месте куда наведут!
         Sleep, 200
         If GetKeyState("A", "P") = 0
            Break
      }
   Return

Когда зажата А, будет постоянно нажимать Ф1 (к примеру) и сразу кнопку мыши в том месте куда она направлена. Т.е. Навел на вражину мышку и держи А, оно его застрелит. Убил? Отпусти А и все будет пучком!

9

Re: AHK: Бесконечный повтор действий, при зажатой клавише

Подскажите как сделать скрипт чтобы при нажатой клавиши (н-р F1) он бесконечно и быстро нажимал F4 и лкм? Прошу очень надо!

10

Re: AHK: Бесконечный повтор действий, при зажатой клавише

fenx, этот вопрос разжёвывается каждый месяц. Вы уже нашли тему, в которой это подробно расписано. Осталось написать скрипт или адаптировать под себя имеющийся пример.

11 (изменено: ypppu, 2016-08-29 23:04:20)

Re: AHK: Бесконечный повтор действий, при зажатой клавише

Подскажите пожалуйста.

Numpad1::
Send, {F6}Всем привет{Enter}
Return

Что бы мне еще это 100 раз не копировать. Как сделать что бы это все повторялось много раз?

Прошу подскажите.

12

Re: AHK: Бесконечный повтор действий, при зажатой клавише

adadim2000, код следует оформлять тегом "code".

Переношу тему в раздел AutoHotKey — Games.

13 (изменено: Remix55556, 2016-08-30 13:53:31)

Re: AHK: Бесконечный повтор действий, при зажатой клавише

DaVinchi пишет:

Вобщем то если я тебя правильно понял, и ты хочешь скрипт на спам даблами, то вот этот должен работать изумительно.

A::
   Loop
      {
         Send, {F1} ; Это к примеру дабл
         Sleep, 100
         Click (by itself) ; Нажмет мышь, в том месте куда наведут!
         Sleep, 200
         If GetKeyState("A", "P") = 0
            Break
      }
   Return

Когда зажата А, будет постоянно нажимать Ф1 (к примеру) и сразу кнопку мыши в том месте куда она направлена. Т.е. Навел на вражину мышку и держи А, оно его застрелит. Убил? Отпусти А и все будет пучком!

У меня вопрос, а если мне нужен скрипт который бы только последовательно нажимал левую кнопку мышки, скажем 30 раз, и чтобы mouseXY после каждого нажатия ещё вставить, чтобы мышь двигалась при зажиме по экрану, как такой код будет выглядеть?
Я пытался сделать вот, но мышка по осям не двигается при зажиме:


LBUTTON::
   Loop
      {
         Click (by itself),  
         Sleep, 15
         Click (by itself),
         Sleep, 15
         mousexy (0, 02)
         Click (by itself),
         Sleep, 15
         mousexy (0, 05)
         If GetKeyState("LBUTTON", "P") = 0
            Break
      }
   Return