Exemple #1
0
        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");
                }
            }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
            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;
            }
Exemple #6
0
        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);
            }
        }