Ejemplo n.º 1
0
        public override void Update()
        {
            try
            {
                switch (m_BehavPath)
                {
                default:    //Shoot each other and run
                    #region default
                    if (!m_HasEventStarted)
                    {
                        m_TimeBeforeEventTimer += Game.FrameTime;
                    }

                    if (m_TimeBeforeEventTimer >= Settings.ShootingWanderTime && !m_HasEventStarted)    //Stop wander start shoot
                    {
                        m_HasEventStarted = true;

                        ResourceManager.RemoveBlip(m_Blip);
                        m_Blip       = ResourceManager.CreatBlip(m_Peds[0].Position.Around(2), 20.0f);
                        m_Blip.Alpha = 0.5f;
                        m_Blip.Color = System.Drawing.Color.Yellow;

                        for (int i = 0; i < m_Peds.Length; i++)
                        {
                            m_Peds[i].Inventory.GiveNewWeapon(WeaponHash.Pistol, 500, true);
                            if (i == 0)
                            {
                                m_Peds[i].Tasks.FireWeaponAt(m_Peds[1], Random.Next(5000, 10000), FiringPattern.BurstFire);
                            }
                            else
                            {
                                m_Peds[i].Tasks.FireWeaponAt(m_Peds[0], Random.Next(5000, 10000), FiringPattern.BurstFire);
                            }
                        }

                        GameFiber.StartNew(delegate
                        {
                            GameFiber.Sleep(15000);
                            m_Pursuit = Functions.CreatePursuit();

                            foreach (Ped p in m_Peds)
                            {
                                if (p.Exists())
                                {
                                    Functions.AddPedToPursuit(m_Pursuit, p);
                                    PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                                    attri.HandlingAbility      = (float)Random.NextDouble() + 0.5f;
                                }
                            }

                            Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                            Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                            Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                            GameFiber.Hibernate();
                        });
                    }

                    if (m_HasEventStarted)
                    {
                        m_TimeoutTimer += Game.FrameTime;
                        if (m_TimeoutTimer >= m_TimeoutTime && Game.LocalPlayer.Character.DistanceTo(m_Peds[0].Position) > 50 && AllPedsDead())
                        {
                            End();
                        }
                    }

                    break;
                    #endregion

                case 1:    //Shoot at cop and run
                    #region 1
                    if (!m_HasEventStarted)
                    {
                        m_TimeBeforeEventTimer += Game.FrameTime;
                    }

                    if (m_TimeBeforeEventTimer >= Settings.ShootingWanderTime && !m_HasEventStarted)    //Stop wander start shoot
                    {
                        m_HasEventStarted = true;

                        ResourceManager.RemoveBlip(m_Blip);
                        m_Blip       = ResourceManager.CreatBlip(m_Peds[0].Position.Around(2), 20.0f);
                        m_Blip.Alpha = 0.5f;
                        m_Blip.Color = System.Drawing.Color.Yellow;

                        for (int i = 0; i < m_Peds.Length; i++)
                        {
                            m_Peds[i].Inventory.GiveNewWeapon(WeaponHash.Pistol, 12, true);
                            m_Peds[i].Tasks.FireWeaponAt(Game.LocalPlayer.Character, Random.Next(5000, 10000), FiringPattern.BurstFirePistol);
                        }

                        GameFiber.StartNew(delegate
                        {
                            GameFiber.Sleep(15000);
                            m_Pursuit = Functions.CreatePursuit();

                            foreach (Ped p in m_Peds)
                            {
                                if (p.Exists())
                                {
                                    Functions.AddPedToPursuit(m_Pursuit, p);
                                    PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                                    attri.HandlingAbility      = (float)Random.NextDouble() + 0.5f;
                                }
                            }

                            Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                            Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                            Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                            GameFiber.Hibernate();
                        });
                    }

                    if (m_HasEventStarted)
                    {
                        m_TimeoutTimer += Game.FrameTime;
                        if (m_TimeoutTimer >= m_TimeoutTime && Game.LocalPlayer.Character.DistanceTo(m_Peds[0].Position) > 50 && AllPedsDead())
                        {
                            End();
                        }
                    }
                    #endregion
                    break;

                case 2:    //Run
                    #region 2
                    if (!m_HasEventStarted)
                    {
                        m_TimeBeforeEventTimer += Game.FrameTime;
                    }

                    if (m_TimeBeforeEventTimer >= Settings.ShootingWanderTime && !m_HasEventStarted &&
                        Game.LocalPlayer.Character.DistanceTo(m_Peds[0].Position) < 50)    //Stop wander start shoot
                    {
                        m_HasEventStarted = true;

                        ResourceManager.RemoveBlip(m_Blip);
                        m_Blip       = ResourceManager.CreatBlip(m_Peds[0].Position.Around(2), 20.0f);
                        m_Blip.Alpha = 0.5f;
                        m_Blip.Color = System.Drawing.Color.Yellow;

                        for (int i = 0; i < m_Peds.Length; i++)
                        {
                            m_Peds[i].Inventory.GiveNewWeapon(WeaponHash.AssaultRifle, 12, true);
                        }

                        m_Pursuit = Functions.CreatePursuit();

                        foreach (Ped p in m_Peds)
                        {
                            if (p.Exists())
                            {
                                Functions.AddPedToPursuit(m_Pursuit, p);
                                PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                                attri.HandlingAbility = (float)Random.NextDouble() + 0.5f;
                            }
                        }

                        Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                        Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                        GameFiber.Hibernate();
                    }

                    if (m_HasEventStarted)
                    {
                        m_TimeoutTimer += Game.FrameTime;
                        if (m_TimeoutTimer >= m_TimeoutTime && Game.LocalPlayer.Character.DistanceTo(m_Peds[0].Position) > 50 && AllPedsDead())
                        {
                            End();
                        }
                    }
                    #endregion
                    break;
                }

                if (Game.LocalPlayer.Character.DistanceTo(m_Peds[0]) > 400)
                {
                    End();
                }
            }
            catch (Exception e)
            {
                Game.LogTrivial("[ee] ERROR: " + e);
                Game.DisplayNotification("Epic events encounterd an error, please file a bug report with your ragepluginhook.log");
                End();
            }
        }
