Beispiel #1
0
        public Basics()
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);

            // Add the tick event
            Tick += Basics_Tick;
        }
Beispiel #2
0
        public static void Main()
#endif
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            randomFont.Activated   += RandomFont_Activated;
            showHack.Activated     += ShowHack_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(randomFont);
            menu.Add(showHack);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);
            pool.Add(hacking);

            // Add the tick event for FiveM, SHVDN2 and SHVDN3
#if (FIVEM || SHVDN2 || SHVDN3)
            Tick += Basics_Tick;
#elif RPH
            // Or on RagePluginHook, keep it running
            while (true)
            {
                Tick();
                GameFiber.Yield();
            }
#endif
        }
Beispiel #3
0
        public static void Main()
#endif
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);

#if !RAGE
            // Add the tick event
            Tick += Basics_Tick;
#else
            // There is no tick event in RAGE. It doesn't work that way.
            gameFiber = GameFiber.StartNew(
                () =>
            {
                while (true)
                {
                    Basics_Tick();
                }
            }
                );
#endif
        }
Beispiel #4
0
        /// <summary>
        /// Initialize all of the menus
        /// </summary>
        public static void Init()
        {
            WeaponsMenu.AddSubMenu(PrimaryWep);
            WeaponsMenu.AddSubMenu(SideWep);
            WeaponsMenu.AddSubMenu(HeavyWep);

            CivilianMenu.AddSubMenu(CivAir);
            CivilianMenu.AddSubMenu(CivLand);
            CivilianMenu.AddSubMenu(CivSea);
            MilitaryMenu.AddSubMenu(MilAir);
            MilitaryMenu.AddSubMenu(MilLand);
            MilitaryMenu.AddSubMenu(MilSea);
            VehicleMenu.AddSubMenu(CivilianMenu);
            VehicleMenu.AddSubMenu(MilitaryMenu);
            MainMenu.AddSubMenu(VehicleMenu);
            MainMenu.AddSubMenu(WeaponsMenu);

            MainPool.Add(PrimaryWep);
            MainPool.Add(SideWep);
            MainPool.Add(HeavyWep);
            MainPool.Add(CivAir);
            MainPool.Add(CivLand);
            MainPool.Add(CivSea);
            MainPool.Add(MilAir);
            MainPool.Add(MilLand);
            MainPool.Add(MilSea);
            MainPool.Add(CivilianMenu);
            MainPool.Add(MilitaryMenu);
            MainPool.Add(VehicleMenu);
            MainPool.Add(WeaponsMenu);
            MainPool.Add(MainMenu);

            // Heavy weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.HeavyWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                HeavyWep.Add(WeaponItem);
            }

            // Primary weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.PrimaryWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                PrimaryWep.Add(WeaponItem);
            }

            // Side weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.SideWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                SideWep.Add(WeaponItem);
            }

            // Custom weapons
            foreach (CustomWeaponConfig CustomWepConfig in Main.CustomWeaponConfigs)
            {
                NativeMenu CustomMenu = new NativeMenu(CustomWepConfig.CategoryName, CustomWepConfig.CategoryName);
                WeaponsMenu.AddSubMenu(CustomMenu);

                foreach (Classes.Weapon wep in CustomWepConfig.Weapons)
                {
                    var WeaponItem = new NativeItem(wep.DisplayName);
                    WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                    CustomMenu.Add(WeaponItem);
                }

                MainPool.Add(CustomMenu);
            }

            // Civilian vehicles
            foreach (DropVehicle veh in Main.VehConfig.CivilianVehicles)
            {
                switch (veh.Type)
                {
                case VehicleType.Heli:
                case VehicleType.Plane:
                    var VehicleItem = new NativeItem(veh.DisplayName);
                    VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivAir.Add(VehicleItem);
                    break;

                case VehicleType.Land:
                    var LandVehicleItem = new NativeItem(veh.DisplayName);
                    LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivLand.Add(LandVehicleItem);
                    break;

                case VehicleType.Sea:
                    var SeaVehicleItem = new NativeItem(veh.DisplayName);
                    SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivSea.Add(SeaVehicleItem);
                    break;
                }
            }

            // Military vehicles
            foreach (DropVehicle veh in Main.VehConfig.MilitaryVehicles)
            {
                switch (veh.Type)
                {
                case VehicleType.Heli:
                case VehicleType.Plane:
                    var VehicleItem = new NativeItem(veh.DisplayName);
                    VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilAir.Add(VehicleItem);
                    break;

                case VehicleType.Land:
                    var LandVehicleItem = new NativeItem(veh.DisplayName);
                    LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilLand.Add(LandVehicleItem);
                    break;

                case VehicleType.Sea:
                    var SeaVehicleItem = new NativeItem(veh.DisplayName);
                    SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilSea.Add(SeaVehicleItem);
                    break;
                }
            }

            // Custom vehicles
            foreach (CustomVehicleConfig CustomVehConfig in Main.CustomVehicleConfigs)
            {
                NativeMenu CustomMenu = new NativeMenu(CustomVehConfig.CategoryName, CustomVehConfig.CategoryName);
                VehicleMenu.AddSubMenu(CustomMenu);

                foreach (DropVehicle veh in CustomVehConfig.Vehicles)
                {
                    switch (veh.Type)
                    {
                    case VehicleType.Heli:
                    case VehicleType.Plane:
                        var VehicleItem = new NativeItem(veh.DisplayName);
                        VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(VehicleItem);
                        break;

                    case VehicleType.Land:
                        var LandVehicleItem = new NativeItem(veh.DisplayName);
                        LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(LandVehicleItem);
                        break;

                    case VehicleType.Sea:
                        var SeaVehicleItem = new NativeItem(veh.DisplayName);
                        SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(SeaVehicleItem);
                        break;
                    }

                    CustomVehicles.Add(veh);
                }

                MainPool.Add(CustomMenu);
            }
        }
Beispiel #5
0
        private void Common_Start(object sender, EventArgs e)
        {
            try
            {
                logger.Trace("Loading Main Menu");
                lemonPool = new ObjectPool();
                logger.Trace("Menu Pool created");
#if DEBUG
                mainMenu = new NativeMenu("NAL Beta", Strings.MenuMainTitle);
#else
                mainMenu = new NativeMenu("NAL", Strings.MenuMainTitle);
#endif
                itemLights       = new NativeCheckboxItem(Strings.ItemLightsTitle, Strings.ItemLightsSubtitle, true);
                itemCallCops     = new NativeItem(Strings.ItemCopsTitle, Strings.ItemCopsSubtitle);
                itemDifficulty   = new NativeItem(Strings.ItemDifficulty, Strings.ItemDIfficultySubtitle);
                itemKills        = new NativeItem(Strings.ItemKills, Strings.ItemKillsSubtitle);
                itemCheatEnabled = new NativeCheckboxItem(Strings.ItemCheat, Strings.ItemCheatDescription);
                itemCommand      = new NativeItem(Strings.ItemCommand, Strings.ItemCommandDescription);
                itemModels       = new NativeItem(Strings.ItemModels, Strings.ItemModelsDescription);

                modelMenu = new NativeMenu("Models", Strings.MenuModel);

                itemDefaultModel = new NativeItem("Default", "The classic NAL Model.");
                itemCopModel     = new NativeItem("LSPD Officer", "The cop.");
                modelMenu.Add(itemDefaultModel);
                modelMenu.Add(itemCopModel);
                itemDefaultModel.Activated += ItemDefaultModel_Activated;
                itemCopModel.Activated     += ItemCopModel_Activated;
                #region Items - Load & Save
                saveMenu      = new NativeMenu(Strings.MenuSaveHeader, "SAVE");
                itemSaveSlot1 = new NativeItem(string.Format(Strings.MenuSaveItem, 1), Strings.MenuSaveItemSubtitle);
                itemSaveSlot2 = new NativeItem(string.Format(Strings.MenuSaveItem, 2), Strings.MenuSaveItemSubtitle);
                itemSaveSlot3 = new NativeItem(string.Format(Strings.MenuSaveItem, 3), Strings.MenuSaveItemSubtitle);

                itemSaveSlot1.Activated += (menu, i) => SaveController.Save(Common.Blackout, 1);
                itemSaveSlot2.Activated += (menu, i) => SaveController.Save(Common.Blackout, 2);
                itemSaveSlot3.Activated += (menu, i) => SaveController.Save(Common.Blackout, 3);

                saveMenu.Add(itemSaveSlot1);
                saveMenu.Add(itemSaveSlot2);
                saveMenu.Add(itemSaveSlot3);
                lemonPool.Add(saveMenu);

                loadMenu      = new NativeMenu(Strings.MenuLoadHeader, Strings.MenuLoadSubtitle);
                itemLoadSlot1 = new NativeItem(string.Format(Strings.MenuSaveItem, 1), Strings.MenuLoadItemSubtitle);
                itemLoadSlot2 = new NativeItem(string.Format(Strings.MenuSaveItem, 2), Strings.MenuLoadItemSubtitle);
                itemLoadSlot3 = new NativeItem(string.Format(Strings.MenuSaveItem, 3), Strings.MenuLoadItemSubtitle);

                itemLoadSlot1.Activated += (menu, i) => SaveController.Load(1);
                itemLoadSlot2.Activated += (menu, i) => SaveController.Load(2);
                itemLoadSlot3.Activated += (menu, i) => SaveController.Load(3);

                loadMenu.Add(itemLoadSlot1);
                loadMenu.Add(itemLoadSlot2);
                loadMenu.Add(itemLoadSlot3);
                lemonPool.Add(loadMenu);

                itemSave             = mainMenu.AddSubMenu(saveMenu);
                itemSave.Title       = Strings.ItemSaveTitle;
                itemSave.Description = Strings.ItemSaveSubtitle;

                itemLoad             = mainMenu.AddSubMenu(loadMenu);
                itemLoad.Title       = Strings.ItemLoadTitle;
                itemLoad.Description = Strings.ItemLoadSubtitle;
                #endregion

                foodMenu = new NativeMenu("Food", Strings.MenuFoodShopSubtitle);

                itemHamburger = HungryController.CreateFoodSellerItem(Strings.FoodBurger, Foods.Hamburger, 1);
                itemChicken   = HungryController.CreateFoodSellerItem(Strings.FoodChicken, Foods.Chicken, 3);
                itemWater     = HungryController.GenerateWaterSellItem(Strings.ItemWater, 2);

                foodMenu.Add(itemHamburger);
                foodMenu.Add(itemChicken);
                foodMenu.Add(itemWater);

                logger.Trace("All instances initialized");
                mainMenu.Add(itemLights);
                mainMenu.Add(itemSave);
                mainMenu.Add(itemLoad);
                mainMenu.Add(itemCallCops);

                itemModels             = mainMenu.AddSubMenu(modelMenu);
                itemModels.Title       = Strings.ItemModels;
                itemModels.Description = Strings.ItemModelsDescription;

                mainMenu.Add(itemDifficulty);
                mainMenu.Add(itemKills);

                lemonPool.Add(mainMenu);
                lemonPool.Add(modelMenu);
                lemonPool.Add(foodMenu);
                logger.Trace("Main Menu Done");
                Tick    += MenuScript_Tick;
                KeyDown += MenuScript_KeyDown;
                itemLights.CheckboxChanged += ItemLights_CheckboxEvent;
                itemCallCops.Activated     += ItemCallCops_Activated;
                itemCommand.Activated      += ItemCommand_Activated;
                itemCheatEnabled.Activated += ItemCheatEnabled_Activated;

                timerBars.Add(hungryBar);
                timerBars.Add(waterBar);

                Common.Unload += Common_Unload;

                logger.Trace("Loading Ammu-Nation Menu");

                buyMenu          = new NativeMenu(Strings.AmmuTitle, Strings.AmmuSubtitle);
                itemPistol       = AmmuController.GenerateWeaponSellerItem(Strings.AmmuPistol, Strings.AmmuPistolSubtitle, 100);
                itemPumpShotgun  = AmmuController.GenerateWeaponSellerItem(Strings.AmmuPumpShotgun, Strings.AmmuPumpShotgunSubtitle, 200);
                itemCarbineRifle = AmmuController.GenerateWeaponSellerItem(Strings.AmmuCarbineRifle, Strings.AmmuCarbineRifleSubtitle, 350);

                itemBodyArmor = new NativeItem(Strings.WeaponBodyArmor, Strings.WeaponBodyArmorDescription)
                {
                    AltTitle = "$380"
                };
                logger.Trace("Instances created");
                buyMenu.Add(itemPistol);
                buyMenu.Add(itemPumpShotgun);
                buyMenu.Add(itemBodyArmor);
                lemonPool.Add(buyMenu);
                itemPistol.Activated       += ItemPistol_Activated;
                itemPumpShotgun.Activated  += ItemPumpShotgun_Activated;
                itemCarbineRifle.Activated += ItemCarbineRifle_Activated;
                itemBodyArmor.Activated    += ItemBodyArmor_Activated;

                repairBlip              = World.CreateBlip(repair);
                repairBlip.IsFriendly   = true;
                repairBlip.IsShortRange = true;
                repairBlip.Sprite       = BlipSprite.Garage;
                repairBlip.Color        = BlipColor.Blue;
                repairBlip.Name         = Strings.RepairBlip;

                HungryController.AddBlipsToAllResellers();
                Instance = this;

                this.Aborted += MenuScript_Aborted;
                CommandController.Init();
            }
#pragma warning disable CA1031
            catch (Exception ex)
#pragma warning restore CA1031
            {
                GameUI.DisplayHelp(Strings.ExceptionMenu);
                logger.Fatal(ex, "Error while loading menu");
                Common.UnloadMod();
                this.Abort();
            }
        }