1 (изменено: sabutex, 2013-12-29 15:49:08)

Тема: Портирование макроса х7 мышки на AHK скрипт

Здравствуйте. Помогите пожалуйса переделать макрос c Oscar Editor для мышей х7 в скрипт AHK. Проблема в том что в ПО мышки макрос нельзя ставить на лкм, а только на дополнительные кнопки. 

Вот сам макрос как выглядит:

+ открыть спойлер

<Root>
       <DefaultMacro>
<Major></Major>
<Description>

</Description>
<Comment>3XFIRE
</Comment>
<GUIOption>
            <RepeatType>1</RepeatType>
</GUIOption>
<KeyUp>
            <Syntax></Syntax>
</KeyUp>
<KeyDown>
           <Syntax>LeftDown 1
Delay 72 ms
MoveR 45 90
Delay 72 ms
MoveR 45 60
Delay 72 ms
MoveR 60 75
Delay 72 ms
MoveR 75 60
Delay 72 ms
MoveR 45 30
Delay 72 ms
MoveR -90 45
Delay 72 ms
MoveR 30 -75
Delay 72 ms
MoveR -105 -90
Delay 72 ms
MoveR -60 0
Delay 72 ms
MoveR 45 -45
Delay 72 ms
MoveR -60 0
Delay 72 ms
MoveR 75 -60
Delay 72 ms
MoveR -75 -105
Delay 72 ms
MoveR 30 60
Delay 72 ms
MoveR -45 45
Delay 72 ms
MoveR 60 -45
Delay 72 ms
MoveR -60 30
Delay 72 ms
MoveR -45 -45
Delay 72 ms
MoveR 45 -75
Delay 72 ms
MoveR -60 30
Delay 72 ms
MoveR -90 -60
Delay 72 ms
MoveR 30 60
Delay 72 ms
MoveR 75 30
Delay 72 ms
MoveR 90 30
Delay 72 ms
MoveR 90 60
Delay 72 ms
MoveR -45 60
Delay 72 ms
MoveR 45 -45
Delay 72 ms
MoveR -60 -60
Delay 72 ms
MoveR -45 0
Delay 72 ms
LeftUp 1</Syntax>
</KeyDown>
<Software>Counter-Strike (CS)
</Software></DefaultMacro>
</Root>

Действия выполняемые в макросе на русском языке:

+ открыть спойлер

Нажать левую кнопку мыши
пауза 72 ms
переместить 45 90
пауза 72 ms
переместить 45 60
пауза 72 ms
переместить 60 75
пауза 72 ms
переместить 75 60
пауза 72 ms
переместить 45 30
пауза 72 ms
переместить -90 45
пауза 72 ms
переместить 30 -75
пауза 72 ms
переместить -105 -90
пауза 72 ms
переместить -60 0
пауза 72 ms
переместить 45 -45
пауза 72 ms
переместить -60 0
пауза 72 ms
переместить 75 -60
пауза 72 ms
переместить -75 -105
пауза 72 ms
переместить 30 60
пауза 72 ms
переместить -45 45
пауза 72 ms
переместить 60 -45
пауза 72 ms
переместить -60 30
пауза 72 ms
переместить -45 -45
пауза 72 ms
переместить 45 -75
пауза 72 ms
переместить -60 30
пауза 72 ms
переместить -90 -60
пауза 72 ms
переместить 30 60
пауза 72 ms
переместить 75 30
пауза 72 ms
переместить 90 30
пауза 72 ms
переместить 90 60
пауза 72 ms
переместить -45 60
пауза 72 ms
переместить 45 -45
пауза 72 ms
переместить -60 -60
пауза 72 ms
переместить -45 0
пауза 72 ms
Отпустить левую кнопку

Макрос стоит на параметре: нажать - старт, отпустить - стоп. (допустим установлен на лкм, удерживаем лкм макрос непрерывно повторяется, отпускаем - заканчивается.)

Помогите добрые люди, кто разбирается, или укажите где можно поискать, почитать, разобраться. Может раньше обсуждались подобные темы. Заранее Благодарен !!!

Сам в этом деле чайник, но  что-то получилось:

+ открыть спойлер

