Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using GTA;
- using GTA.Math;
- using GTA.Native;
- using System;
- using System.Windows.Forms;
- public class InitialDIntensifies : Script
- {
- int ExtraNoGripInterval = 10;
- int interval = 10;
- int intervalmilisec;
- bool Tractionhack = false;
- bool hackstatus = false;
- bool CanIntensify=true;
- Keys Key1 =Keys.A;
- Keys Key2 =Keys.D;
- public InitialDIntensifies()
- {
- ScriptSettings config = ScriptSettings.Load(@"scripts\DriftOnDemand.ini");
- if (config != null)
- {
- CanIntensify = config.GetValue<bool>("SETTINGS", "SubtitleWhileDrifting", true);
- Key1 = config.GetValue<Keys>("SETTINGS", "Key1", Keys.A);
- Key2 = config.GetValue<Keys>("SETTINGS", "Key2", Keys.D);
- }
- Tick += OnTick;
- KeyDown += OnKeyDown;
- KeyUp += OnKeyUp;
- }
- void OnKeyUp(object sender, KeyEventArgs e)
- {
- }
- void OnKeyDown(object sender, KeyEventArgs e)
- {
- if((e.KeyCode==Key1 && Game.IsKeyPressed(Key2)) || (e.KeyCode == Key2 && Game.IsKeyPressed(Key1)))
- {
- if (CanWeUse(GetLastVehicle(Game.Player.Character)) && CanWeUse((Game.Player.Character.CurrentVehicle)))
- {
- Tractionhack = !Tractionhack;
- Function.Call(Hash.SET_VEHICLE_REDUCE_GRIP, GetLastVehicle(Game.Player.Character), false);
- }
- }
- }
- void OnTick(object sender, EventArgs e)
- {
- if (Tractionhack && CanWeUse(GetLastVehicle(Game.Player.Character)) && CanWeUse((Game.Player.Character.CurrentVehicle)) && !GetLastVehicle(Game.Player.Character).IsInAir)
- {
- if (Game.IsControlPressed(2, GTA.Control.VehicleAccelerate) && (GetLastVehicle(Game.Player.Character).Speed < 10f || Math.Abs(Function.Call<Vector3>(Hash.GET_ENTITY_SPEED_VECTOR, GetLastVehicle(Game.Player.Character), true).X) > 2f))
- {
- Function.Call(Hash.APPLY_FORCE_TO_ENTITY, GetLastVehicle(Game.Player.Character), 3, 0f, 0.2f, 0f, 0f, 0f, 0f, 0, true, true, true, true, true);
- }
- if (Game.IsControlPressed(2, GTA.Control.VehicleBrake) && (GetLastVehicle(Game.Player.Character).Speed > 2f))
- {
- Function.Call(Hash.APPLY_FORCE_TO_ENTITY, GetLastVehicle(Game.Player.Character), 3, 0f, -0.2f, 0f, 0f, 0f, 0f, 0, true, true, true, true, true);
- }
- if (Game.IsControlPressed(2, GTA.Control.VehicleHandbrake) && !Game.IsControlPressed(2, GTA.Control.VehicleAccelerate))
- {
- Vector3 veh = Function.Call<Vector3>(Hash.GET_ENTITY_SPEED_VECTOR, GetLastVehicle(Game.Player.Character), true) * -0.05f;
- Function.Call(Hash.APPLY_FORCE_TO_ENTITY, GetLastVehicle(Game.Player.Character), 3, veh.X, veh.Y / 4, 0f, 0f, 0f, 0f, 0, true, true, true, true, true);
- }
- if (GetLastVehicle(Game.Player.Character).Speed > 5f && Function.Call<Vector3>(Hash.GET_ENTITY_SPEED_VECTOR, GetLastVehicle(Game.Player.Character), true).Y > 0f)
- {
- if (Game.IsControlPressed(2, GTA.Control.VehicleMoveLeftOnly) && Function.Call<Vector3>(Hash.GET_ENTITY_ROTATION_VELOCITY, GetLastVehicle(Game.Player.Character)).Z < 0.8f)
- {
- Function.Call(Hash.APPLY_FORCE_TO_ENTITY, GetLastVehicle(Game.Player.Character), 3, -0.2f, 0f, 0f, 0f, 2f, -0.2f, 0, true, true, true, true, true);
- }
- if (Game.IsControlPressed(2, GTA.Control.VehicleMoveRightOnly) && Function.Call<Vector3>(Hash.GET_ENTITY_ROTATION_VELOCITY, GetLastVehicle(Game.Player.Character)).Z > -0.8f)
- {
- Function.Call(Hash.APPLY_FORCE_TO_ENTITY, GetLastVehicle(Game.Player.Character), 3, 0.2f, 0f, 0f, 0f, 2f, -0.2f, 0, true, true, true, true, true);
- }
- }
- if (Game.IsKeyPressed(Keys.ShiftKey))
- {
- ExtraNoGripInterval = ExtraNoGripInterval + 10;
- DisplayHelpTextThisFrame("NoGrip interval set to "+ExtraNoGripInterval);
- }
- if (Game.IsKeyPressed(Keys.ControlKey) && ExtraNoGripInterval>0)
- {
- ExtraNoGripInterval = ExtraNoGripInterval - 10;
- DisplayHelpTextThisFrame("NoGrip interval set to " + ExtraNoGripInterval);
- }
- }
- if (Game.GameTime > intervalmilisec + interval)
- {
- intervalmilisec = Game.GameTime;
- if (Tractionhack && (CanWeUse(GetLastVehicle(Game.Player.Character)) && (Function.Call<bool>(Hash.IS_THIS_MODEL_A_CAR, GetLastVehicle(Game.Player.Character).Model)) || Function.Call<bool>(Hash.IS_THIS_MODEL_A_QUADBIKE, GetLastVehicle(Game.Player.Character).Model)))
- {
- if (CanIntensify)
- {
- UI.ShowSubtitle("~g~(Initial D intensifies)", 100+ ExtraNoGripInterval);
- }
- if (hackstatus)
- {
- Function.Call(Hash.SET_VEHICLE_REDUCE_GRIP, GetLastVehicle(Game.Player.Character), false);
- }
- else
- {
- intervalmilisec = intervalmilisec + ExtraNoGripInterval;
- Function.Call(Hash.SET_VEHICLE_REDUCE_GRIP, GetLastVehicle(Game.Player.Character), true);
- }
- hackstatus = !hackstatus;
- }
- }
- }
- bool CanWeUse(Entity entity)
- {
- return entity != null && entity.Exists();
- }
- int RandomInt(int min, int max)
- {
- max++;
- return Function.Call<int>(GTA.Native.Hash.GET_RANDOM_INT_IN_RANGE, min, max);
- }
- void DisplayHelpTextThisFrame(string text)
- {
- Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");
- Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, text);
- Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);
- }
- Vehicle GetLastVehicle(Ped RecieveOrder)
- {
- Vehicle vehicle = null;
- if (GTA.Native.Function.Call<Vehicle>(GTA.Native.Hash.GET_VEHICLE_PED_IS_IN, RecieveOrder, true) != null)
- {
- vehicle = GTA.Native.Function.Call<Vehicle>(GTA.Native.Hash.GET_VEHICLE_PED_IS_IN, RecieveOrder, true);
- if (vehicle.IsAlive)
- {
- return vehicle;
- }
- }
- else
- {
- if (GTA.Native.Function.Call<Vehicle>(GTA.Native.Hash.GET_VEHICLE_PED_IS_IN, RecieveOrder, false) != null)
- {
- vehicle = GTA.Native.Function.Call<Vehicle>(GTA.Native.Hash.GET_VEHICLE_PED_IS_IN, RecieveOrder, false);
- if (vehicle.IsAlive)
- {
- return vehicle;
- }
- }
- }
- return vehicle;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement