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); } }
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); } } } }