public static void LoadVehicleFromVehicleData(VehicleData vehicleData) { Model model = new Model(vehicleData.Hash); Vehicle vehicle = Extensions.SpawnVehicle(model, vehicleData.Position, vehicleData.Heading); if (vehicle != null) { vehicle.Rotation = vehicleData.Rotation; vehicle.PrimaryColor = vehicleData.PrimaryColor; vehicle.SecondaryColor = vehicleData.SecondaryColor; vehicle.Health = vehicleData.Health; vehicle.EngineHealth = vehicleData.EngineHealth; } Character.playerVehicle = vehicle; }
public void VehicleSpawn(Vector3 position, float heading) { int tempMaxVehicles = maxVehicles; if (IsCityZone(Game.Player.Character.Position)) { tempMaxVehicles = maxVehicles * 2; } if (vehicleCount >= tempMaxVehicles || position == Vector3.Zero || Extensions.DistanceBetweenV3(position, startingLoc) < minSpawnDistance || Extensions.DistanceBetweenV3(position, Game.Player.Character.Position) < minSpawnDistance) { return; } else { var model = GetRandomVehicleModel(); var vehicle = Extensions.SpawnVehicle(model, position, heading); int rnd = RandoMath.CachedRandom.Next(0, 100); if (rnd <= 10) { vehicle.EngineHealth = 1000.0f; } else { vehicle.EngineHealth = 0.0f; } vehicle.DirtLevel = 14.0f; var vehicleDoors = vehicle.GetDoors(); for (int i = 0; i < 5; i++) { var door = RandoMath.GetRandomElementFromArray(vehicleDoors); vehicle.OpenDoor(door, false, true); } for (int i = 0; i < 3; i++) { List <int> windows = new List <int>(); if (Function.Call <bool>(Hash.IS_VEHICLE_WINDOW_INTACT, vehicle.Handle, i)) { windows.Add(i); } if (windows.Count > 0) { int window = RandoMath.GetRandomElementFromList(windows); Function.Call(Hash.SMASH_VEHICLE_WINDOW, vehicle.Handle, window); } } } }