Guest User

GTA V Manual Transmission

a guest
Jan 31st, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.56 KB | None | 0 0
  1. using System;
  2. using GTA;
  3. using GTA.Native;
  4.  
  5. public class Gears : Script {
  6.     Random random = new Random();
  7.  
  8.     public Gears() {
  9.         Tick += OnTick;
  10.         Interval = 0;
  11.     }
  12.  
  13.     void OnTick(object sender, EventArgs e) {
  14.         Ped player = Game.Player.Character;
  15.  
  16.         Vehicle vehicle = player.CurrentVehicle;
  17.  
  18.         if (player.IsInVehicle() && vehicle.Model.IsCar) {
  19.             ulong address = vehicle.GetAddress;
  20.             uint gears = vehicle.CurrentGear;
  21.             float rpm = vehicle.CurrentRPM;
  22.             float clutch = vehicle.Clutch;
  23.             float throttle = vehicle.Throttle;
  24.             float turbo = vehicle.Turbo;
  25.             uint currGear = (0xFFFF0000 & gears) >> 16;
  26.             uint nextGear = 0x0000FFFF & gears;
  27.  
  28.            
  29.             // Park/Reverse. Gear 0. Prevent going forward in gear 0.
  30.             if (currGear == 0 && !Game.IsControlPressed(0, Control.VehicleBrake) && vehicle.Speed < 1.0f) {
  31.                 vehicle.HandbrakeOn = true;
  32.                 vehicle.BrakeLightsOn = true;
  33.             }
  34.             // Forward gears. Prevent reversing.
  35.             else if (currGear > 0 && !Game.IsControlPressed(0, Control.VehicleAccelerate) && Game.IsControlPressed(0, Control.VehicleBrake) && vehicle.Speed < 1.0f)
  36.             {
  37.                 vehicle.HandbrakeOn = true;
  38.                 vehicle.BrakeLightsOn = true;
  39.             }
  40.             else
  41.             {
  42.                 vehicle.HandbrakeOn = false;
  43.             }
  44.            
  45.  
  46.             // Game wants to shift up. Triggered at high RPM, high speed.
  47.             // Desired result: high RPM, same gear (currGear)
  48.             if (currGear < nextGear) {
  49.                 vehicle.CurrentGear = currGear | (currGear << 16);
  50.                 vehicle.CurrentRPM = 1.6f;
  51.                 vehicle.Clutch = 1.0f;
  52.                 vehicle.Throttle = 1.0f;
  53.             }
  54.  
  55.             // Game wants to shift down. Usually triggered when user accelerates
  56.             // while in a too high gear.
  57.             // Desired result: low RPM or stall, even. Stay in current gear!
  58.             // Otherwise: force car to drive anyway to keep RPM up.
  59.             // Current: Game cuts engine power
  60.             if (currGear > nextGear) {
  61.                 vehicle.CurrentGear = currGear | (currGear << 16);
  62.                 vehicle.Clutch = 1.0f;
  63.                 vehicle.Throttle = 1.0f;
  64.                 /*if (currGear == 2) {
  65.                     vehicle.CurrentRPM = Game.GetControlNormal(0, Control.VehicleAccelerate) * 0.40f;
  66.                 }
  67.                 else
  68.                 {
  69.                     vehicle.Clutch = 1.0f;
  70.                     vehicle.Throttle = 1.0f;
  71.                 }*/
  72.             }
  73.            
  74.             // Shift up
  75.             if (Game.IsControlJustPressed(0, Control.VehicleDuck)) {
  76.                 vehicle.CurrentGear = currGear + 1 | (currGear + 1 << 16);
  77.                 vehicle.Clutch = 0.1f;
  78.                 vehicle.Throttle = 0.5f;
  79.             }
  80.  
  81.             // Shift down
  82.             if (Game.IsControlJustPressed(0, Control.VehicleSelectNextWeapon)) {
  83.                 if (currGear > 0) {
  84.                     vehicle.CurrentGear = currGear - 1 | (currGear - 1 << 16);
  85.                     if (vehicle.EngineRunning == false) {
  86.                         vehicle.EngineRunning = true;
  87.                     }
  88.                 }
  89.             }
  90.  
  91.             // Trying stuff
  92.             if (Game.IsControlPressed(0, Control.VehicleAim)) {
  93.                 vehicle.Throttle = 1.0f;
  94.                 vehicle.Clutch = 1.0f;
  95.                 vehicle.CurrentRPM = 2.2f;
  96.             }
  97.            
  98.             string info = "RPM: " + rpm +
  99.                         "\nCurrGear: " + currGear +
  100.                         "\nNextGear: " + nextGear +
  101.                         "\nClutch: " + clutch +
  102.                         "\nThrottle: " + throttle +
  103.                         "\nTurbo: " + turbo +
  104.                         "\nAddress: " + address.ToString("X");
  105.  
  106.             Function.Call(Hash.SET_TEXT_FONT, 0);
  107.             Function.Call(Hash.SET_TEXT_SCALE, 0.4f, 0.4f);
  108.             Function.Call(Hash.SET_TEXT_COLOUR, 255, 255, 255, 255);
  109.             Function.Call(Hash.SET_TEXT_WRAP, 0.0, 1.0);
  110.             Function.Call(Hash.SET_TEXT_CENTRE, 0);
  111.             Function.Call(Hash.SET_TEXT_DROPSHADOW, 0, 0, 0, 0, 0);
  112.             Function.Call(Hash.SET_TEXT_EDGE, 1, 0, 0, 0, 205);
  113.             Function.Call(Hash._SET_TEXT_ENTRY, "STRING");
  114.             Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, info);
  115.             Function.Call(Hash._DRAW_TEXT, 0.01, 0.5);
  116.         }
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment