-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGame_NFS_SHIFT.ahk
144 lines (126 loc) · 5.85 KB
/
Game_NFS_SHIFT.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#Include <_COMMON_SETTINGS_>
Menu, Tray, Icon
GroupAdd, SHIFT, ahk_exe SHIFT.exe
;NFS - SHIFT
;Для NFS Shift нужен Input режим, он уже установлен в _SETTINGS_FOR_ALL_SCRIPTS_.ahk
;Для него нету задержек нажатия кнопок, поэтому используем Sleep
;Обязательно нужно ставить $ перед горячей клавишей или объявить #UseHook, уже установлен в _SETTINGS_FOR_ALL_SCRIPTS_.ahk
;#UseHook, On ; Turning this directive ON is equivalent to using the $ prefix in the definition of each affected hotkey.
KeyDelayLong := 600 ; минимально рабочее значение 600мс; для перехода между меню, когда игра воспроизводит анимацию
KeyDelayShort := 100 ; для перебора пунктов в одном меню
MenuDelay := 900 ; ожидание появления меню, фактически задержка будет равна KeyDelayLong+MenuDelay
;==============================================================================================
;Joystick POV to Arrows - Переназначаем POV в стрелочки
#Include <JoyPOV2Key> ; <- See comments in JoyPOV2Key function
WatchPOV := Func("JoyPOV2Key").Bind("Up", "Down", "Left", "Right")
SetTimer, %WatchPOV%, 10
;==============================================================================================
SendKey(Key, KeyDelay)
{
Send, %Key%
Sleep, %KeyDelay%
}
SendKeyIfAllowed(Key, IsShortDelay := false)
{
global KeyDelayLong, KeyDelayShort, IsDisabledTimer
if (!IsDisabledTimer) ;обрабатывать нажатие, только если работает переназначение POV в стрелочки
if (IsShortDelay)
SendKey(Key, KeyDelayShort)
else
SendKey(Key, KeyDelayLong)
}
ResetCarTuning()
{
global MenuDelay
SendKeyIfAllowed("{Enter}")
Sleep, %MenuDelay%
Loop, 4
SendKeyIfAllowed("{Down}", true)
;---------------------------------
SendKeyIfAllowed("{Enter}")
Sleep, %MenuDelay%
SendKeyIfAllowed("c")
SendKeyIfAllowed("{Down}")
SendKeyIfAllowed("{Enter}")
Loop, 2 {
SendKeyIfAllowed("{Esc}")
if (A_Index = 1)
Sleep, %MenuDelay%
else
Sleep, 500
}
;---------------------------------
Loop, 3
SendKeyIfAllowed("{Up}", true)
SendKeyIfAllowed("{Enter}")
SoundBeep
}
SelectMenuAndConfirm()
{
SendKeyIfAllowed("{Enter}")
SendKeyIfAllowed("{Down}", true)
SendKeyIfAllowed("{Enter}")
}
;==============================================================================================
#IfWinActive, ahk_group SHIFT
Joy1:: SendKeyIfAllowed("{Enter}") ;A
Joy2:: SendKeyIfAllowed("{Esc}") ;B
Joy3:: SelectMenuAndConfirm() ;X
Joy4:: ResetCarTuning() ;Y ;сбросить настройки машины, чтобы убрать ошибки настроек по умолчанию
Joy6:: ;Right Bumper ;отключение переназначения POV в стрелочки и кнопок [A] [B] [Y]
if (IsDisabledTimer := !IsDisabledTimer) {
Loop, 2
SoundBeep
SetTimer, %WatchPOV%, Off
} else {
SoundBeep
SetTimer, %WatchPOV%, On
}
return
#IfWinNotExist, ahk_group SHIFT
Joy8:: ;Start (RButton)
;IfWinNotExist, ahk_exe SHIFT Camera Control.exe ; я поставил мод от шатания головы (на распакованную игру) и мод для FOV, и эта программка теперь не нужна
;Run, C:\Users\Fixer\Desktop\SHIFT Camera Control.lnk
;Run, "C:\Users\Fixer\Desktop\Need For Speed - SHIFT.lnk"
Run, "E:\GAMES\Need For Speed - SHIFT\SHIFT.exe" -loose -skipmenu, E:\GAMES\Need For Speed - SHIFT
return
;==============================================================================================
BuyOneUpgrade() ; последовательность клавиш для покупки апгрейда машины и перехода на следующий пункт меню
{
Loop, 2 {
SendKeyIfAllowed("{Enter}")
SendKeyIfAllowed("{Down}", true)
}
}
BuyUpgrades(ItemCount) ; количество указывает, сколько апгрейдов нужно купить
{
SoundBeep
Loop, %ItemCount%
BuyOneUpgrade()
}
#IfWinActive, ahk_group SHIFT
Numpad1:: BuyUpgrades(1)
Numpad2:: BuyUpgrades(2)
Numpad3:: BuyUpgrades(3)
Numpad4:: BuyUpgrades(4)
Numpad5:: BuyUpgrades(5)
Numpad6:: BuyUpgrades(6)
Numpad7:: BuyUpgrades(7)
#IfWinNotActive, ahk_group SHIFT
F1:: ShowHelpWindow("
(LTrim
POV -> [Стрелки]
Start (RButton) -> Start game.
A -> [Enter]
B -> [Esc]
X -> Select menu and confirm.
Y -> Reset car tuning - Сбросить настройки машины (если ее выбрали первый раз). Убирает ошибки настроек по умолчанию.
... Нажимать в 'Car Garage'->'MyCars' (когда модель машины будет загружена игрой).
... Скрипт подтвердит выбор машины и сделает остальную грязную работу и подаст звуковой сигнал окончания.
Right Bumper -> Отключение переназначения [POV] в стрелочки, кнопок [A] [B] [Y], [Numpad1-9].
... Обязательно во время езды, иначе может появится меню.
Numpad1-9 -> Покупка\продажа апгрейдов (цифра - количество).
... Нажимать, когда уже выделена строка для покупки любого апгрейда.
)")
!x:: ExitApp
!z:: Reload