Ejemplo n.º 2
0
        public override void Update()
        {
            try
            {
                base.Update();

                int distance = 30;

                if (Game.LocalPlayer.LastVehicle.Exists())
                {
                    distance = Game.LocalPlayer.LastVehicle.IsSirenOn ? 30 : 20;
                }

                switch (m_BehavPath)
                {
                //TODO: Change distance on light on.


                default:    //Run on too close

                    if (!m_InPursuit && Game.LocalPlayer.Character.DistanceTo(Location.DrugDealerLocation[m_Location][0].Posistion) < distance)
                    {
                        m_InPursuit = true;
                        m_Pursuit   = Functions.CreatePursuit();

                        foreach (Ped p in m_Peds)
                        {
                            Functions.AddPedToPursuit(m_Pursuit, p);
                            PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                            attri.HandlingAbility = (float)Random.NextDouble() + 0.5f;
                        }

                        Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                        Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                    }

                    break;

                case 1:    //Run and shoot

                    if (!m_InPursuit && Game.LocalPlayer.Character.DistanceTo(Location.DrugDealerLocation[m_Location][0].Posistion) < distance)
                    {
                        m_Pursuit = Functions.CreatePursuit();

                        for (int i = 0; i < 2; i++)
                        {
                            Functions.AddPedToPursuit(m_Pursuit, m_Peds[i]);
                            PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(m_Peds[i]);
                            attri.HandlingAbility = (float)Random.NextDouble() + 0.5f;
                        }

                        Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                        Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);

                        Functions.PlayScannerAudioUsingPosition("OFFICERS_REPORT CRIME_RESIST_ARREST IN_OR_ON_POSITION", Game.LocalPlayer.Character.Position);
                        Game.DisplayNotification("3dtextures", "mpgroundlogo_cops", "Dispatch", "", "Show me in purstuit of 4 individuals, possibly armed.");
                        Functions.PlayScannerAudioUsingPosition("ASSISTANCE_REQUIRED IN_OR_ON_POSITION", Game.LocalPlayer.Character.Position);
                        Game.DisplayNotification("3dtextures", "mpgroundlogo_cops", "Dispatch", "", "Copy that, sending backup!");

                        for (int i = 2; i < 4; i++)
                        {
                            m_Peds[i].DropsCurrentWeaponOnDeath = true;
                            m_Peds[i].Inventory.GiveNewWeapon(WeaponHash.Pistol, 50, true);
                            m_Peds[i].Tasks.FireWeaponAt(Game.LocalPlayer.Character, int.MaxValue, FiringPattern.BurstFirePistol);
                        }

                        m_InPursuit = true;
                    }

                    break;

                case 2:

                    //Dont do anything

                    break;
                }
            }
            catch (Exception e)
            {
                Game.LogTrivial("[ee] ERROR: " + e);
                Game.DisplayNotification("Epic events encounterd an error, please file a bug report with your ragepluginhook.log");
                End();
            }
        }
