Exemplo n.º 1
0
        public PlayerMenu(int serverId, PlayerListMenu parent, Client client) : base("Player", parent)
        {
            ServerId = serverId;

            var spec = new MenuItemCheckbox(client, this, "Spectate Player", false, Constants.AceAdminSpec)
            {
                IsChecked = () => client.Spectate.CurrentPlayer?.ServerId == ServerId
            };

            spec.Activate += () => {
                if (client.Spectate.CurrentPlayer == null || client.Spectate.CurrentPlayer.ServerId != ServerId)
                {
                    client.Spectate.Start(Player);
                }
                else
                {
                    client.Spectate.Stop();
                }
                return(Task.FromResult(0));
            };
            Add(spec);

            var tpTo = new MenuItem(client, this, "Teleport To Player", Constants.AceAdminTp);

            tpTo.Activate += () => {
                parent.LastTpTarget = ServerId;
                BaseScript.TriggerServerEvent("HyperAdmin.TpTo", ServerId);
                return(Task.FromResult(0));
            };
            Add(tpTo);

            var bring = new MenuItem(client, this, "Bring Player", Constants.AceAdminBring);

            bring.Activate += () => {
                BaseScript.TriggerServerEvent("HyperAdmin.Bring", ServerId, JsonConvert.SerializeObject(Game.PlayerPed.Position));
                return(Task.FromResult(0));
            };
            Add(bring);

            var freeze = new MenuItemCheckbox(client, this, "Freeze Player", Player.Character.IsPositionFrozen, Constants.AceAdminFreeze)
            {
                IsChecked = () => API.DecorGetBool(Player.Character.Handle, "Player.Frozen")
            };

            freeze.Activate += () => {
                BaseScript.TriggerServerEvent("HyperAdmin.Freeze", ServerId);
                return(Task.FromResult(0));
            };
            Add(freeze);

            var kick = new MenuItemSubMenu(client, this, new KickMenu(client, this), ace: Constants.AceAdminKick);

            Add(kick);

            var ban = new MenuItemSubMenu(client, this, new BanMenu(client, this), ace: Constants.AceAdminBan);

            Add(ban);
        }
Exemplo n.º 2
0
        public DevTools(Client client) : base(client)
        {
            var menu = new Menu("Mooshe's DevTools");

            var playerMenu = new MenuItemSubMenu(client, menu, new PlayerMenu(client, menu), "Player Settings");

            menu.Add(playerMenu);

            var mpMenu = new MenuItemSubMenu(client, menu, new MpMenu(client, menu), "Multiplayer Settings");

            menu.Add(mpMenu);

            var timeMenu = new MenuItemSubMenu(client, menu, new TimeMenu(client, menu), "Time Settings");

            menu.Add(timeMenu);

            var vehMenu = new MenuItemSubMenu(client, menu, new VehicleMenu(client, menu), "Vehicle Settings");

            menu.Add(vehMenu);

            var worldMenu = new MenuItemSubMenu(client, menu, new WorldMenu(client, menu), "World Settings");

            menu.Add(worldMenu);

            var hudMenu = new MenuItemSubMenu(client, menu, new HudMenu(client, menu), "HUD Settings");

            menu.Add(hudMenu);

            var iplMenu = new MenuItemSubMenu(client, menu, new InteriorMenu(client, menu), "Interior Settings");

            menu.Add(iplMenu);

            var keyCode = new MenuItemCheckbox(client, menu, "Keycode Tester")
            {
                IsChecked = () => KeyCodeTest
            };

            keyCode.Activate += () => {
                KeyCodeTest = !KeyCodeTest;
                return(Task.FromResult(0));
            };
            menu.Add(keyCode);

            Client.Menu.RegisterMenuHotkey(Control.ReplayStartStopRecording, menu);               // F1

            Client.RegisterTickHandler(OnKeyCodeTick);
            Client.RegisterTickHandler(OnKeyCodeRender);

            Client.RegisterEventHandler("UI.ShowNotification", new Action <string>(OnNotification));
            Client.RegisterEventHandler("Player.Bring", new Action <int, float, float, float>(OnPlayerBring));
        }
