Анатолий Зяблин
Просветленный
(24326)
1 месяц назад
#NoEnv
SendMode, Input
SetBatchLines -1
CoordMode, Mouse, Screen
; Функция для перемещения мыши
mouseXY(x, y)
{
DllCall("mouse_event", uint, 1, int, x, int, y, uint, 0, int, 0)
}
; Функция для страйфа (движение и поворот мыши)
strafe(left)
{
moveCount := 18
sleepInterval := 1
relativeMove := 20
if (left)
{
key := "d"
move := relativeMove
}
else
{
key := "a"
move := -relativeMove
}
send {%key% down}
DllCall("Sleep", "UInt", 5)
Loop, %moveCount%
{
mouseXY(move, -(move / 4))
DllCall("Sleep", "UInt", sleepInterval)
}
send {%key% up}
}
; Основной скрипт для зажатия 'e'
$e::
while getkeystate("e", "P")
{
strafe(true)
strafe(false)
}
return
; Скрипт, активирующийся после команды 'Send {Ctrl up}'
SendCtrlUpAndExecute()
{
Loop, 3
{
; Нажимаем 'a' 3 раза
send, a
sleep, 50 ; Задержка между нажатиями
; Нажимаем 'd' 3 раза
send, d
sleep, 50 ; Задержка между нажатиями
; Поворачиваем мышь в одну сторону
mouseXY(50, 0)
sleep, 50 ; Задержка между движениями
; Поворачиваем мышь в другую сторону
mouseXY(-50, 0)
sleep, 50 ; Задержка между движениями
}
}
; Пример использования после команды 'Send {Ctrl up}'
$^up:: ; ^ обозначает Ctrl
Send {Ctrl up}
SendCtrlUpAndExecute()
return
LolskУченик (140)
1 месяц назад
ты можешь пожалуйста тогда в моём скрипте убрать старый вращения мышкой, и поставить новые которые ты мне сделал.
#Persistent ; Держим скрипт активным
#MaxThreadsPerHotkey 2 ; Ограничиваем выполнение по одному разу за нажатие
SetDefaultMouseSpeed, 10 ; Скорость движения мыши
F5::ExitApp
F1:: ; Скрипт активируется при нажатии F1
{
; Зажимаем "W"
Send, {w down}
Sleep, 600 ; Ждем 1 секунду
; Нажимаем "Space"
Send, {Space}
; Отпускаем "W"
Send, {w up}
; Поворачиваем мышку влево и зажимаем "A"
Send, {a down}
MoveMouse(-100, 0, 10) ; Плавное движение мыши влево
Sleep, 2 ; Ждем пол секунды
Send, {Ctrl down}
Sleep, 8
; Отпускаем "A"
Send, {a up}
LolskУченик (140)
1 месяц назад
Sleep, 10
Send, {ъ}
Send, {Ctrl up}
; Надо удалить повороты мышкой вправо и зажиманием D.
; Поворачиваем мышку вправо и зажимаем "D"
Send, {d down}
MoveMouse(100, 0, 2) ; Плавное движение мыши вправо
Send, {d up}
; Надо заменить повороты мышкой вправо, влево и зажиманием D И A.
; Поворачиваем мышку влево и зажимаем "A" 3 раза попеременно с "D"
Loop, 3
{
; Зажимаем "A" и поворачиваем влево
Send, {a down}
MoveMouse(-100, 0, 2) ; Плавное движение мыши влево
Send, {a up}
LolskУченик (140)
1 месяц назад
; Зажимаем "D" и поворачиваем вправо
Send, {d down}
MoveMouse(100, 0, 2) ; Плавное движение мыши вправо
Send, {d up}
}
return
}
MoveMouse(x, y, speed)
{
MouseMove, %x%, %y%, %speed%, R
}
Анатолий ЗяблинПросветленный (24326)
1 месяц назад
#Persistent ; Держим скрипт активным
#MaxThreadsPerHotkey 2 ; Ограничиваем выполнение по одному разу за нажатие
SetDefaultMouseSpeed, 10 ; Скорость движения мыши
F5::ExitApp
F1:: ; Скрипт активируется при нажатии F1
{
; Зажимаем "W"
Send, {w down}
Sleep, 600 ; Ждем 1 секунду
; Нажимаем "Space"
Send, {Space}
; Отпускаем "W"
Send, {w up}
; Поворачиваем мышку влево и зажимаем "A"
Send, {a down}
MoveMouse(-100, 0, 10) ; Плавное движение мыши влево
Sleep, 2 ; Ждем пол секунды
Send, {Ctrl down}
Sleep, 8
Анатолий ЗяблинПросветленный (24326)
1 месяц назад
; Отпускаем "A"
Send, {a up}
Sleep, 10
Send, {ъ}
Send, {Ctrl up}
; Новый цикл с поворотами мышки и нажатием "A" и "D" 3 раза
Loop, 3
{
; Зажимаем "A" и поворачиваем влево
Send, {a down}
MoveMouse(-50, 0, 2)
Send, {a up}
Sleep, 50
; Зажимаем "D" и поворачиваем вправо
Send, {d down}
MoveMouse(50, 0, 2)
Send, {d up}
Sleep, 50
}
}
MoveMouse(x, y, speed)
{
DllCall("mouse_event", "UInt", 1, "Int", x, "Int", y, "UInt", 0, "Int", 0)
Sleep, speed
}
Рустам Абдрашитов
Мыслитель
(8667)
1 месяц назад
#NoEnv
SendMode, Input
SetBatchLines -1
CoordMode, Mouse, Screen
; Функция для перемещения мыши
mouseXY(x, y)
{
DllCall("mouse_event", uint, 1, int, x, int, y, uint, 0, int, 0)
}
; Функция для страйфинга влево или вправо
strafe(left)
{
moveCount := 18
sleepInterval := 1
relativeMove := 20
key := left ? "d" : "a"
move := left ? relativeMove : -relativeMove
send {%key% down}
DllCall("Sleep", "UInt", 5)
Loop, %moveCount%
{
mouseXY(move, -(move/4))
DllCall("Sleep", "UInt", sleepInterval)
}
send {%key% up}
}
; Основной блок для активации страйфа при нажатии 'e'
$e::
while getkeystate("e", "P")
{
strafe(true) ; Страйф вправо
strafe(false) ; Страйф влево
}
return
; Блок для выполнения действий после отпускания Ctrl и нажатия 'e'
$^e::
Send {Ctrl up}
performActions(3) ; Выполняем действия три раза
return
; Функция для выполнения действий: страйфинг и повороты мыши
performActions(repeatCount)
{
Loop %repeatCount%
{
strafe(true) ; Страйф вправо
strafe(false) ; Страйф влево
}
; Повороты мыши
Loop %repeatCount%
{
mouseXY(20, 0) ; Поворот вправо
mouseXY(-20, 0) ; Поворот влево
}
}
Рустам АбдрашитовМыслитель (8667)
1 месяц назад
Оптимизации и улучшения:
Функция performActions: Вынесены действия по страйфингу и поворотам мыши в отдельную функцию. Это делает код более модульным и упрощает его поддержку.
Улучшенная читаемость: Добавлены комментарии для объяснения каждой части кода.
Параметризация: Теперь количество повторений передается как параметр функции performActions, что упрощает изменение этого значения в будущем.
Сокращение повторений: Удалены дублирующиеся строки кода за счет использования функций.
Этот скрипт теперь более структурирован и удобен для дальнейшего расширения или изменения функционала.
Сам скрипт который надо дороботать:
#NoEnv
SendMode, Input
SetBatchLines -1
CoordMode, Mouse, Screen
mouseXY(x, y)
{
DllCall("mouse_event",uint,1,int,x,int,y,uint,0,int,0)
}
strafe(left)
{
moveCount := 18
sleepInterval := 1
relativeMove := 20
if (left)
{
key := "d"
move := relativeMove
} else
{
key := "a"
move := -relativeMove
}
send {%key% down}
DllCall("Sleep", "UInt", 5)
Loop, %moveCount%
{
mouseXY(move, -(move/4))
DllCall("Sleep", "UInt", sleepInterval)
}
send {%key% up}
}
$e::
while getkeystate("e","P")
{
strafe(true)
strafe(false)
}
return