Ejemplo n.º 3
0
        public override void Update()
        {
            try
            {
                base.Update();

                foreach (Vehicle v in m_Vehicles)
                {
                    v.AlarmTimeLeft = TimeSpan.FromHours(1) + TimeSpan.FromMilliseconds(Random.Next(0, 500));
                }

                if (Game.LocalPlayer.LastVehicle.Exists())
                {
                    m_Distance = Game.LocalPlayer.LastVehicle.IsSirenOn ? 30 : 20;
                }

                if (m_PedsFrozen && Game.IsKeyDownRightNow(System.Windows.Forms.Keys.E) &&
                    Game.LocalPlayer.Character.DistanceTo(Location.HomlessLocations[m_Location][0].Posistion) < 10)
                {
                    m_PedsFrozen = false;
                    foreach (Ped p in m_Peds)
                    {
                        p.IsPositionFrozen = false;
                        p.Tasks.ClearImmediately();
                    }
                }

                if (Game.LocalPlayer.Character.Position.DistanceTo(Location.HomlessLocations[m_Location][0].Posistion) > 100)
                {
                    End();
                }

                switch (m_BehavPath)
                {
                default:    //Run

                    if (!m_InPursuit && Game.LocalPlayer.Character.DistanceTo(Location.HomlessLocations[m_Location][0].Posistion) < m_Distance)
                    {
                        m_InPursuit = true;
                        m_Pursuit   = Functions.CreatePursuit();
                        m_Peds[2].IsPositionFrozen = false;

                        foreach (Ped p in m_Peds)
                        {
                            Functions.AddPedToPursuit(m_Pursuit, p);
                            PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                            attri.HandlingAbility = (float)Random.NextDouble() + 0.5f;
                            attri.CanUseCars      = false;
                        }

                        Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                        Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                    }

                    break;

                case 1:    //Stay



                    break;

                case 2:    //Some will run

                    if (!m_InPursuit && Game.LocalPlayer.Character.DistanceTo(Location.HomlessLocations[m_Location][0].Posistion) < m_Distance)
                    {
                        m_InPursuit = true;
                        m_Pursuit   = Functions.CreatePursuit();

                        foreach (Ped p in m_Peds)
                        {
                            if (Random.Next(0, 4) == 2)
                            {
                                Functions.AddPedToPursuit(m_Pursuit, p);
                                PedPursuitAttributes attri = Functions.GetPedPursuitAttributes(p);
                                attri.HandlingAbility = (float)Random.NextDouble() + 0.5f;
                                attri.CanUseCars      = false;
                            }
                        }

                        Functions.SetPursuitCopsCanJoin(m_Pursuit, true);
                        Functions.SetPursuitTacticsEnabled(m_Pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(m_Pursuit, true);
                    }

                    break;
                }
            }
            catch (Exception e)
            {
                Game.LogTrivial("[ee] ERROR: " + e);
                Game.DisplayNotification("Epic events encounterd an error, please file a bug report with your ragepluginhook.log");
                End();
            }
        }