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; }
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 }
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 }
/// <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); } }
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(); } }