@@ -23,12 +23,14 @@ public enum signalTypes
23
23
hazard
24
24
} ;
25
25
public static Keys CurrentWindowKey , PassengerWindowKey , DriverRearWindowKey , PassengerRearWindowKey , AllWindowsKey , HoodKey , TrunkKey , InteriorLightKey , ToggleRadioWheelKey , ToggleMobileRadioKey , ToggleMinimapKey , OpenDoorKey , SeatbeltKey , ShuffleSeatKey , LeftSignalKey , RightSignalKey , HazardsKey , RedLaserKey , GreenLaserKey , DropWeaponKey ;
26
+ public static int vehMinimapButton , vehRadioWheelButton , HazardsButton , LeftSignalButton , RightSignalButton , SeatbeltButton , InteriorLightButton , CurrentWindowButton , PassengerWindowButton , DriverRearWindowButton , PassengerRearWindowButton , AllWindowsButton , HoodButton , TrunkButton , OpenDoorButton , ShuffleSeatButton , MinimapButton , MobileRadioButton , RadioWheelButton , RedLaserButton , GreenLaserButton , DropWeaponButton ;
26
27
private readonly IniFile settingsINI ;
27
28
public static bool LightOff = true ;
28
29
public static bool MMoriginalEnabled , MMbigMapEnabled , MMzoomoutEnabled , MMfullEnabled , MMhiddenEnabled , enableVehicleControls , enableMinimapControls , enableMobileRadio , enablePhoneColor = true ;
29
30
public static bool leftSignalActive , rightSignalActive , hazardsActive , radioWheelDisabled , mobileRadio , beltedUp , isCurrentlyShuffling , window0down , window1down , window2down , window3down , AWindowDown , hoodOpen , trunkOpen , door0Open , door1Open , door2Open , door3Open , initialized = false ;
30
31
public static mapStates mapState = mapStates . original ;
31
32
public static int phoneColorIndex , MMsafetyVal = 0 ;
33
+ public static int [ ] ControlsToDisable = { 15 , 47 , 52 , 58 , 85 , 115 , 174 , 261 , 14 , 46 , 54 , 74 , 101 , 103 , 104 , 119 , 175 , 262 , 344 , 355 , 356 , 27 , 42 , 172 , 19 , 20 , 43 , 48 , 173 , 18 , 21 , 70 , 73 , 105 , 114 , 120 , 132 , 136 , 137 , 141 , 154 , 176 , 258 , 264 , 337 , 345 , 353 , 354 , 357 , 45 , 57 , 80 , 140 , 177 , 263 , 23 , 49 , 53 , 56 , 75 , 144 , 145 , 0 , 244 , 28 , 36 , 86 , 113 , 350 , 351 , 352 , 7 , 26 , 29 , 50 , 79 , 93 , 121 } ;
32
34
//LASER COMPONENT HASHES
33
35
public static WeaponComponentHash laserhash = ( WeaponComponentHash ) 2455710022 ; //COMPONENT_AT_AR_LASER
34
36
public static WeaponComponentHash redlaserhash = ( WeaponComponentHash ) 1073457922 ; //COMPONENT_AT_AR_LASER_RED
@@ -69,6 +71,96 @@ private void OnTick(object sender, EventArgs e){
69
71
}
70
72
if ( beltedUp ) { Function . Call ( Hash . DISABLE_CONTROL_ACTION , 0 , 75 , true ) ; }
71
73
if ( radioWheelDisabled ) { Function . Call ( Hash . DISABLE_CONTROL_ACTION , 0 , 85 , true ) ; }
74
+ //CONTROLLER SUPPORT
75
+ if ( Game . Player . Character . CurrentVehicle != null && enableVehicleControls && ! Function . Call < bool > ( Hash . IS_USING_KEYBOARD_AND_MOUSE , 0 ) ) { //if In car, car controls enabled AND using controller
76
+ if ( Function . Call < bool > ( Hash . IS_CONTROL_PRESSED , 2 , 203 ) ) //if holding X on controller
77
+ {
78
+ DisableFuckingEverything ( ) ;
79
+
80
+ if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , AllWindowsButton ) )
81
+ {
82
+ ToggleAllWindows ( Game . Player . Character . CurrentVehicle ) ;
83
+ }
84
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , InteriorLightButton ) )
85
+ {
86
+ ToggleInteriorLight ( Game . Player . Character . CurrentVehicle , LightOff ) ;
87
+ }
88
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , CurrentWindowButton ) )
89
+ {
90
+ ToggleCurrentWindow ( Game . Player . Character . CurrentVehicle ) ;
91
+ }
92
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , PassengerWindowButton ) )
93
+ {
94
+ DriverWindowAccess ( Game . Player . Character . CurrentVehicle , 1 ) ;
95
+ }
96
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , SeatbeltButton ) )
97
+ {
98
+ TogglePlayerSeatbelt ( Game . Player . Character . CurrentVehicle ) ;
99
+ }
100
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , TrunkButton ) )
101
+ {
102
+ ToggleTrunk ( Game . Player . Character . CurrentVehicle ) ;
103
+ }
104
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , HoodButton ) )
105
+ {
106
+ ToggleHood ( Game . Player . Character . CurrentVehicle ) ;
107
+ }
108
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , vehMinimapButton ) )
109
+ {
110
+ if ( enableMinimapControls && MMsafetyVal > 1 ) { CycleMinimapState ( ) ; }
111
+ }
112
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , OpenDoorButton ) )
113
+ {
114
+ OpenLocalDoor ( Game . Player . Character . CurrentVehicle ) ;
115
+ }
116
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , ShuffleSeatButton ) )
117
+ {
118
+ ShuffleToNextSeat ( Game . Player . Character . CurrentVehicle ) ;
119
+ }
120
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , DriverRearWindowButton ) )
121
+ {
122
+ DriverWindowAccess ( Game . Player . Character . CurrentVehicle , 2 ) ;
123
+ }
124
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , PassengerRearWindowButton ) )
125
+ {
126
+ DriverWindowAccess ( Game . Player . Character . CurrentVehicle , 3 ) ;
127
+ }
128
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , vehRadioWheelButton ) )
129
+ {
130
+ if ( enableMobileRadio ) { ToggleRadioWheel ( ) ; }
131
+ }
132
+
133
+ }
134
+ } else if ( ! Function . Call < bool > ( Hash . IS_USING_KEYBOARD_AND_MOUSE , 0 ) ) //Player is on foot
135
+ {
136
+ if ( Function . Call < bool > ( Hash . IS_CONTROL_PRESSED , 2 , 205 ) ) //if holding LB on controller
137
+ {
138
+ if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , MinimapButton ) )
139
+ {
140
+ if ( enableMinimapControls && MMsafetyVal > 1 ) { CycleMinimapState ( ) ; }
141
+ }
142
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , MobileRadioButton ) )
143
+ {
144
+ if ( enableMobileRadio ) { TogglePlayerMobileRadio ( ) ; }
145
+ }
146
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , RadioWheelButton ) )
147
+ {
148
+ if ( enableMobileRadio ) { ToggleRadioWheel ( ) ; }
149
+ }
150
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , RedLaserButton ) )
151
+ {
152
+ ToggleLaser ( true ) ;
153
+ }
154
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , GreenLaserButton ) )
155
+ {
156
+ ToggleLaser ( false ) ;
157
+ }
158
+ else if ( Function . Call < bool > ( Hash . IS_CONTROL_JUST_PRESSED , 2 , DropWeaponButton ) )
159
+ {
160
+ DropWeapon ( ) ;
161
+ }
162
+ }
163
+ }
72
164
}
73
165
void OnKeyDown ( object sender , KeyEventArgs e ) { //ANY TIME
74
166
switch ( e . KeyCode ) {
@@ -81,12 +173,6 @@ void OnKeyDown(object sender, KeyEventArgs e){//ANY TIME
81
173
case var value when value == ToggleMinimapKey :
82
174
if ( enableMinimapControls && MMsafetyVal > 1 ) { CycleMinimapState ( ) ; }
83
175
break ;
84
- case var value when value == OpenDoorKey :
85
- if ( enableVehicleControls ) { OpenLocalDoor ( Game . Player . Character . CurrentVehicle ) ; }
86
- break ;
87
- case var value when value == ShuffleSeatKey :
88
- if ( enableVehicleControls ) { ShuffleToNextSeat ( Game . Player . Character . CurrentVehicle ) ; }
89
- break ;
90
176
case var value when value == RedLaserKey :
91
177
ToggleLaser ( true ) ;
92
178
break ;
@@ -141,6 +227,12 @@ void OnKeyDown(object sender, KeyEventArgs e){//ANY TIME
141
227
case var value when value == TrunkKey :
142
228
ToggleTrunk ( Game . Player . Character . CurrentVehicle ) ;
143
229
break ;
230
+ case var value when value == OpenDoorKey :
231
+ OpenLocalDoor ( Game . Player . Character . CurrentVehicle ) ;
232
+ break ;
233
+ case var value when value == ShuffleSeatKey :
234
+ ShuffleToNextSeat ( Game . Player . Character . CurrentVehicle ) ;
235
+ break ;
144
236
}
145
237
}
146
238
}
@@ -175,6 +267,28 @@ public static void LoadExternalSettings(IniFile settingsINI){
175
267
RedLaserKey = settingsINI . Read < Keys > ( "RedLaserKey" , "KEYBINDS" , Keys . OemSemicolon ) ;
176
268
GreenLaserKey = settingsINI . Read < Keys > ( "GreenLaserKey" , "KEYBINDS" , Keys . OemQuotes ) ;
177
269
DropWeaponKey = settingsINI . Read < Keys > ( "DropWeaponKey" , "KEYBINDS" , Keys . L ) ;
270
+ vehMinimapButton = settingsINI . Read < int > ( "vehMinimapButton" , "CONTROLLER_VEHICLE" , 217 ) ; //BACK BY DEFAULT
271
+ vehRadioWheelButton = settingsINI . Read < int > ( "vehRadioWheelButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
272
+ HazardsButton = settingsINI . Read < int > ( "HazardsButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
273
+ LeftSignalButton = settingsINI . Read < int > ( "LeftSignalButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
274
+ RightSignalButton = settingsINI . Read < int > ( "RightSignalButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
275
+ SeatbeltButton = settingsINI . Read < int > ( "SeatbeltButton" , "CONTROLLER_VEHICLE" , 191 ) ; //A BY DEFAULT
276
+ InteriorLightButton = settingsINI . Read < int > ( "InteriorLightButton" , "CONTROLLER_VEHICLE" , 188 ) ; //DPAD UP BY DEFAULT
277
+ CurrentWindowButton = settingsINI . Read < int > ( "CurrentWindowButton" , "CONTROLLER_VEHICLE" , 189 ) ; //DPAD LEFT BY DEFAULT
278
+ PassengerWindowButton = settingsINI . Read < int > ( "PassengerWindowButton" , "CONTROLLER_VEHICLE" , 190 ) ; //DPAD RIGHT BY DEFAULT
279
+ DriverRearWindowButton = settingsINI . Read < int > ( "DriverRearWindowButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
280
+ PassengerRearWindowButton = settingsINI . Read < int > ( "PassengerRearWindowButton" , "CONTROLLER_VEHICLE" , 9999 ) ; //NONE BY DEFAULT
281
+ AllWindowsButton = settingsINI . Read < int > ( "AllWindowsButton" , "CONTROLLER_VEHICLE" , 187 ) ; //DPAD DOWN BY DEFAULT
282
+ HoodButton = settingsINI . Read < int > ( "HoodButton" , "CONTROLLER_VEHICLE" , 192 ) ; //Y BY DEFAULT
283
+ TrunkButton = settingsINI . Read < int > ( "TrunkButton" , "CONTROLLER_VEHICLE" , 194 ) ; //B BY DEFAULT
284
+ OpenDoorButton = settingsINI . Read < int > ( "OpenDoorButton" , "CONTROLLER_VEHICLE" , 209 ) ; //L3 BY DEFAULT
285
+ ShuffleSeatButton = settingsINI . Read < int > ( "ShuffleSeatButton" , "CONTROLLER_VEHICLE" , 210 ) ; //R3 BY DEFAULT
286
+ MinimapButton = settingsINI . Read < int > ( "MinimapButton" , "CONTROLLER_ON_FOOT" , 217 ) ; //BACK BY DEFAULT
287
+ MobileRadioButton = settingsINI . Read < int > ( "MobileRadioButton" , "CONTROLLER_ON_FOOT" , 189 ) ; //DPAD LEFT BY DEFAULT
288
+ RadioWheelButton = settingsINI . Read < int > ( "RadioWheelButton" , "CONTROLLER_ON_FOOT" , 190 ) ; //DPAD RIGHT BY DEFAULT
289
+ RedLaserButton = settingsINI . Read < int > ( "RedLaserButton" , "CONTROLLER_ON_FOOT" , 191 ) ; //A BY DEFAULT
290
+ GreenLaserButton = settingsINI . Read < int > ( "GreenLaserButton" , "CONTROLLER_ON_FOOT" , 194 ) ; //B BY DEFAULT
291
+ DropWeaponButton = settingsINI . Read < int > ( "DropWeaponButton" , "CONTROLLER_ON_FOOT" , 203 ) ; //X BY DEFAULT
178
292
}
179
293
#region MINIMAP FUNCTIONS
180
294
public static void MinimapSafetyCheck ( ) {
@@ -561,5 +675,12 @@ public static void DropWeapon()
561
675
}
562
676
}
563
677
#endregion
678
+ public static void DisableFuckingEverything ( )
679
+ {
680
+ for ( int i = 0 ; i < ControlsToDisable . Length ; i ++ )
681
+ {
682
+ Function . Call ( Hash . DISABLE_CONTROL_ACTION , 0 , ControlsToDisable [ i ] , 0 ) ;
683
+ }
684
+ }
564
685
}
565
686
}
0 commit comments