*~Lbutton::
{
Sleep 72 ms
MouseMove 45, 90, 0, R
Sleep 72 ms
MouseMove 45, 60, 0, R
Sleep 72 ms
MouseMove 60, 75, 0, R
Sleep 72 ms
MouseMove 75, 60, 0, R
Sleep 72 ms
MouseMove 45, 30, 0, R
Sleep 72 ms
MouseMove -90, 45, 0, R
Sleep 72 ms
MouseMove 30, -75, 0, R
Sleep 72 ms
MouseMove -105, -90, 0, R
Sleep 72 ms
MouseMove -60, 0, 0, R
Sleep 72 ms
MouseMove 45, -45, 0, R
Sleep 72 ms
MouseMove -60, 0, 0, R
Sleep 72 ms
MouseMove 75, -60, 0, R
Sleep 72 ms
MouseMove -75, -105, 0, R
Sleep 72 ms
MouseMove 30, 60, 0 0, R
Sleep 72 ms
MouseMove -45, 45,  0, R
Sleep 72 ms
MouseMove 60, -45, 0, R
Sleep 72 ms
MouseMove -60, 30, 0, R
Sleep 72 ms
MouseMove -45, -45, 0, R
Sleep 72 ms
MouseMove 45, -75, 0, R
Sleep 72 ms
MouseMove -60, 30, 0, R
Sleep 72 ms
MouseMove -90, -60, 0, R
Sleep 72 ms
MouseMove 30, 60, 0, R
Sleep 72 ms
MouseMove 75, 30, 0, R
Sleep 72 ms
MouseMove 90, 30, 0, R
Sleep 72 ms
MouseMove 90, 60, 0, R
Sleep 72 ms
MouseMove -45, 60, 0, R
Sleep 72 ms
MouseMove 45, -45, 0, R
Sleep 72 ms
MouseMove -60, -60, 0, R
Sleep 72 ms
MouseMove -45, 0, 0, R
Sleep 72 ms

}
Return

Скрипт работает, но не так как хотелось. Нажимаю лкм скрипт начинает выполнятся без остановки.
Помогите сделать: удерживаю лкм скрипт выполняется, отпускаю - заканчивается. И при каждом нажатии он начинается с начала.

2 (изменено: Ядрён, 2013-12-29 17:33:46)

Re: Портирование макроса х7 мышки на AHK скрипт

Вот так надо.

*~Lbutton::
Loop 
{ 
GetKeyState, state, LButton, P  ;проверяет нажатали лкм или нет
if state = U
break
    Sleep, 10
    MouseMove, 5, 5, , R
    Sleep, 10
  
}
Return

Достаточно только одного  "MouseMove, 5, 5,  , R", значения только подобрать надо.
И очень важно подобрать задержку "Sleep, 10" тут тоже надо подобрать.
Тут будут немного другие значения нежели в х7.

OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

3 (изменено: sabutex, 2013-12-29 17:01:23)

Re: Портирование макроса х7 мышки на AHK скрипт

Ты неправильно понял. Пока зажата лкм курсор двигается по указанным координатам x,y. Как только отжал лкм, скрипт перестает работать. И при нажатии опять начинается все сначала. Как может быть достаточно одного "mouse move 5, 5,  ,  R,", если курсор будет передвигаться только в одну точку? Может я дурак...  Или ты имеешь в виду все значения mouse move поменять на "mouse move 5, 5,  ,  R,".

4

Re: Портирование макроса х7 мышки на AHK скрипт

sabutex пишет:

Ты неправильно понял. Пока зажата лкм курсор двигается по указанным координатам x,y. Как только отжал лкм, скрипт перестает работать. И при нажатии опять начинается все сначала. Как может быть достаточно одного "mouse move 5, 5,  ,  ,", если курсор будет передвигаться только в одну точку? Может я дурак....

Для какой игры

OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

5 (изменено: sabutex, 2013-12-29 17:03:17)

Re: Портирование макроса х7 мышки на AHK скрипт

Warface. Это скрипт на антиотдачу.

6 (изменено: Ядрён, 2013-12-29 17:37:43)

Re: Портирование макроса х7 мышки на AHK скрипт

Тогда так "MouseMove 45, 90,  , R" - уберите нули во всех своих значениях, как показано здесь и вставьте.

OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

7 (изменено: Ядрён, 2013-12-29 17:36:25)

Re: Портирование макроса х7 мышки на AHK скрипт

Ну тогда понятно, тогда первый вариант с одним - MouseMove, 5, 5,  , R  - это точно, только параметры свои подставьте.

OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

8

Re: Портирование макроса х7 мышки на AHK скрипт

Ядрён, ещё раз про точки забудете, и мы с Вами попрощаемся.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: Ядрён, 2013-12-29 17:34:29)

