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;
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }