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})"); }
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"); }