Exemple #1
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            Ped player = Game.Player.Character;

            if (player == null)
            {
                mod.ShowText($"{from} tried to boost you :(");
                return;
            }

            var   what   = "Boost";
            float time   = 30f;
            float factor = 20f;

            if (super)
            {
                factor = 200f;
                what   = "Super Boost";
            }

            var timer = mod.Timer(what, time);

            mod.AddTicker(new BoostTicker(player, timer, factor));
            mod.ShowText($"{from} caused the vehicle to boost!");
        }
Exemple #2
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            var r = rest.GetEnumerator();

            if (!r.MoveNext())
            {
                return;
            }

            String          what    = null;
            DisabledControl control = DisabledControl.Steering;

            var id = r.Current;

            switch (id)
            {
            case "steering":
                control = DisabledControl.Steering;
                what    = "Steering";
                break;

            default:
                throw new Exception($"bad disable-control id `{id}`");
            }

            var timer = mod.Timer($"Disabled {what}", 10f);

            mod.AddTicker(new DisableControlTicker(timer, control));
            mod.ShowText($"{from} disabled the {what} control!");
        }
Exemple #3
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            var player = Game.Player.Character;

            if (player == null)
            {
                return;
            }

            var r = rest.GetEnumerator();

            if (!r.MoveNext())
            {
                return;
            }

            var amount = int.Parse(r.Current);

            for (var i = 0; i < amount; i++)
            {
                var pedHash    = ENEMY_MODELS[mod.Rnd.Next(0, ENEMY_MODELS.Length)];
                var weaponHash = ENEMY_WEAPONS[mod.Rnd.Next(0, ENEMY_WEAPONS.Length)];

                var distance = mod.Rnd.Next(10, 20);

                var ped    = World.CreatePed(new Model(pedHash), player.Position.Around(distance));
                var weapon = ped.Weapons.Give(weaponHash, 0, true, true);
                weapon.Ammo = weapon.MaxAmmo;

                ped.IsEnemy           = true;
                ped.RelationshipGroup = mod.HateGroup.GroupId;

                ped.SetCombatAttributes(CombatAttributes.AlwaysFight, true);
                ped.SetCombatAttributes(CombatAttributes.CanFightArmedPedsWhenNotArmed, true);

                ped.Task.ClearAll();
                ped.Task.FightAgainst(player);

                ped.Detach();
                ped.MarkAsNoLongerNeeded();

                var blip = ped.AttachBlip();
                mod.AddTicker(new EnemyBlipTicker(blip, ped));
            }

            if (amount == 1)
            {
                mod.ShowText($"{from} spawned an fib operative out to get you!");
            }
            else
            {
                mod.ShowText($"{from} spawned {amount} fib operatives out to get you!");
            }
        }
Exemple #4
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            var player = Game.Player.Character;

            if (player == null)
            {
                mod.ShowText($"{from} tried to enable matrix slam :(");
                return;
            }

            var entities = World.GetNearbyEntities(player.Position, 1000f);

            foreach (var entity in entities)
            {
                if (entity == player)
                {
                    continue;
                }

                if (entity is Ped)
                {
                    var ped = (Ped)entity;
                    mod.AddTicker(ped.Levitate(mod.Rnd, mod.AnonymousTimer(10f)));
                    continue;
                }

                if (entity is Vehicle)
                {
                    var vehicle = (Vehicle)entity;
                    mod.AddTicker(vehicle.Levitate(mod.Rnd, mod.AnonymousTimer(10f)));
                    continue;
                }
            }

            mod.AddUniqueTicker(TickerId.LevitatingEntities, new TimerTicker(mod.Timer("Levitating things", 10f)));
        }
Exemple #5
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            Ped     player  = Game.Player.Character;
            Vehicle vehicle = player.CurrentVehicle;

            if (vehicle == null)
            {
                mod.ShowText($"{from} tried to brake your vehicle!");
                return;
            }

            var timer = mod.Timer("Handbrake On", 5f);

            mod.AddTicker(new BrakeTicker(vehicle, timer));
            mod.ShowText($"{from} caused the vehicle to brake!");
        }
Exemple #6
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            Ped     player  = Game.Player.Character;
            Vehicle vehicle = player.CurrentVehicle;

            if (vehicle == null)
            {
                mod.ShowText($"{from} tried to cause your fuel tank to leak :(");
                return;
            }

            var initial = vehicle.FuelLevel / 100f;
            var timer   = mod.AnonymousTimer(30f * initial, 30f);
            var gauge   = mod.Gauge("Fuel Level");

            mod.AddTicker(new FuelLeakageTicker(vehicle, gauge, timer));
            mod.ShowText($"{from} caused your fuel tank to leak!");
        }
Exemple #7
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            var player = Game.Player.Character;

            if (player == null)
            {
                mod.ShowText($"{from} tried to enable matrix slam :(");
                return;
            }

            var entities = World.GetNearbyEntities(player.Position, 100f);

            var timer      = mod.AnonymousTimer(2f);
            var controller = new MatrixController(entities, player, timer);

            mod.AddTicker(controller);
            mod.ShowText($"{from} performed a matrix slam!");
        }
Exemple #8
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            Ped player = Game.Player.Character;

            if (player == null)
            {
                mod.ShowText($"{from} tried to put EVERYONE on fire!");
                return;
            }

            var peds = World.GetNearbyPeds(player.Position, 1000f);

            var scriptFires = new List <ScriptFire>();

            foreach (var ped in peds)
            {
                if (ped.IsHuman && !ped.IsOnFire && ped.IsAlive && ped != player)
                {
                    if (ped.CurrentVehicle != null)
                    {
                        ped.Task.ClearAll();
                        ped.AlwaysKeepTask = true;
                        ped.Task.LeaveVehicle();
                    }

                    ped.Euphoria.OnFire.Start(10_000);
                    var id = WorldExtension.StartScriptFire(ped.Position, 5, true);
                    scriptFires.Add(new ScriptFire(id, ped));
                }
            }

            if (scriptFires.Count == 0)
            {
                mod.ShowText($"{from} tried to put pedestrians on fire but there are none :(");
                return;
            }

            var timer = mod.Timer("Peds On Fire", 10f);

            mod.AddTicker(new SetPedsOnFireTicker(scriptFires, timer));
            mod.ShowText($"{from} set {scriptFires.Count} pedestrians on fire!");
        }