Exemplo n.º 3
0
        private void CreateMenuItems()
        {
            _root = new MenuItemGrid("roomListGrid", 7, 7);
            MenuItemText roomText = new MenuItemText("roomText");

            roomText.SetText("Room List");
            roomText.SetTextColor(Color.black);
            roomText.SetAlignment(TextAnchor.MiddleCenter);
            _root.AddChild(0, 0, 2, 1, roomText);
            MenuItemText searchText = new MenuItemText("searchText");

            searchText.SetText("Search:");
            searchText.SetAlignment(TextAnchor.LowerLeft);
            searchText.SetFontSize(5, 7);
            _root.AddChild(0, 2, 2, 1, searchText);
            MenuItemInput searchInput = new MenuItemInput("searchInput");

            searchInput.SetPlaceholder("Name...");
            _root.AddChild(0, 3, 2, 1, searchInput);
            searchInput.SetPadding(10f, 0f, 10f, 10f);
            MenuItemCheckbox notEmpty = new MenuItemCheckbox("notEmpty");

            notEmpty.SetValue(false);
            notEmpty.SetText("Filter empty");
            _root.AddChild(0, 4, 2, 1, notEmpty);
            notEmpty.SetPadding(10f, 6f);
            MenuItemCheckbox notFull = new MenuItemCheckbox("notFull");

            notFull.SetValue(false);
            notFull.SetText("Filter full");
            _root.AddChild(0, 5, 2, 1, notFull);
            notFull.SetPadding(10f, 6f);
            MenuItemButton filter = new MenuItemButton("filter");

            filter.SetText("Filter");
            filter.Clicked += () =>
            {
                List <Room> roomList = GetRoomList(searchInput.GetText(), notEmpty.IsChecked(), notFull.IsChecked());
                RenderRoomList(roomList);
            };
            _root.AddChild(0, 6, 2, 1, filter);
            filter.SetPadding(20f, 4f);
            _roomListGrid = new MenuItemGrid("roomItems", 6, 10);
            _root.AddChild(2, 0, 5, 7, _roomListGrid);
        }
Exemplo n.º 4
0
        public BanMenu(Client client, PlayerMenu parent) : base($"Ban {parent.Player.Name}", parent)
        {
            var reason = new MenuItem(client, this, "Ban Reason")
            {
                SubLabel = "None Specified"
            };

            reason.Activate += async() => {
                _reason = await UiHelper.PromptTextInput("", controller : client.Menu);

                reason.SubLabel = _reason.Length > 16 ? $"{_reason.Substring( 0, 16 )}..." : _reason;
            };
            Add(reason);

            var length = new MenuItemSpinnerInt(client, this, "Ban Duration", 60, 1, 8192, 1, true);

            Add(length);

            var lengthUnit = new MenuItemSpinnerList <string>(client, this, "Ban Duration (Units)", Units.Keys.ToList(), 0, true);

            Add(lengthUnit);

            var perma = new MenuItemCheckbox(client, this, "Permanent Ban");

            perma.Activate += () => {
                _perma = !_perma;
                lengthUnit.IsVisible = length.IsVisible = _perma;
                return(Task.FromResult(0));
            };
            Add(perma);

            var submit = new MenuItem(client, this, "Execute Ban");

            submit.Activate += () => {
                var time = _perma ? int.MinValue : Units.ElementAt((int)lengthUnit.Value).Value *(int)length.Value;
                client.Menu.CurrentMenu = parent.Parent;
                parent.Ban(_reason, time);
                return(Task.FromResult(0));
            };
            Add(submit);
        }
