public BackupVehicleHandling(VehicleHandling copy) { _address = copy.Address; _acceleration = copy.Acceleration; _brakeForce = copy.BrakeForce; _handBrakeForce = copy.HandBrakeForce; _tractionCurveMin = copy.TractionCurveMin; _collisionDamage = copy.CollisionDamage; _weaponDamage = copy.WeaponDamage; _deformationDamage = copy.DeformationDamage; _engineDamage = copy.EngineDamage; _upShift = copy.UpShift; _suspensionForce = copy.SuspensionForce; }
private void WriteVehicleHandling(VehicleHandling handling) { builder.Write(handling.Mass); builder.Write(handling.TurnMass); builder.Write(handling.DragCoefficient); builder.Write(handling.CenterOfMass); builder.Write(handling.PercentSubmerged); builder.Write(handling.TractionMultiplier); builder.Write(handling.DriveType); builder.Write(handling.EngineType); builder.Write(handling.NumberOfGears); builder.Write(handling.EngineAcceleration); builder.Write(handling.EngineInertia); builder.Write(handling.MaxVelocity); builder.Write(handling.BrakeDeceleration); builder.Write(handling.BrakeBids); builder.Write(handling.Abs); builder.Write(handling.SteeringLock); builder.Write(handling.TractionLoss); builder.Write(handling.TractionBias); builder.Write(handling.SuspensionForceLevel); builder.Write(handling.SuspensionDampening); builder.Write(handling.SuspensionHighSpeedDampening); builder.Write(handling.SuspennsionUpperLimit); builder.Write(handling.SuspenionLowerLimit); builder.Write(handling.SuspensionFrontRearBias); builder.Write(handling.SuspensionAntiDiveMultiplier); builder.Write(handling.CollisionDamageMultiplier); builder.Write(handling.ModelFlags); builder.Write(handling.HandlingFlags); builder.Write(handling.SeatOffsetDistance); builder.Write(handling.AnimGroup); }
private static void HandlingValues() { if (_realHandlingNames == null || _realHandlingNames.Count <= 0) { throw new Exception("Real handling names are null"); } var result = new Dictionary <uint, HandlingResult>(); var sw = new Stopwatch(); sw.Start(); var directory = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "vehicle-handlings")); if (!directory.Exists) { Console.WriteLine($"Path {Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "vehicle-handlings")} is invalid"); return; } var files = directory.GetFiles(); foreach (var fileInfo in files) { var fileContent = File.ReadAllText(fileInfo.FullName); var doc = new XmlDocument(); doc.LoadXml(fileContent); AddJsonNetRootAttribute(doc); var json = JsonConvert.SerializeXmlNode(doc, Formatting.Indented); var vehicleHandling = VehicleHandling.FromJson(json); if (vehicleHandling == null) { throw new Exception($"Couldn't convert meta file in file {fileInfo.FullName}."); } var handlingHash = GTA5Hasher.GetHashKey(vehicleHandling.CHandlingDataMgr.HandlingData.Item.HandlingName); var vehicleModelsWithHandling = _realHandlingNames.Where(d => d.Value == handlingHash).Select(v => v.Key).ToList(); if (vehicleModelsWithHandling.Count <= 0) { continue; } var handling = vehicleHandling.CHandlingDataMgr.HandlingData.Item; var handlingResult = new HandlingResult { MonetaryValue = int.Parse(handling.NMonetaryValue.Value), InitialDriveGears = int.Parse(handling.NInitialDriveGears.Value), CollisionDamageMult = float.Parse(handling.FCollisionDamageMult.Value, CultureInfo.InvariantCulture.NumberFormat), EngineDamageMult = float.Parse(handling.FEngineDamageMult.Value, CultureInfo.InvariantCulture.NumberFormat), }; foreach (var vehicleModel in vehicleModelsWithHandling) { result.Add(vehicleModel, handlingResult); } } File.WriteAllText("addonVehiclesHandling.json", JsonConvert.SerializeObject(result, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); sw.Stop(); Console.WriteLine($"Converted handling values in {sw.ElapsedMilliseconds} ms."); }
internal static void Main(string[] args) { Console.SetWindowSize(Console.WindowWidth, 35); Console.Title = $"BlyadTheftAuto@{System.Environment.UserName}"; Console.ForegroundColor = ConsoleColor.White; Console.WriteWatermark(); Console.CursorVisible = false; Features.Add(new BoolFeature("Master Toggle", Keys.MButton)); Features.Add(new BoolFeature("God Mode", Keys.NumPad0)); Features.Add(new BoolFeature("Super Bullets", Keys.NumPad1)); //damage, bullet damage, bullet amount, range, no spinup, muzzle velocity Features.Add(new BoolFeature("Never Wanted", Keys.NumPad2)); Features.Add(new BoolFeature("Car God Mode", Keys.NumPad3)); Features.Add(new BoolFeature("Rank Boost", Keys.NumPad4)); Features.Add(new EventFeature("Teleport", Teleport, Keys.NumPad5)); Features.Add(new BoolFeature("Anti NPC", Keys.NumPad6)); Features.Add(new BoolFeature("No Spread", Keys.NumPad7)); Features.Add(new BoolFeature("No Recoil", Keys.NumPad8)); Features.Add(new BoolFeature("Fast Reload", Keys.NumPad9)); Features.Add(new BoolFeature("Super Jump", Keys.F5)); Features.Add(new BoolFeature("Explosive Melee", Keys.F6)); Features.Add(new BoolFeature("Explosive Ammo", Keys.F7)); Features.Add(new BoolFeature("Fire Ammo", Keys.F8)); Features.Add(new EventFeature("Teleport High", Teleport2, Keys.F9)); Features.Add(new BoolFeature("Rainbow Vehicle", Keys.F11)); Features.Add(new EventFeature("Suicide", Suicide, Keys.F12)); Features.Add(new EventFeature("Stop Boost", StopBoost, Keys.E)); Features.Add(new IntFeature("Acceleration", Keys.Up, Keys.Down, 1, 1, 10)); Features.Add(new IntFeature("Brake Force", Keys.Right, Keys.Left, 1, 1, 10)); Features.Add(new IntFeature("Traction Curve", Keys.Add, Keys.Subtract, 1, 1, 5)); Features.Add(new IntFeature("Suspension Force", Keys.Multiply, Keys.Divide, 1, 0, 2)); Features.Add(new IntFeature("Shift Rate", Keys.Home, Keys.End, 1, 1, 25)); Features.Add(new IntFeature("Run/Swim Speed", Keys.Insert, Keys.Delete, 1, 1, 5)); Features.Add(new IntFeature("Wanted Level", Keys.F3, Keys.F4, 1, 0, 5, ChangeWantedLevel)); Features.Add(new EventFeature("Save Position", SavePosition, Keys.XButton1)); Features.Add(new EventFeature("Set Preset", SetPreset, Keys.XButton2)); TeleportPresets = Settings.GetTeleportPresets(); _teleportPreset = new IntFeature("Teleport Preset", Keys.OemPeriod, Keys.Oemcomma, 1, 0, TeleportPresets.Count - 1); while (BlyadTheftAuto.Memory is null) { Thread.Sleep(100); Process process; try { process = Process.GetProcessesByName(BlyadTheftAuto.ProcessName).FirstOrDefault(); if (process == null) { continue; } } catch { continue; } BlyadTheftAuto.Memory = new ProcessMemory(process); //BlyadTheftAuto.Game = new PatternScan(BlyadTheftAuto.Memory, "GTA5.exe"); } Console.WriteLine("\n Offsets:"); Console.WriteOffset("World", SignatureManager.GetWorld().Subtract(BlyadTheftAuto.Memory.MainModule.BaseAddress)); //Console.WriteOffset("Ammo", AmmoPtr = new System.IntPtr(0x0F71C38)); //Console.WriteOffset("Reload", ReloadPtr = new System.IntPtr(0x0F71C7D)); World = new World(SignatureManager.GetWorld()); KeyThread.Start(); InfoThread.Start(); Console.WriteNotification("\n "); double rainbow = 0; while (Memory.IsProcessRunning) { rainbow += 0.01; if (rainbow >= 1) { rainbow = 0; } var localPlayer = World.GetLocalPlayer(); var info = localPlayer.GetPlayerInfo(); var weapon = localPlayer.GetWeapon(); var vehicle = localPlayer.GetVehicle(); var vehicleColors = vehicle.GetColors(); var vehicleHandling = vehicle.GetHandling(); if (Features.ByName <BoolFeature>("Rainbow Vehicle").Value) { var clr = GetRainbow(rainbow); vehicleColors.PrimaryRed = clr.R; vehicleColors.PrimaryGreen = clr.G; vehicleColors.PrimaryBlue = clr.B; vehicleColors.SecondaryRed = clr.R; vehicleColors.SecondaryGreen = clr.G; vehicleColors.SecondaryBlue = clr.B; } if (_currentWeapon == null) { _currentWeapon = weapon; } if (_backupWeapon == null) { _backupWeapon = new BackupWeapon(_currentWeapon); } if (_currentVehicleHandling == null) { _currentVehicleHandling = vehicleHandling; } if (_backupVehicleHandling == null) { _backupVehicleHandling = new BackupVehicleHandling(_currentVehicleHandling); } if (_backupWeapon.NameHash != weapon.NameHash) { _currentWeapon.Restore(_backupWeapon); _currentWeapon = weapon; _backupWeapon = new BackupWeapon(_currentWeapon); } if (_backupVehicleHandling.Address != vehicleHandling.Address) { _currentVehicleHandling.Restore(_backupVehicleHandling); _currentVehicleHandling = vehicleHandling; _backupVehicleHandling = new BackupVehicleHandling(_currentVehicleHandling); } localPlayer.GodMode = Features.ByName <BoolFeature>("God Mode").Value; localPlayer.CanBeRagdolled = !Features.ByName <BoolFeature>("God Mode").Value; localPlayer.HasSeatBelt = Features.ByName <BoolFeature>("God Mode").Value; if (Features.ByName <BoolFeature>("Never Wanted").Value) { info.WantedLevel = 0; } var carGodMode = Features.ByName <BoolFeature>("Car God Mode").Value; vehicle.GodMode = carGodMode; vehicleHandling.CollisionDamage = carGodMode ? 0.0f : 1; vehicleHandling.EngineDamage = carGodMode ? 0.0f : 1; vehicleHandling.WeaponDamage = carGodMode ? 0.0f : 1; vehicleHandling.DeformationDamage = carGodMode ? 0.0f : 1; if (carGodMode) { vehicle.BulletproofTires = true; } weapon.BatchSpread = Features.ByName <BoolFeature>("No Spread").Value ? 0.0f : _backupWeapon.BatchSpread; weapon.Spread = Features.ByName <BoolFeature>("No Spread").Value ? 0.0f : _backupWeapon.Spread; weapon.Recoil = Features.ByName <BoolFeature>("No Recoil").Value ? 0.0f : _backupWeapon.Recoil; info.RunSpeed = Features.ByName <IntFeature>("Run/Swim Speed").Value; info.SwimSpeed = Features.ByName <IntFeature>("Run/Swim Speed").Value; vehicleHandling.Acceleration = Features.ByName <IntFeature>("Acceleration").Value *_backupVehicleHandling.Acceleration; vehicleHandling.BrakeForce = Features.ByName <IntFeature>("Brake Force").Value *_backupVehicleHandling.BrakeForce; vehicleHandling.HandBrakeForce = Features.ByName <IntFeature>("Brake Force").Value *_backupVehicleHandling.HandBrakeForce; vehicleHandling.TractionCurveMin = Features.ByName <IntFeature>("Traction Curve").Value *_backupVehicleHandling.TractionCurveMin; vehicleHandling.SuspensionForce = Features.ByName <IntFeature>("Suspension Force").Value *_backupVehicleHandling.SuspensionForce; var frameFlags = info.FrameFlags; if (Features.ByName <BoolFeature>("Super Jump").Value) { frameFlags |= 1 << 14; } if (Features.ByName <BoolFeature>("Explosive Melee").Value) { frameFlags |= 1 << 13; } if (Features.ByName <BoolFeature>("Fire Ammo").Value) { frameFlags |= 1 << 12; } if (Features.ByName <BoolFeature>("Explosive Ammo").Value) { frameFlags |= 1 << 11; } info.FrameFlags = frameFlags; if (Features.ByName <BoolFeature>("Rank Boost").Value&& !Features.ByName <BoolFeature>("Never Wanted").Value) { if (info.WantedLevel >= 5) { info.WantedLevel = 0; } else { info.WantedLevel = 5; } Thread.Sleep(10); } if (Features.ByName <BoolFeature>("Anti NPC").Value) { var attackers = localPlayer.GetAttackers(); foreach (var ped in attackers) { ped.Health = 0; localPlayer.Health = localPlayer.MaxHealth; } } vehicleHandling.UpShift = _backupVehicleHandling.UpShift * Features.ByName <IntFeature>("Shift Rate").Value; //weapon.ReloadTime = _backupWeapon.ReloadTime * (Features.ByName<BoolFeature>("Fast Reload").Value ? 10 : 1); var superBullets = Features.ByName <BoolFeature>("Super Bullets").Value; weapon.Damage = _backupWeapon.Damage * (superBullets ? 10 : 1); weapon.BulletBatch = _backupWeapon.BulletBatch * (superBullets ? 25 : 1); weapon.MuzzleVelocity = _backupWeapon.MuzzleVelocity * (superBullets ? 10 : 1); weapon.Range = _backupWeapon.Range * (superBullets ? 10 : 1); weapon.SpinUp = superBullets ? 0 : _backupWeapon.SpinUp; weapon.Spin = superBullets ? 0 : _backupWeapon.Spin; //if (Features.ByName<BoolFeature>("No Reload").Value) // Memory.WriteByteArray(ReloadPtr, three_nops); //else // Memory.WriteByteArray(ReloadPtr, reload_backup); //if (Features.ByName<BoolFeature>("Infinite Ammo").Value) // Memory.WriteByteArray(AmmoPtr, three_nops); //else // Memory.WriteByteArray(AmmoPtr, ammo_backup); Thread.Sleep(10); } }