public bool IsCreatedIn(float radius) { if (relationship == 0) { return(false); } Vector3 safePosition = Util.GetSafePositionIn(radius); if (safePosition.Equals(Vector3.Zero)) { Logger.Error("AggressiveDriver: Couldn't find safe position. Abort.", name); return(false); } for (int cnt = 0; cnt < 5; cnt++) { Road road = Util.GetNextPositionOnStreetWithHeading(safePosition.Around(50.0f)); if (road != null) { Logger.Write(false, "AggressiveDriver: Found proper road.", name); spawnedVehicle = Util.Create(name, road.Position, road.Heading, true); if (!Util.ThereIs(spawnedVehicle)) { Logger.Write(false, "AggressiveDriver: Couldn't create vehicle.", name); Restore(true); continue; } spawnedPed = spawnedVehicle.CreateRandomPedOnSeat(VehicleSeat.Driver); if (!Util.ThereIs(spawnedPed)) { Logger.Write(false, "AggressiveDriver: Couldn't create driver.", name); Restore(true); continue; } Logger.Write(false, "AggressiveDriver: Created vehicle and driver successfully.", name); Script.Wait(50); Function.Call(Hash.SET_DRIVER_ABILITY, spawnedPed, 1.0f); Function.Call(Hash.SET_DRIVER_AGGRESSIVENESS, spawnedPed, 1.0f); SetExhausts(); Util.Tune(spawnedVehicle, true, true, true); Logger.Write(false, "AggressiveDriver: Tuned aggressive vehicle.", name); spawnedPed.RelationshipGroup = relationship; spawnedPed.IsPriorityTargetForEnemies = true; spawnedPed.AlwaysKeepTask = true; spawnedPed.BlockPermanentEvents = true; spawnedPed.Task.CruiseWithVehicle(spawnedVehicle, 100.0f, 262692); // 4 + 32 + 512 + 262144 Logger.Write(false, "AggressiveDriver: Characteristics are set.", name); if (Util.BlipIsOn(spawnedPed)) { Logger.Write(false, "AggressiveDriver: Blip is already on aggressive driver.", name); Restore(true); } else { Logger.Write(false, "AggressiveDriver: Created aggressive driver successfully.", name); blipName += VehicleInfo.GetNameOf(spawnedVehicle.Model.Hash); return(true); } } } Logger.Error("AggressiveDriver: Couldn't find proper road. Abort.", name); return(false); }
public bool IsCreatedIn(float radius) { if (relationship == 0) { return(false); } Vector3 safePosition = Util.GetSafePositionIn(radius); if (safePosition.Equals(Vector3.Zero)) { Logger.Error("Terrorist: Couldn't find safe position. Abort.", name); return(false); } for (int cnt = 0; cnt < 5; cnt++) { Road road = Util.GetNextPositionOnStreetWithHeading(safePosition.Around(50.0f)); if (road != null) { Logger.Write(false, "Terrorist: Found proper road.", name); spawnedVehicle = Util.Create(name, road.Position, road.Heading, true); if (!Util.ThereIs(spawnedVehicle)) { Logger.Write(false, "Terrorist: Couldn't create vehicle.", name); Restore(true); continue; } Logger.Write(false, "Terrorist: Created vehicle and driver.", name); Script.Wait(50); Util.Tune(spawnedVehicle, false, false, false); if (name == "khanjali" && spawnedVehicle.GetMod(VehicleMod.Roof) != -1) { spawnedVehicle.SetMod(VehicleMod.Roof, -1, false); } for (int i = -1; i < spawnedVehicle.PassengerSeats; i++) { if (spawnedVehicle.IsSeatFree((VehicleSeat)i)) { members.Add(spawnedVehicle.CreatePedOnSeat((VehicleSeat)i, "g_m_m_chicold_01")); Script.Wait(50); } } Logger.Write(false, "Terrorist: Tuned vehicle and created members.", name); if (members.Find(p => !Util.ThereIs(p)) != null) { Logger.Write(false, "Terrorist: There is a member who doesn't exist.", name); Restore(true); continue; } foreach (Ped p in members) { Util.SetCombatAttributesOf(p); p.RelationshipGroup = relationship; p.IsPriorityTargetForEnemies = true; p.CanBeShotInVehicle = false; p.Weapons.Give(WeaponHash.MicroSMG, 100, true, true); p.Weapons.Current.InfiniteAmmo = true; p.FiringPattern = FiringPattern.BurstFireDriveby; p.AlwaysKeepTask = true; p.BlockPermanentEvents = true; p.Task.FightAgainstHatedTargets(400.0f); Logger.Write(false, "Terrorist: Characteristics are set.", name); } if (SpawnedPedExistsIn(members)) { Logger.Write(false, "Terrorist: Created terrorists successfully.", name); blipName += VehicleInfo.GetNameOf(spawnedVehicle.Model.Hash); return(true); } else { Logger.Write(false, "Terrorist: Driver doesn't exist.", name); Restore(true); } } } Logger.Error("Terrorist: Couldn't find proper road. Abort.", name); return(false); }
public override bool IsCreatedIn(Vector3 safePosition, List <string> models) { if (models == null) { return(false); } for (int cnt = 0; cnt < 5; cnt++) { Road road = Util.GetNextPositionOnStreetWithHeadingToChase(safePosition.Around(50.0f), targetPosition); if (road != null) { Logger.Write(false, blipName + ": Found proper road.", name); spawnedVehicle = Util.Create(name, road.Position, road.Heading, false); if (!Util.ThereIs(spawnedVehicle)) { Logger.Write(false, blipName + ": Couldn't create vehicle.", name); Restore(true); continue; } int max = emergencyType == "FIREMAN" ? 3 : 1; for (int i = -1; i < spawnedVehicle.PassengerSeats && i < max; i++) { if (spawnedVehicle.IsSeatFree((VehicleSeat)i)) { members.Add(spawnedVehicle.CreatePedOnSeat((VehicleSeat)i, models[Util.GetRandomIntBelow(models.Count)])); Script.Wait(50); } } Logger.Write(false, blipName + ": Created members.", name); if (members.Find(p => !Util.ThereIs(p)) != null) { Logger.Write(false, blipName + ": There is a member who doesn't exist.", name); Restore(true); continue; } foreach (Ped p in members) { AddVarietyTo(p); p.Weapons.RemoveAll(); p.RelationshipGroup = Function.Call <int>(Hash.GET_HASH_KEY, emergencyType); p.AlwaysKeepTask = true; p.BlockPermanentEvents = true; if (emergencyType == "FIREMAN") { p.Weapons.Give(WeaponHash.FireExtinguisher, 100, true, true); p.Weapons.Current.InfiniteAmmo = true; p.CanSwitchWeapons = true; p.IsFireProof = true; } Logger.Write(false, blipName + ": Characteristics are set.", name); } if (Util.ThereIs(spawnedVehicle.Driver)) { Function.Call(Hash.SET_DRIVER_ABILITY, spawnedVehicle.Driver, 1.0f); Function.Call(Hash.SET_DRIVER_AGGRESSIVENESS, spawnedVehicle.Driver, 1.0f); } spawnedVehicle.EngineRunning = true; Logger.Write(false, blipName + ": Ready to dispatch.", name); return(true); } } Logger.Error(blipName + ": Couldn't find proper road. Abort.", name); return(false); }
public bool IsCreatedIn(float radius, Road road) { if (relationship == 0 || road.Position.Equals(Vector3.Zero)) { return(false); } spawnedVehicle = Util.Create(name, road.Position, road.Heading, true); if (!Util.ThereIs(spawnedVehicle)) { Logger.Error("Racer: Couldn't create vehicle. Abort.", name); return(false); } spawnedPed = spawnedVehicle.CreateRandomPedOnSeat(VehicleSeat.Driver); if (!Util.ThereIs(spawnedPed)) { Logger.Error("Racer: Couldn't create driver. Abort.", name); spawnedVehicle.Delete(); return(false); } Logger.Write(false, "Racer: Created vehicle and driver successfully.", name); Script.Wait(50); Function.Call(Hash.SET_DRIVER_ABILITY, spawnedPed, 1.0f); Function.Call(Hash.SET_DRIVER_AGGRESSIVENESS, spawnedPed, 1.0f); SetExhausts(); Util.Tune(spawnedVehicle, true, true, true); Logger.Write(false, "Racer: Tuned racer vehicle.", name); spawnedPed.RelationshipGroup = relationship; spawnedPed.IsPriorityTargetForEnemies = true; spawnedPed.AlwaysKeepTask = true; spawnedPed.BlockPermanentEvents = true; Logger.Write(false, "Racer: Characteristics are set.", name); if (Util.BlipIsOn(spawnedPed)) { Logger.Error("Racer: Blip is already on racer. Abort.", name); Restore(true); return(false); } else { if (!spawnedVehicle.Model.IsCar && !spawnedPed.IsWearingHelmet) { spawnedPed.GiveHelmet(false, HelmetType.RegularMotorcycleHelmet, 4096); } TaskSequence ts = new TaskSequence(); ts.AddTask.DriveTo(spawnedVehicle, goal, 10.0f, 100.0f, 262692); // 4 + 32 + 512 + 262144 ts.AddTask.Wait(10000); ts.AddTask.CruiseWithVehicle(spawnedVehicle, 100.0f, 262692); // 4 + 32 + 512 + 262144 ts.Close(); spawnedPed.Task.PerformSequence(ts); ts.Dispose(); Logger.Write(false, "Racer: Created racer successfully.", name); blipName += VehicleInfo.GetNameOf(spawnedVehicle.Model.Hash); return(true); } }
public bool IsCreatedIn(float radius, List <string> selectedModels) { if (relationship == 0 || selectedModels == null) { return(false); } Vector3 safePosition = Util.GetSafePositionIn(radius); if (safePosition.Equals(Vector3.Zero)) { Logger.Error("Driveby: Couldn't find safe position. Abort.", name); return(false); } for (int cnt = 0; cnt < 5; cnt++) { Road road = Util.GetNextPositionOnStreetWithHeading(safePosition.Around(50.0f)); if (road != null) { Logger.Write(false, "Driveby: Found proper road.", name); spawnedVehicle = Util.Create(name, road.Position, road.Heading, true); if (!Util.ThereIs(spawnedVehicle)) { Logger.Write(false, "Driveby: Couldn't create vehicle. Abort.", name); Restore(true); continue; } else if (spawnedVehicle.PassengerSeats < 1) { Logger.Write(false, "Driveby: Passenger seats are needed but there isn't.", name); Restore(true); return(false); } Logger.Write(false, "Driveby: Created vehicle successfully.", name); List <WeaponHash> drivebyWeaponList = new List <WeaponHash> { WeaponHash.MicroSMG, WeaponHash.Pistol, WeaponHash.APPistol, WeaponHash.CombatPistol, WeaponHash.MachinePistol, WeaponHash.MiniSMG, WeaponHash.Revolver, WeaponHash.RevolverMk2, WeaponHash.DoubleActionRevolver }; Util.Tune(spawnedVehicle, false, (Util.GetRandomIntBelow(3) == 1), false); for (int i = -1; i < spawnedVehicle.PassengerSeats; i++) { if (spawnedVehicle.IsSeatFree((VehicleSeat)i)) { members.Add(spawnedVehicle.CreatePedOnSeat((VehicleSeat)i, selectedModels[Util.GetRandomIntBelow(selectedModels.Count)])); Script.Wait(50); } } Logger.Write(false, "Driveby: Tuned vehicle and created members.", name); if (members.Find(p => !Util.ThereIs(p)) != null) { Logger.Write(false, "Driveby: There is a member who doesn't exist.", name); Restore(true); continue; } foreach (Ped p in members) { Util.SetCombatAttributesOf(p); Function.Call(Hash.SET_DRIVER_ABILITY, p, 1.0f); Function.Call(Hash.SET_DRIVER_AGGRESSIVENESS, p, 1.0f); p.AlwaysKeepTask = true; p.BlockPermanentEvents = true; p.Weapons.Give(drivebyWeaponList[Util.GetRandomIntBelow(drivebyWeaponList.Count)], 100, true, true); p.Weapons.Current.InfiniteAmmo = true; p.ShootRate = 1000; p.RelationshipGroup = relationship; p.IsPriorityTargetForEnemies = true; p.FiringPattern = FiringPattern.BurstFireDriveby; Logger.Write(false, "Driveby: Characteristics are set.", name); } if (SpawnedPedExistsIn(members)) { Logger.Write(false, "Driveby: Created driveby successfully.", name); blipName = VehicleInfo.GetNameOf(spawnedVehicle.Model.Hash); return(true); } else { Logger.Write(false, "Driveby: Driver doesn't exist.", name); Restore(true); } } } Logger.Error("Driveby: Couldn't find proper road. Abort.", name); return(false); }
public override bool IsCreatedIn(Vector3 safePosition, List <string> models) { if (relationship == 0 || models == null) { return(false); } for (int cnt = 0; cnt < 5; cnt++) { Road road = Util.GetNextPositionOnStreetWithHeading(safePosition.Around(50.0f)); if (road != null) { Logger.Write(false, blipName + ": Found proper road.", name); spawnedVehicle = Util.Create(name, road.Position, road.Heading + 90, false); if (!Util.ThereIs(spawnedVehicle) || !TaskIsSet()) { Logger.Write(false, blipName + ": Couldn't create vehicle.", name); Restore(true); continue; } Logger.Write(false, blipName + ": Tried to create stinger and members.", name); Stinger s = new Stinger(spawnedVehicle); if (s.IsCreatedIn(spawnedVehicle.Position - spawnedVehicle.ForwardVector * spawnedVehicle.Model.GetDimensions().Y) && DispatchManager.Add(s, DispatchManager.DispatchType.Stinger)) { Logger.Write(false, blipName + ": Created stinger.", name); } else { s.Restore(true); } if (emergencyType == "LSPD") { for (int i = -1; i < spawnedVehicle.PassengerSeats && i < 1; i++) { if (spawnedVehicle.IsSeatFree((VehicleSeat)i)) { members.Add(spawnedVehicle.CreatePedOnSeat((VehicleSeat)i, models[Util.GetRandomIntBelow(models.Count)])); Script.Wait(50); } } } else { string selectedModel = models[Util.GetRandomIntBelow(models.Count)]; if (selectedModel == null) { Logger.Write(false, blipName + ": Couldn't find model.", name); Restore(true); continue; } for (int i = -1; i < spawnedVehicle.PassengerSeats && i < 1; i++) { if (spawnedVehicle.IsSeatFree((VehicleSeat)i)) { members.Add(spawnedVehicle.CreatePedOnSeat((VehicleSeat)i, selectedModel)); Script.Wait(50); } } } if (members.Find(p => !Util.ThereIs(p)) != null) { Logger.Write(false, blipName + ": There is a member who doesn't exist.", name); Restore(true); continue; } foreach (Ped p in members) { AddVarietyTo(p); Util.SetCombatAttributesOf(p); Function.Call(Hash.SET_DRIVER_ABILITY, p, 1.0f); Function.Call(Hash.SET_DRIVER_AGGRESSIVENESS, p, 1.0f); Function.Call(Hash.SET_PED_AS_COP, p, false); p.AlwaysKeepTask = true; p.BlockPermanentEvents = true; p.FiringPattern = FiringPattern.BurstFireDriveby; if (p.IsSittingInVehicle(spawnedVehicle)) { p.Task.LeaveVehicle(spawnedVehicle, LeaveVehicleFlags.WarpOut); } switch (emergencyType) { case "ARMY": { p.Weapons.Give(WeaponHash.CombatMG, 500, false, true); p.Weapons.Give(WeaponHash.MachinePistol, 300, true, true); p.ShootRate = 1000; p.Armor = 100; break; } case "LSPD": { p.Weapons.Give(WeaponHash.PumpShotgun, 30, false, true); p.Weapons.Give(WeaponHash.Pistol, 100, true, true); p.ShootRate = 500; p.Armor = 30; break; } case "SWAT": { p.Weapons.Give(WeaponHash.Pistol, 100, false, true); p.Weapons.Give(WeaponHash.SMG, 300, true, true); p.ShootRate = 700; p.Armor = 70; break; } } p.Weapons.Current.InfiniteAmmo = true; p.CanSwitchWeapons = true; p.RelationshipGroup = relationship; Logger.Write(false, blipName + ": Characteristics are set.", name); } spawnedVehicle.EngineRunning = true; Logger.Write(false, blipName + ": Ready to dispatch.", name); return(true); } } Logger.Error(blipName + ": Couldn't find proper road. Abort.", name); return(false); }