Exemplo n.º 5
0
        public HudMenu(Client client, Menu parent) : base("HUD Menu", parent)
        {
            var radar = new MenuItemCheckbox(client, this, "Hide Minimap")
            {
                IsChecked = API.IsRadarHidden
            };

            radar.Activate += () => {
                API.DisplayRadar(API.IsRadarHidden());
                return(Task.FromResult(0));
            };
            Add(radar);

            Add(new MenuItemSubMenu(client, this, new HudComponentMenu(client, this), "HUD Components"));

            var resetTimecycle = new MenuItem(client, this, "Reset Timecycle");

            resetTimecycle.Activate += () => {
                Function.Call(Hash.CLEAR_TIMECYCLE_MODIFIER);
                return(Task.FromResult(0));
            };
            Add(resetTimecycle);

            var multTimecycle = new MenuItemSpinnerF(client, this, "Timecycle Strength", 1f, 0f, 5f, 0.05f, true);

            multTimecycle.ValueUpdate += (val) => {
                Function.Call(Hash.SET_TIMECYCLE_MODIFIER_STRENGTH, val);
                return(val);
            };
            Add(multTimecycle);

            var timecycles = new MenuItemSubMenu(client, this, new TimeCycleMenu(client, this), "Timecycles");

            Add(timecycles);

            client.RegisterTickHandler(OnTick);
        }
Exemplo n.º 6
0
 public HudMenu(Client client, AdminMenu parent) : base("HUD Menu", parent)
 {
     client.RegisterTickHandler(OnTick);
     _overheadNames = new MenuItemCheckbox(client, this, "Overhead Names");
     Add(_overheadNames);
 }
Exemplo n.º 7
0
        public MenuItemInterior(Client client, Menu owner, InteriorModel interior) : base(interior.Name, owner)
        {
            Interior = interior;

            var tele = new MenuItem(client, owner, "Teleport");

            tele.Activate += async() => {
                API.DoScreenFadeOut(200);
                await BaseScript.Delay(250);

                Game.PlayerPed.Position         = interior.Position;
                Game.PlayerPed.IsPositionFrozen = true;
                await BaseScript.Delay(50);

                Game.PlayerPed.IsPositionFrozen = false;
                API.DoScreenFadeIn(200);
            };
            Add(tele);

            foreach (var inter in interior.Interior)
            {
                var label = inter;
                if (label.Length > 16)
                {
                    label = inter.Substring(0, 16) + "...";
                }
                var toggle = new MenuItemCheckbox(client, owner, label, interior.IsLoaded)
                {
                    IsChecked = () => interior.IsLoaded
                };
                toggle.Activate += () => {
                    foreach (var i in InteriorMenu.Interiors)
                    {
                        if (!InteriorMenu.RestrictMultiple.Contains(i.Category) || i.Category != interior.Category || !i.IsLoaded || i.Interior.All(p => p != inter))
                        {
                            continue;
                        }
                        Function.Call(Hash.REMOVE_IPL, inter);
                        i.IsLoaded = false;
                    }

                    interior.IsLoaded = !interior.IsLoaded;
                    Function.Call(interior.IsLoaded ? Hash.REQUEST_IPL : Hash.REMOVE_IPL, inter);
                    return(Task.FromResult(0));
                };
                Add(toggle);
            }

            if (interior.InteriorProps.Any())
            {
                var propMenu = new Menu("Interior Props", this);

                foreach (var kvp in interior.InteriorProps)
                {
                    var label = kvp.Key;
                    if (label.Length > 16)
                    {
                        label = kvp.Key.Substring(0, 16) + "...";
                    }
                    var prop = new MenuItemCheckbox(client, propMenu, label, kvp.Value)
                    {
                        IsChecked = () => interior.InteriorProps[kvp.Key]
                    };
                    prop.Activate += () => {
                        var id = Function.Call <int>(Hash.GET_INTERIOR_AT_COORDS, interior.Position.X, interior.Position.Y, interior.Position.Z);
                        interior.InteriorProps[kvp.Key] = !interior.InteriorProps[kvp.Key];
                        Function.Call(interior.InteriorProps[kvp.Key] ? Hash._ENABLE_INTERIOR_PROP : Hash._DISABLE_INTERIOR_PROP, id, kvp.Key);
                        Function.Call(Hash.REFRESH_INTERIOR, id);
                        return(Task.FromResult(0));
                    };
                    propMenu.Add(prop);
                }
                Add(new MenuItemSubMenu(client, this, propMenu, "Interior Props"));
            }
        }
