SHOW:
|
|
- or go back to the newest paste.
1 | using System; | |
2 | using System.Windows.Forms; | |
3 | using GTA; | |
4 | ||
5 | public class ExitVehicle : Script | |
6 | { | |
7 | public ExitVehicle() | |
8 | { | |
9 | Tick += OnTick; | |
10 | } | |
11 | ||
12 | const float _HOLD_THRESHOLD = 0.25f; | |
13 | float holdTime = 0; | |
14 | ||
15 | void OnTick(object sender, EventArgs e) | |
16 | { | |
17 | Ped player = Game.Player.Character; | |
18 | ||
19 | if (player.IsAlive && player.IsInVehicle()) | |
20 | { | |
21 | if (Game.IsControlPressed(2, GTA.Control.INPUT_VEH_EXIT)) | |
22 | { | |
23 | holdTime += Game.LastFrameTime; | |
24 | } | |
25 | else if (holdTime > 0) | |
26 | { | |
27 | Vehicle vehicle = player.CurrentVehicle; | |
28 | if (holdTime >= _HOLD_THRESHOLD) | |
29 | { | |
30 | // Exit vehicle, close car door, turn off engine | |
31 | player.Task.LeaveVehicle(vehicle, true); | |
32 | } | |
33 | else | |
34 | { | |
35 | // Exit vehicle, don't close car door, leave engine running (if player is driver) | |
36 | player.Task.LeaveVehicle(vehicle, false); | |
37 | bool isDriver = vehicle.GetPedOnSeat(VehicleSeat.Driver) == player; | |
38 | if (isDriver) | |
39 | { | |
40 | vehicle.EngineRunning = true; | |
41 | } | |
42 | } | |
43 | ||
44 | holdTime = 0; | |
45 | } | |
46 | } | |
47 | } | |
48 | } |