View difference between Paste ID: ShL88UZK and Eq4rv1vV
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
}