Exemplo n.º 8
0
        public PlayerMenu(Client client, Menu parent) : base("Player Menu", parent)
        {
            var heal = new MenuItem(client, this, "Heal Player");

            heal.Activate += () => {
                if (Game.PlayerPed.Health < Game.PlayerPed.MaxHealth)
                {
                    Game.PlayerPed.Health = Math.Min(100, Game.PlayerPed.MaxHealth);
                }
                return(Task.FromResult(0));
            };
            Add(heal);

            var armor = new MenuItem(client, this, "Give Armor");

            armor.Activate += () => {
                Game.PlayerPed.Armor = 100;
                return(Task.FromResult(0));
            };
            Add(armor);

            var gaw = new MenuItem(client, this, "Give All Weapons");

            gaw.Activate += () => {
                foreach (WeaponHash weapon in Enum.GetValues(typeof(WeaponHash)))
                {
                    Game.PlayerPed.Weapons.Give(weapon, 250, false, true);
                }
                return(Task.FromResult(0));
            };
            Add(gaw);

            var pedModel = new MenuItemSubMenu(client, this, new PlayerPedMenu(client, this), "Change Ped Model");

            Add(pedModel);

            _wantedItem              = new MenuItemSpinnerInt(client, this, "Wanted Level", Game.Player.WantedLevel, 0, 5, 1);
            _wantedItem.ValueUpdate += (val) => {
                Game.Player.WantedLevel = val;
                return(val);
            };
            Add(_wantedItem);

            var neverWanted = new MenuItemCheckbox(client, this, "Never Wanted", NeverWanted)
            {
                IsChecked = () => NeverWanted
            };

            neverWanted.Activate += () => {
                NeverWanted = !NeverWanted;
                return(Task.FromResult(0));
            };
            Add(neverWanted);

            var godMode = new MenuItemCheckbox(client, this, "God Mode")
            {
                IsChecked = () => Game.PlayerPed.IsInvincible
            };

            godMode.Activate += () => {
                Game.PlayerPed.IsInvincible = !Game.PlayerPed.IsInvincible;
                return(Task.FromResult(0));
            };
            Add(godMode);

            var ragdoll = new MenuItemCheckbox(client, this, "Can Ragdoll")
            {
                IsChecked = () => Game.PlayerPed.CanRagdoll
            };

            ragdoll.Activate += () => {
                Game.PlayerPed.CanRagdoll = !Game.PlayerPed.CanRagdoll;
                return(Task.FromResult(0));
            };
            Add(ragdoll);

            var stamina = new MenuItemCheckbox(client, this, "Infinite Stamina");

            stamina.Activate += () => {
                InfiniteStamina = !InfiniteStamina;
                return(Task.FromResult(0));
            };
            stamina.IsChecked = () => InfiniteStamina;
            Add(stamina);

            var speedMult = new MenuItemSpinnerF(client, this, "Sprint Speed", 1f, 1f, 1.5f, 0.05f);

            speedMult.ValueUpdate += val => {
                SpeedMultiplier = val;
                return(val);
            };
            Add(speedMult);

            client.RegisterTickHandler(OnTick);
        }
