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

            if (player == null)
            {
                return;
            }

            var r = rest.GetEnumerator();

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

            var id = r.Current;

            var picked = mod.PickVehicle(id);

            if (!picked.HasValue)
            {
                return;
            }

            var p = picked.Value;

            Vehicle vehicle = World.CreateVehicle(p, player.Position + player.ForwardVector * 10.0f, player.Heading + 90);

            if (vehicle == null)
            {
                mod.ShowText($"{from} failed to create vehicle :(");
                return;
            }

            vehicle.PlaceOnGround();
            vehicle.Mods.LicensePlate = String.Concat(from.Take(8));
            vehicle.Detach();
            vehicle.MarkAsNoLongerNeeded();
            mod.ShowText($"{from} gave you a vehicle! ({id})");
        }
Exemplo n.º 2
0
        public void Handle(Chaos mod, String from, IEnumerable <String> rest)
        {
            Ped player = Game.Player.Character;

            if (player == null)
            {
                return;
            }

            var vehicle = player.CurrentVehicle;

            if (vehicle == null)
            {
                return;
            }

            var r = rest.GetEnumerator();

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

            var id = r.Current;

            for (var i = 0; i < 5; i++)
            {
                var randomVehicle = mod.PickVehicle(id);

                if (!randomVehicle.HasValue)
                {
                    continue;
                }

                var model      = new Model(randomVehicle.Value);
                var newVehicle = World.CreateVehicle(model, vehicle.Position, vehicle.Heading);

                if (newVehicle == null)
                {
                    continue;
                }

                if (newVehicle.PassengerCapacity < vehicle.PassengerCount)
                {
                    newVehicle.Delete();
                    continue;
                }

                if (vehicle.IsOnAllWheels)
                {
                    newVehicle.PlaceOnGround();
                }

                newVehicle.Velocity        = vehicle.Velocity;
                newVehicle.Quaternion      = vehicle.Quaternion;
                newVehicle.Throttle        = vehicle.Throttle;
                newVehicle.IsEngineRunning = vehicle.IsEngineRunning;

                for (var seatIndex = -1; seatIndex < newVehicle.PassengerCapacity; seatIndex++)
                {
                    var seat = (VehicleSeat)seatIndex;
                    var ped  = vehicle.GetPedOnSeat(seat);

                    if (ped == null)
                    {
                        continue;
                    }

                    if (newVehicle.IsSeatFree(seat))
                    {
                        ped.SetIntoVehicle(newVehicle, seat);
                    }
                }

                newVehicle.PreviouslyOwnedByPlayer = true;
                vehicle.Delete();
                mod.ShowText($"{from} changed your current vehicle!");
                return;
            }

            mod.ShowText($"{from} tried to change current vehicle, but failed");
        }