Тема: AHK: Saints Row The Third (готовый скрипт)
Не большая автоматизация для игры Saints Row The Third
По сути она касается управления машиной и другими средствами передвижения. В игре есть конечно круиз-режим, но он обладает недостатками и я постарался всё исправить.
Осторожно, т.е. аккуратно.
1. В игре намертво прописаны некоторые клавиши, можно было их вынести в блок инициализации, но я не стал.
Просто достаточно поправить два блока
lMainTHQon2:
;Hotkey - creates, modifies, enables, or disables a hotkey while the script is running.
;Here is a general rule records - Hotkey, KeyName [, Label, Options]
;Hotkey command syntax rules are described in the programming language AutoHotkey.
Hotkey, WheelUp, lGearInc, On
Hotkey, WheelDown, lGearDec, On
Hotkey, PgUp, lMaxGear, On
Hotkey, PgDn, lMinGear, On
Hotkey, Up, lUp, On
Hotkey, Down, lDown, On
Hotkey, Left, lLeft, On
Hotkey, Right, lRight, On
Hotkey, End, lToggleGearBox, On
Hotkey, Home, lCorrectorYaw, On
Hotkey, RCtrl, lSwitchEngine, On
fnPlaySoundTHQ(iSoundStart)
fSoundPlay := false
gosub lSetTimerOn
return
lMainTHQoff2:
gosub lSetTimerOff
;When you turn off enough to indicate Cycled key, but clearer and less chance go wrong.
Hotkey, WheelUp, lGearInc, Off
Hotkey, WheelDown, lGearDec, Off
Hotkey, PgUp, lMaxGear, Off
Hotkey, PgDn, lMinGear, Off
Hotkey, Up, lUp, Off
Hotkey, Down, lDown, Off
Hotkey, Left, lLeft, Off
Hotkey, Right, lRight, Off
Hotkey, End, lToggleGearBox, Off
Hotkey, Home, lCorrectorYaw, Off
Hotkey, RCtrl, lSwitchEngine, Off
if (!fSoundPlay)
{
fnPlaySoundTHQ(iSoundStop)
fSoundPlay := true
}
return
2. Клавиши LShift RShift TAB ESC Enter / и стрелки так же прописаны "намертво", но всё исправляется.
Клавиша / связана с перезарядкой оружия, т.е. она переделана, а клавиша Enter позволяет мгновенно выпрыгнуть из машины в независимости от её текущей скорости.
;The script is paired directives - #UseHook, On|Off this means that the ON/OFF hook the keyboard and key within directives may call itself.
#UseHook, On
;Correction reloading weapons, ie "/" key (scan code of the key, it is the 8th, it's not a mouse problem or a system)
sc35::
Send, {sc35 Down}
KeyWait, % A_ThisHotkey
Send, {sc35 Up}
return
;These keys access the game menu and we disable functions the main part the script.
Enter::
if ((vRSh) && (iGear>=1)) ;When leaving the car do fast and smooth braking, almost on the spot, at any speed.
{
iGearTmp := iGear
gosub lMinGear
Send, {Down Down}
loop %iGearTmp%
Sleep %td30_Sleep%
Send, {Down Up}
}
Send, {Enter Down}
KeyWait, % A_ThisHotkey
Send, {Enter Up}
#UseHook, Off
~Esc::
~Tab::
fSoundPlay := true
if (vRSh)
{
gosub lMainTHQoff2
vRShX := false
vRSh :=0
}
return
;--------------------------------------------------------------------------
;Handling routines the main operation keys - gas, brake, and turns (left and right).
;********** Begin section **********
lUp:
fUDLR := true
Send, {Up Down}
vBoostSpeed := 0
while (GetKeyState("UP", "P"))
{
fKeyUpTimer:=true
sleep %td20_Sleep%
fnGearSpdBrk(cNoneParam, cFnSB_GT)
if (fnGearSpdBrk(cNoneParam, cFnSB_Boost))
continue
else
sleep %td20_Sleep% ; 10 ms
}
Send, {Up UP}
fKeyUpTimer:=false
fUDLR:=false
return
lDown:
fUDLR:=true
Send, {Down Down}
vSharpBrake := 0
while (GetKeyState("Down", "P"))
{
fKeyDnTimer:=true
sleep %td20_Sleep%
fnGearSpdBrk(cNoneParam, cFnSB_GT)
if (fnGearSpdBrk(cNoneParam, cFnSB_Sharp))
continue
else
sleep %td20_Sleep% ; 50 ms
}
Send, {Down Up}
fKeyDnTimer:=false
fUDLR:=false
return
lLeft:
;fUDLR:=true
Send, {Left Down}
fnTurnLR(vGearSpdTimer, 5, 1, "Left")
Send, {Left Up}
;fUDLR:=false
return
lRight:
;fUDLR:=true
Send, {Right Down}
fnTurnLR(vGearSpdTimer, 5, 1, "Right")
Send, {Right Up}
;fUDLR:=false
return
Всё остальное параметризовано, и легко меняется. Колёсико мыши используется т.к. масштабирование и скролл не работает в машине.
3. Скрипт использует большое число таймеров, которые могут сами запускать другие таймеры, но при минимизации игры, остаётся только дежурный таймер, который снижает общую нагрузку.
4. Звуки к скрипту не прилагаются
5. Конфликты с игрой устранены, кодировка исходника на UTF-8, версия AHK - 1.1.15.01, OS Win7 SP1 x64 Ult.
6. При переделке скрипта на другие игры, я не гарантирую его работоспособность.
7. Если что то не понятно или работает не так как вам хочется - спрашивайте тут.
P.S. Комментариев много - разобраться не составит проблемы.
Аттач в сл. посте.
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)