Exemplo n.º 9
0
        public VehicleMenu(Client client, Menu parent) : base("Vehicle Menu", parent)
        {
            Add(new MenuItemSubMenu(client, this, new VehicleSpawnMenu(client, this), "Spawn Vehicle"));

            var invincible = new MenuItemCheckbox(client, this, "Invincible", IsInvincible)
            {
                IsChecked = () => IsInvincible
            };

            invincible.Activate += () => {
                IsInvincible = !IsInvincible;
                return(Task.FromResult(0));
            };
            Add(invincible);

            var invisible = new MenuItemCheckbox(client, this, "Invisible", IsInvisible)
            {
                IsChecked = () => IsInvisible
            };

            invisible.Activate += () => {
                IsInvisible = !IsInvisible;
                return(Task.FromResult(0));
            };
            Add(invisible);

            var vehicleColors = new List <VehicleColor>();

            foreach (VehicleColor color in Enum.GetValues(typeof(VehicleColor)))
            {
                vehicleColors.Add(color);
            }

            var primary = new MenuItemSpinnerList <VehicleColor>(client, this, "Primary Color",
                                                                 new List <VehicleColor>(vehicleColors), 0, true);

            primary.ValueUpdate += (idx) => {
                var color = primary.Data.ElementAt((int)idx);
                if (Game.PlayerPed.CurrentVehicle != null)
                {
                    Game.PlayerPed.CurrentVehicle.Mods.PrimaryColor = color;
                }
                return(idx);
            };
            Add(primary);

            var secondary = new MenuItemSpinnerList <VehicleColor>(client, this, "Secondary Color",
                                                                   new List <VehicleColor>(vehicleColors), 0, true);

            secondary.ValueUpdate += (idx) => {
                var color = secondary.Data.ElementAt((int)idx);
                if (Game.PlayerPed.CurrentVehicle != null)
                {
                    Game.PlayerPed.CurrentVehicle.Mods.SecondaryColor = color;
                }
                return(idx);
            };
            Add(secondary);

            var pearl = new MenuItemSpinnerList <VehicleColor>(client, this, "Pearlescent Color",
                                                               new List <VehicleColor>(vehicleColors), 0, true);

            pearl.ValueUpdate += (idx) => {
                var color = pearl.Data.ElementAt((int)idx);
                if (Game.PlayerPed.CurrentVehicle != null)
                {
                    Game.PlayerPed.CurrentVehicle.Mods.PearlescentColor = color;
                }
                return(idx);
            };
            Add(pearl);

            var license = new MenuItem(client, this, "License Plate");

            license.Activate += async() => {
                var text = await UiHelper.PromptTextInput(Game.PlayerPed.CurrentVehicle?.Mods.LicensePlate, 8, client.Menu);

                if (Game.PlayerPed.CurrentVehicle != null)
                {
                    Game.PlayerPed.CurrentVehicle.Mods.LicensePlate = text;
                }
            };
            Add(license);

            var styles = new List <LicensePlateStyle>();

            foreach (LicensePlateStyle s in Enum.GetValues(typeof(LicensePlateStyle)))
            {
                styles.Add(s);
            }
            var plateStyle = new MenuItemSpinnerList <LicensePlateStyle>(client, this, "License Plate Style", styles, 0, true);

            plateStyle.ValueUpdate += (idx) => {
                var style = plateStyle.Data.ElementAt((int)idx);
                if (Game.PlayerPed.CurrentVehicle != null)
                {
                    Game.PlayerPed.CurrentVehicle.Mods.LicensePlateStyle = style;
                }
                return(idx);
            };
            Add(plateStyle);

            var hasNeon = new MenuItemCheckbox(client, this, "Neon Lights", HasNeon);

            hasNeon.IsChecked = () => HasNeon;
            hasNeon.Activate += () => {
                HasNeon = !HasNeon;
                return(Task.FromResult(0));
            };
            Add(hasNeon);

            var neonR = new MenuItemSpinnerInt(client, this, "Neon Color (Red)", NeonColor.R, 0, 255, 1, true);

            neonR.ValueUpdate += (val) => {
                NeonColor = Color.FromArgb(val, NeonColor.G, NeonColor.B);
                return(val);
            };
            Add(neonR);

            var neonG = new MenuItemSpinnerInt(client, this, "Neon Color (Green)", NeonColor.G, 0, 255, 1, true);

            neonG.ValueUpdate += (val) => {
                NeonColor = Color.FromArgb(NeonColor.R, val, NeonColor.B);
                return(val);
            };
            Add(neonG);

            var neonB = new MenuItemSpinnerInt(client, this, "Neon Color (Blue)", NeonColor.B, 0, 255, 1, true);

            neonB.ValueUpdate += (val) => {
                NeonColor = Color.FromArgb(NeonColor.R, NeonColor.G, val);
                return(val);
            };
            Add(neonB);

            Add(new MenuItemVehicleLivery(client, this));

            client.RegisterTickHandler(OnTick);
        }