示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }