public static void TeleportToClosestVehicle(bool forcePassenger = false) { var vehicles = Vehicles.Get(); if (Common.GetClosestEntity(vehicles, out int vehicle)) { if (Vehicles.GetFreeSeat(vehicle, out int seat, forcePassenger)) { var player = API.GetPlayerPed(-1); API.SetPedIntoVehicle(player, vehicle, seat); } else { Hud.Notification("Closest vehicle doesn't have a free seat"); } }
public static List <string> IdentifyPedModels() { var coords = API.GetEntityCoords(API.GetPlayerPed(-1), true); var peds = Peds.Get(); var models = new List <string>(); foreach (var ped in peds) { var pos = API.GetEntityCoords(ped, true); if (coords.DistanceToSquared(pos) < 4f) { var model = string.Format("0x{0:X8}", API.GetEntityModel(ped)); models.Add(model); Hud.Notification("ped:" + model); } } return(models); }
public static async Task <int> SpawnAtCoords(string model, Vector3 coords, Vector3 rotation) { var hash = (uint)API.GetHashKey(model); if (!API.IsModelValid(hash)) { Hud.Notification(string.Format("Invalid model hash: 0x{0:X8} ({1})", hash, model)); return(-1); } await Common.RequestModel(hash); var prop = API.CreateObject((int)hash, coords.X, coords.Y, coords.Z, true, false, false); _props.Add(prop); API.SetEntityRotation(prop, rotation.X, rotation.Y, rotation.Z, 0, true); API.DecorSetBool(prop, PropDecor, true); return(prop); }
public static async Task PoccePassengers() { int player = API.GetPlayerPed(-1); if (!API.IsPedInAnyVehicle(player, true)) { Hud.Notification("Player is not in a vehicle"); return; } var vehicle = API.GetVehiclePedIsIn(player, false); while (Vehicles.GetFreeSeat(vehicle, out int seat)) { var pocce = Config.PocceList[API.GetRandomIntInRange(0, Config.PocceList.Length)]; await Common.RequestModel(pocce); var ped = API.CreatePedInsideVehicle(vehicle, 26, pocce, seat, true, false); API.SetEntityAsNoLongerNeeded(ref ped); } }
public void Update(ref int entity1, ref int entity2, out bool clearLast) { clearLast = false; var player = GetPlayerEntity(); if (entity1 != player && entity2 != player) { return; } if (_ropegunFirstUse) { Hud.Notification("First time using ropegun, yay! You can connect 2 entities in 2 seconds"); _ropegunFirstUse = false; } var timestamp = DateTime.Now; if (_lastRopegunEntity1 != -1 && _lastRopegunEntity2 != -1 && (timestamp - _lastRopegunFire) < TimeSpan.FromSeconds(2f)) { clearLast = (_lastRopegunEntity1 == player || _lastRopegunEntity2 == player); if (entity1 == player) { entity1 = _lastRopegunEntity2; } else { entity2 = _lastRopegunEntity2; } } _lastRopegunEntity1 = entity1; _lastRopegunEntity2 = entity2; _lastRopegunFire = timestamp; }
private static void SetupMenu() { if (Permission.CanDo(Ability.SpawnVehicle)) { Hud.AddSubmenu("Spawn vehicle", async(vehicle) => await Vehicles.Spawn(vehicle), Config.VehicleList); } if (Permission.CanDo(Ability.SpawnProp)) { Hud.AddSubmenu("Spawn prop", async(prop) => await Props.Spawn(prop), Config.PropList, 10); } if (Permission.CanDo(Ability.SpawnPocceCompanion)) { Hud.AddMenuListItem("Spawn ped", "Pocce companion", PocceCompanion); } if (Permission.CanDo(Ability.SpawnPetCompanion)) { Hud.AddMenuListItem("Spawn ped", "Pet companion", PetCompanion); } if (Permission.CanDo(Ability.SpawnPoccePassengers)) { Hud.AddMenuListItem("Spawn ped", "Pocce passengers", PoccePassengers); } if (Permission.CanDo(Ability.SpawnTrashPed)) { Hud.AddMenuListItem("Spawn ped", "Trash ped", SpawnTrashPed); } if (Permission.CanDo(Ability.Rope)) { Hud.AddMenuListItem("Rope", "Closest ped", () => RopeClosest(Peds.Get(Peds.Filter.Dead | Peds.Filter.CurrentVehiclePassengers))); Hud.AddMenuListItem("Rope", "Closest vehicle", () => RopeClosest(Vehicles.Get())); Hud.AddMenuListItem("Rope", "Closest vehicle tow", () => RopeClosest(Vehicles.Get(), true)); Hud.AddMenuListItem("Rope", "Closest prop", () => RopeClosest(Props.Get())); } if (Permission.CanDo(Ability.RopeGun)) { Hud.AddMenuListItem("Rope", "Equip rope gun", () => Ropes.EquipRopeGun()); } if (Permission.CanDo(Ability.RappelFromHeli)) { Hud.AddMenuListItem("Rope", "Rappel from heli", () => RappelFromHeli()); } if (Permission.CanDo(Ability.Rope) || Permission.CanDo(Ability.RopeGun)) { Hud.AddMenuListItem("Clear", "Ropes", () => Ropes.ClearAll()); Hud.AddMenuListItem("Clear", "Last rope", () => Ropes.ClearLast()); } if (Permission.CanDo(Ability.SpawnProp)) { Hud.AddMenuListItem("Clear", "Props", () => Props.ClearAll()); Hud.AddMenuListItem("Clear", "Last prop", () => Props.ClearLast()); } if (Permission.CanDo(Ability.TeleportToClosestVehicle)) { Hud.AddMenuListItem("Teleport", "Closest vehicle", () => TeleportToClosestVehicle()); Hud.AddMenuListItem("Teleport", "Closest vehicle as passenger", () => TeleportToClosestVehicle(true)); } if (Permission.CanDo(Ability.OceanWaves)) { Hud.AddMenuListItem("Ocean waves", "High", () => API.SetWavesIntensity(8f)); Hud.AddMenuListItem("Ocean waves", "Mid", () => API.SetWavesIntensity(2f)); Hud.AddMenuListItem("Ocean waves", "Low", () => API.SetWavesIntensity(0f)); Hud.AddMenuListItem("Ocean waves", "Reset", () => API.ResetWavesIntensity()); } if (Permission.CanDo(Ability.PocceRiot)) { Hud.AddMenuListItem("Riot", "Pocce riot", async() => await PocceRiot(false)); } if (Permission.CanDo(Ability.PocceRiotArmed)) { Hud.AddMenuListItem("Riot", "Armed pocce riot", async() => await PocceRiot(true)); } if (Permission.CanDo(Ability.PedRiot)) { Hud.AddMenuListItem("Riot", "Ped riot", async() => await PedRiot(false)); } if (Permission.CanDo(Ability.PedRiotArmed)) { Hud.AddMenuListItem("Riot", "Armed ped riot", async() => await PedRiot(true)); } if (Permission.CanDo(Ability.Autopilot)) { Hud.AddMenuListItem("Other", "Autopilot", Autopilot.Toggle); } if (Permission.CanDo(Ability.EMP)) { Hud.AddMenuListItem("Other", "EMP", () => Vehicles.EMP()); } if (Permission.CanDo(Ability.CargobobMagnet)) { Hud.AddMenuListItem("Other", "Cargobob magnet", () => CargobobMagnet()); } if (Permission.CanDo(Ability.IdentifySkins)) { if (Permission.CanDo(Ability.ChangeSkin)) { var skins = new DataSource <string>(); Hud.AddMenuItem("Indentify skins", () => skins.Push(IdentifyPedModels())); Hud.AddSubmenu("Change skin", async(skin) => await ChangeSkin(skin), skins); } else { Hud.AddMenuItem("Indentify skins", () => IdentifyPedModels()); } } var menukey = Config.GetConfigInt("MenuKey"); if (menukey > 0) { Hud.SetMenuKey(menukey); } }