コード例 #1
0
        public ZombiePed ZombieSpawn(Vector3 pos)
        {
            int tempMaxZombies = maxZombies;

            if (IsCityZone(Game.Player.Character.Position))
            {
                tempMaxZombies = maxZombies * 2;
            }
            if (zombieCount >= tempMaxZombies || pos == Vector3.Zero || Extensions.DistanceBetweenV3(pos, startingLoc) < minSpawnDistance || Extensions.DistanceBetweenV3(pos, Game.Player.Character.Position) < minSpawnDistance)
            {
                return(null);
            }
            else
            {
                Ped ped;
                if (customZombies == true)
                {
                    Model model = new Model(RandoMath.GetRandomElementFromList(ZombieModels));
                    ped = World.CreatePed(model, pos);
                }
                else
                {
                    ped = World.CreateRandomPed(pos);
                }
                Infect(ped);
                ZombiePed newZombie = zombieList.Find(match: a => a.pedEntity == ped);
                if (newZombie == null)
                {
                    return(null);
                }
                return(newZombie);
            }
        }
コード例 #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);
                    }
                }
            }
        }