1 (изменено: SNapSV, 2017-02-12 21:47:02)

Тема: Объединить скрипты: подмены горячей клавиши и смещения указателя

Оба скритра по отдельности работают отлично. При включении обоих работают не корректно. Персонаж периодически привстает и не работает 1-й скрипт.
   
1. Скрипт предназначен для многократного нажатия ЛКМ ( Необходимо переделать, чтобы активировался при нажатии LCtrl & ~LButton ) :

#NoEnv
SendMode Input

*LButton::

  Loop
     {
        Send, {LButton}
        Sleep, 0         
        If GetKeyState("LButton", "P") = 0
           Break
     }
Return
~F6::suspend

2. Скрипр предназначен для увода курсора вниз, при нажатии LCtl+LButton.

#NoEnv
SendMode Input

~F6::Suspend

~End::ExitApp

LCtrl & ~LButton::
Loop
	If GetKeyState("LButton", "LCtrl") {
		Sleep, 6
		moveAmount := (moveAmount = 2) ? 6 : -0.2
 		mouseXY(moveAmount,9.0)

	}
	else
	break
	
Return

mouseXY(x,y)
{
DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0)
}

strafe(left){
moveCount := 1
sleepInterval := 6
relativeMove := 1
if(left){
key := "a"
move := -relativeMove
} else {
key := "d"
move := relativeMove
}
Send, {Blind}{%key% down}
DllCall("Sleep", "UInt", 6)
Loop, %moveCount% {
mouseXY(move, 0)
DllCall("Sleep", "UInt", sleepInterval)
}
Send, {Blind}{%key% up}
}

*LCtrl::
while getkeystate("LButton", "LCtrl") {
strafe(false)
strafe(true)
}
return

Подскажите пожалуйста, работает ли скрипт начиная со строки:


strafe(left){
moveCount := 1

    ... и т.д.

Если не работает, то объедините все воедино пожалуйста.

2

Re: Объединить скрипты: подмены горячей клавиши и смещения указателя

В итоге хочу получить следующее: приседаю ( LCtrl ), стреляю многократно при удержании LButton с уводом курсора вниз и корректировкой по горизонтали.

3

Re: Объединить скрипты: подмены горячей клавиши и смещения указателя

SNapSV
Прочтите правила (см. шапку форума).
Укажите в заголовке суть техзадания, заложенную в работе скриптов, без использования очевидностей. Подробности.
Обрамите коды скриптов в соответствующие BBCode.
На исправления даётся 3 дня. После всех своевременных исправлений обсуждение станет разрешено.

Добавлено:
"Объединение
м двух скриптов в один" не отражает суть работы скриптов. Исправил на приемлемый вариант.

Обсуждение открыто.

4

Re: Объединить скрипты: подмены горячей клавиши и смещения указателя

Упрощаю задачу.  Как сделать, чтобы работал второй "Loop"?

#NoEnv
SendMode Input

~F6::Suspend

~End::ExitApp

LCtrl & LButton::

Loop
     {
        Send, {LButton}
        Sleep, 0         
        If GetKeyState("LButton", "P") = 0
        Break
     }
 
Return

Loop
	If GetKeyState("LButton", "LCtrl") {
	Sleep, 0
        moveAmount := (moveAmount = 2) ? 6 : -0.2
	mouseXY (moveAmount,9.0)

        }
        else
	break

Return

mouseXY(x,y)
{
DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0)
}