1 (изменено: sergoo710, 2021-10-10 13:46:24)

Тема: AHK: Контр-стрейфы (резкая остановка) CS GO

Здравствуйте,, мне нужно доработать скрипт, который будет резко останавливать персонажа, а именно автоматически нажимать клавиши, чтобы противодействовать движению. (если зажата w-вперёд, то если её отпустить, сработает s-назад. и так по аналогии a-влево d-право). и проблема заключается в том, что в игре с разным оружием и ситуациями скорость передвижения разная и просто установить время, на которое будет задействована клавиша противодействия, не получится. (125 мс- это для макс развиваемой скорости). так если на скрипт сработает не на той скорости, на которую рассчитана кнопка противодействия персонажа начинает дёргать или же он будет останавливаться медленно, как без скрипта.

И вопрос вот в чём, можно ли сделать так, чтобы сценарий, который запускает клавиша, делала это только в том случае, если она будет зажата какое то время, (которое потребуется для разгона до нужной скорости). или же есть другой способ сделать так, чтобы можно было ввести много значений для того, чтобы скрипт, опираясь на них, смог понять, какой сценарий ему запустить (время, зажатии клавиши, которое нужно для разгона и время зажатии клавиши на противодействие ) или есть способ, чтоб скрипт сам мог учитывать значения для срабатывания клавиш в нужный момент

Заранее всем спасибо


ScriptActive = 1

~*w up::
If ScriptActive = 1 
{
if(GetKeyState("s","P"))  
return
start:=A_TickCount
start+=125
Send {s down}
While (!GetKeyState("s","P") && A_TickCount<start)  
Sleep 10
If !GetKeyState("s","P")  
Send {s up}
}
return

~*a up::
If ScriptActive = 1
{
if(GetKeyState("d","P"))  
return
start:=A_TickCount
start+=125
Send {d down}
While (!GetKeyState("d","P") && A_TickCount<start)  
Sleep 10
If !GetKeyState("d","P")  
Send {d up}
}
return

~*d up::
If ScriptActive = 1
{
if(GetKeyState("a","P"))  
return
start:=A_TickCount
start+=125
Send {a down}
While (!GetKeyState("a","P") && A_TickCount<start)  
Sleep 10
If !GetKeyState("a","P") ; 
Send {a up}
}
return

~*s up::
If ScriptActive = 1
{
if(GetKeyState("w","P"))  
return
start:=A_TickCount
start+=125
Send {w down}
While (!GetKeyState("w","P") && A_TickCount<start)  
Sleep 10
If !GetKeyState("w","P")  
Send {w up}
}
return


~F7::
If ScriptActive = 1
{
ScriptActive = 0
SoundBeep, 400, 400
}
else if ScriptActive = 0
{
ScriptActive = 1
SoundBeep, 1000, 100
SoundBeep, 1000, 100
}
return
Post's attachments

888.ahk 1.11 kb, 2 downloads since 2021-10-10 

You don't have the permssions to download the attachments of this post.