Пауза/возобновление работы всех хоткеев в скрипте

Помощь в написании скриптов
Golow1n
Posts: 2
Joined: 06 Mar 2021, 03:55

Пауза/возобновление работы всех хоткеев в скрипте

06 Mar 2021, 04:05

Пишу скрипт для помощи в стрейфе в CS:GO. Чтобы он не мешал в самой игре непосредственно, необходимо его регулярно отключать, однако все вариации пауз, что я использовал, по факту, не отключают его. Необходимо отключить горячие клавиши до того момента, как я их снова включу, желательно делать это на одну клавишу. Скрипт ниже

Code: Select all

mouseXY(x,y)
{
DllCall("mouse_event",short,1,short,x,short,y,short,0,short,0)
}
*~$A::
while GetKeyState("A","P")
{
     mouseXY(-20,0) ;
     Sleep 5 ;
}
return
*~$D::
while GetKeyState("D","P")
{
     mouseXY(20,0) ;
     Sleep 5 ;
}


return

MButton::
  Suspend Permit
  Pause Toggle
  Return
mcl
Posts: 355
Joined: 04 May 2018, 16:35

Re: Пауза/возобновление работы всех хоткеев в скрипте

06 Mar 2021, 06:37

Suspend Permit только отмечает текущий поток как не подлежащий приостановке, на сами хоткеи это не влияет.
Эта строка не очень нужна, т.к. поток, начинающийся с команды Suspend и так не подлежит приостановке.

Pause Toggle замораживает текущий поток. Вызов хоткеев создаёт новые, незамороженные потоки.

Вариант 1: только Suspend.
Отключает/включает хоткеи по нажатию MButton, но их потоки продолжат работу, пока не будут отпущены клавиши A/D.

Code: Select all

...
MButton::
  Suspend Toggle
  Return
Вариант 2: с дополнительной переменной.

Code: Select all

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

strafeKeysOn := True

*~$A::
while GetKeyState("A","P") && strafeKeysOn
{
     mouseXY(-20,0) ;
     Sleep 5 ;
}
return
*~$D::
while GetKeyState("D","P") && strafeKeysOn
{
     mouseXY(20,0) ;
     Sleep 5 ;
}
return

MButton::
  strafeKeysOn := Not strafeKeysOn
  Return
github://oGDIp - GDI+ wrapper for AHK v1.1

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 25 guests