Re: Портирование макроса х7 мышки на AHK скрипт

Я исправил, просто тут проблемы с ребёнком постоянно отхожу, вот пару раз отошёл и забыл поставить точку.Извините.

OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

10 (изменено: sabutex, 2013-12-29 22:54:33)

Re: Портирование макроса х7 мышки на AHK скрипт

Ядрён пишет:

Ну тогда понятно, тогда первый вариант с одним - MouseMove, 5, 5,  , R  - это точно, только параметры свои подставьте.

Получается что курсор постоянно смещается по диагонали вправо, вниз. Вы наверное не понимаете, что мне надо. Обьясню более подробно. Допустим первых 2 патрона увод идет влево вверх, следующие 2 патрона вниз вправо, следующих 2 влево вниз и т.д. И чтобы погасить отдачу на каждые 2 патрона надо новые координаты x,y. Что мне нужно: пока зажата лкм курсор двигается по указанным координатам x,y. Как только отжал лкм, скрипт перестает работать. И при нажатии опять начинает все сначала.

11 (изменено: Irbis, 2013-12-30 09:22:30)

Re: Портирование макроса х7 мышки на AHK скрипт

Значения смещений из поста #1 допиши в массив Arr.
Добавил условие вкл/выкл антиотдачи на хоткей F12, если нужно.

#NoEnv
SetBatchLines -1
Arr := [45,90,   45,60,   60,75,   75,60
       ,45,30,  -90,45,   30,-75, -105,-90] ; и т.д.
Return

#If AntiKick
*~Lbutton::
Loop
   Loop % Arr.MaxIndex() >> 1
   {
      if !GetKeyState("Lbutton", "P")
         Break 2
      MouseMove, % Arr[A_Index*2-1], % Arr[A_Index*2], 0, R
      Sleep 72
   }
Return
#If

F12:: AntiKick := !AntiKick

12 (изменено: sabutex, 2013-12-30 19:02:50)

Re: Портирование макроса х7 мышки на AHK скрипт

Irbis cпасибо тебе огромное за помощь !!!

13

Re: Портирование макроса х7 мышки на AHK скрипт

Пожалуйста.

14

Re: Портирование макроса х7 мышки на AHK скрипт

Irbis,а можешь мне тоже помочь с такой же проблемой?Я в этом ничего не понимаю.Вот макрос и его надо сделать на ЛКМ.

+ открыть спойлер

<Root>
<DefaultMacro>
<Major></Major>
<Description>anti-recoil
</Description>
<Comment>anti-recoil
</Comment>
<GUIOption>
<RepeatType>1</RepeatType>
</GUIOption>
<KeyUp>
<Syntax></Syntax>
</KeyUp>
<KeyDown>
<Syntax>LeftDown 1
Delay 93 ms
MoveR 3 7
Delay 93 ms
MoveR 4 8
Delay 93 ms
MoveR 1 10
Delay 93 ms
MoveR 3 8
Delay 93 ms
MoveR -5 6
Delay 93 ms
MoveR -5 8
Delay 93 ms
MoveR -3 2
Delay 93 ms
MoveR -3 4
Delay 93 ms
MoveR 5 6
Delay 93 ms
MoveR 1 -1
Delay 93 ms
MoveR 3 5
Delay 93 ms
MoveR -6 2
Delay 93 ms
Delay 93 ms
MoveR 4 -2
Delay 93 ms
MoveR -3 -1
Delay 93 ms
MoveR 5 2
Delay 93 ms
MoveR -4 -2
Delay 93 ms
MoveR 3 -2
Delay 93 ms
MoveR -5 -2
Delay 93 ms
MoveR -3 1
Delay 93 ms
MoveR 2 1
Delay 93 ms
MoveR -3 2
Delay 93 ms
MoveR 2 -1
Delay 93 ms
MoveR -1 2
Delay 93 ms
MoveR 2 -1
Delay 93 ms
MoveR -1 5
Delay 93 ms
MoveR -5 1
Delay 93 ms
MoveR 3 -1
Delay 93 ms
MoveR -1 4
Delay 93 ms
LeftUp 1</Syntax>
</KeyDown>
<Software>Warface
</Software></DefaultMacro>
</Root>

15

Re: Портирование макроса х7 мышки на AHK скрипт

Мне нужно так же как и автору,поставить макрос на ЛКМ,напишите пожалуйста макрос а его вставлю в мышь,заранее спасибо.

16 (изменено: Irbis, 2014-03-31 21:32:37)

Re: Портирование макроса х7 мышки на AHK скрипт

Конечно, могу помочь.
Просто вставь все величины сдвига X и Y из твоего макроса ( MoveR X Y )  в массив Arr из поста #11.
Подсказка: начало будет такое

Arr := [3,7,   4,8 ...

И Sleep, 72 будет в твоем случае Sleep, 93

17

Re: Портирование макроса х7 мышки на AHK скрипт

ИРбис,и закинуть макрос просто на мышь или как?

18

Re: Портирование макроса х7 мышки на AHK скрипт

Или просто жать ф12?

19 (изменено: Irbis, 2014-03-31 22:35:12)

Re: Портирование макроса х7 мышки на AHK скрипт

Если у тебя установлен АНК, скрипт запускается, как исполняемый файл, "закидывать на мышь" ничего не нужно.
F12 переключает режим антиотдачи, сначала он выключен.

20

Re: Портирование макроса х7 мышки на AHK скрипт

А что такое анк?))

21

Re: Портирование макроса х7 мышки на AHK скрипт

А редактировать в блокноте можно?

22

Re: Портирование макроса х7 мышки на AHK скрипт

Всё сделал и выдаёт ошибку error blank parameter.

23

Re: Портирование макроса х7 мышки на AHK скрипт

#NoEnv
SetBatchLines -1
Arr := [45,90,   45,60,   60,75,   75,60
       ,45,30,  -90,45,   30,-75, -105,-90] ; и т.д.
Return

#If AntiKick
*~Lbutton::
Loop 3
   Loop % Arr.MaxIndex() >> 1
   {
      if !GetKeyState("Lbutton", "P")
         Break 2
      MouseMove, % Arr[A_Index*2-1], % Arr[A_Index*2], 0, R
      Sleep 72
   }
Return
#If

F12:: AntiKick := !AntiKick

Я правильно понимаю что после добавления 3 после Loop макрос будет срабатывать три раза после каждого нажатия ЛКМ ?

24 (изменено: skeleton, 2015-06-11 17:42:26)

Re: Портирование макроса х7 мышки на AHK скрипт

Irbis пишет:

Значения смещений из поста #1 допиши в массив Arr.
Добавил условие вкл/выкл антиотдачи на хоткей F12, если нужно.

#NoEnv
SetBatchLines -1
Arr := [45,90,   45,60,   60,75,   75,60
       ,45,30,  -90,45,   30,-75, -105,-90] ; и т.д.
Return

#If AntiKick
*~Lbutton::
Loop
   Loop % Arr.MaxIndex() >> 1
   {
      if !GetKeyState("Lbutton", "P")
         Break 2
      MouseMove, % Arr[A_Index*2-1], % Arr[A_Index*2], 0, R
      Sleep 72
   }
Return
#If

F12:: AntiKick := !AntiKick

Замечательно все работает! Но есть такой вопрос! А если на каждое смещение нужна своя задержка? Возможно подправить скрипт? АHK поддерживает трехмерные массивы?

например:

+ открыть спойлер

Delay 30 ms
MoveR 0 4
Delay 30 ms
MoveR 0 4
Delay 30 ms
MoveR 0 4
Delay 30 ms
MoveR 0 4
Delay 120 ms
MoveR 0 4
Delay 120 ms
MoveR 0 3
Delay 120 ms
MoveR 0 4
Delay 120 ms
MoveR 0 3
Delay 120 ms
MoveR 0 3
Delay 120 ms
MoveR 0 4
Delay 120 ms
MoveR 0 3
Delay 120 ms
MoveR 0 4
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 0
Delay 120 ms
MoveR 0 1
Delay 120 ms
MoveR 0 1
Delay 120 ms
MoveR 0 1
Delay 120 ms

25

Re: Портирование макроса х7 мышки на AHK скрипт

Ну так как? Возможно в скрипте сделать после каждого смещения свою задержку? постоянно меняющийся Sleep.

26

Re: Портирование макроса х7 мышки на AHK скрипт

Ядрён Доброго дня! У меня такая же проблема но этот способ либо мне не подходит либо я слишком не опытен чтобы это сделать. А нужно мне это для погашения отдачи, я уже имею макрос но он на кнопке 7 тянуться до нее трудно и неудобно (мышь X7 BH750) могу поставить макрос на кнопку ЛКМ но при коротком нажатии он выстреливает всю обойму (игра counter strike 1.6) а мне надо чтобы стрельба была только пока я удерживаю кнопку ЛКМ