/// <summary> /// Creates all the submenus depending on the permissions of the user. /// </summary> private void CreateSubmenus() { // Add the online players menu. if (Cf.IsAllowed(Permission.OPMenu)) { OnlinePlayersMenu = new OnlinePlayers(); UIMenu menu = OnlinePlayersMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Online Players", "All currently connected players."); button.SetRightLabel("→→→"); AddMenu(menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { OnlinePlayersMenu.UpdatePlayerlist(); menu.RefreshIndex(); menu.UpdateScaleform(); } }; } if (Cf.IsAllowed(Permission.OPUnban)) { //TriggerServerEvent("vMenu:RequestBanList", PlayerId()); BannedPlayersMenu = new BannedPlayers(); UIMenu menu = BannedPlayersMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Banned Players", "View and manage all banned players in this menu."); button.SetRightLabel("→→→"); AddMenu(menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { TriggerServerEvent("vMenu:RequestBanList", PlayerId()); menu.RefreshIndex(); menu.UpdateScaleform(); } }; } // Add the player options menu. if (Cf.IsAllowed(Permission.POMenu)) { PlayerOptionsMenu = new PlayerOptions(); UIMenu menu = PlayerOptionsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Player Options", "Common player options can be accessed here."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add the vehicle options Menu. if (Cf.IsAllowed(Permission.VOMenu)) { VehicleOptionsMenu = new VehicleOptions(); UIMenu menu = VehicleOptionsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Vehicle Options", "Here you can change common vehicle options, as well as tune & style your vehicle."); button.SetRightLabel("→→→"); AddMenu(menu, button); } var vl = new Vehicles().VehicleClasses; // Add the vehicle spawner menu. if (Cf.IsAllowed(Permission.VSMenu)) { VehicleSpawnerMenu = new VehicleSpawner(); UIMenu menu = VehicleSpawnerMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Vehicle Spawner", "Spawn a vehicle by name or choose one from a specific category."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add Saved Vehicles menu. if (Cf.IsAllowed(Permission.SVMenu)) { SavedVehiclesMenu = new SavedVehicles(); UIMenu menu = SavedVehiclesMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Saved Vehicles", "Save new vehicles, or spawn or delete already saved vehicles."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add the player appearance menu. if (Cf.IsAllowed(Permission.PAMenu)) { PlayerAppearanceMenu = new PlayerAppearance(); UIMenu menu = PlayerAppearanceMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Player Appearance", "Choose a ped model, customize it and save & load your customized characters."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add the time options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (Cf.IsAllowed(Permission.TOMenu) && GetSettingsBool(Setting.vmenu_enable_time_sync)) { TimeOptionsMenu = new TimeOptions(); UIMenu menu = TimeOptionsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Time Options", "Change the time, and edit other time related options."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add the weather options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (Cf.IsAllowed(Permission.WOMenu) && GetSettingsBool(Setting.vmenu_enable_weather_sync)) { WeatherOptionsMenu = new WeatherOptions(); UIMenu menu = WeatherOptionsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Weather Options", "Change all weather related options here."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add the weapons menu. if (Cf.IsAllowed(Permission.WPMenu)) { WeaponOptionsMenu = new WeaponOptions(); UIMenu menu = WeaponOptionsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Weapon Options", "Add/remove weapons, modify weapons and set ammo options."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add Voice Chat Menu. if (Cf.IsAllowed(Permission.VCMenu)) { VoiceChatSettingsMenu = new VoiceChat(); UIMenu menu = VoiceChatSettingsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Voice Chat Settings", "Change Voice Chat options here."); button.SetRightLabel("→→→"); AddMenu(menu, button); } { RecordingMenu = new Recording(); UIMenu menu = RecordingMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Recording Options", "In-game recording options."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add misc settings menu. //if (Cf.IsAllowed(Permission.MSMenu)) // removed the permissions check, because the misc menu should've never been restricted in the first place. // not sure why I even added this before... saving of preferences and similar functions should always be allowed. // no matter what. { MiscSettingsMenu = new MiscSettings(); UIMenu menu = MiscSettingsMenu.GetMenu(); UIMenuItem button = new UIMenuItem("Misc Settings", "Miscellaneous vMenu options/settings can be configured here. You can also save your settings in this menu."); button.SetRightLabel("→→→"); AddMenu(menu, button); } // Add About Menu. AboutMenu = new About(); UIMenu sub = AboutMenu.GetMenu(); UIMenuItem btn = new UIMenuItem("About vMenu", "Information about vMenu."); btn.SetRightLabel("→→→"); AddMenu(sub, btn); // Refresh everything. Mp.RefreshIndex(); Menu.UpdateScaleform(); // Globally disable the native ui controls disabling. Mp.ControlDisablingEnabled = false; // Globally disable the "mouse edge" feature. Mp.MouseEdgeEnabled = false; if (!GetSettingsBool(Setting.vmenu_use_permissions)) { Notify.Info("vMenu is set up to ignore permissions."); } }
/// <summary> /// Creates all the submenus depending on the permissions of the user. /// </summary> private void CreateSubmenus() { // Add the online players menu. if (IsAllowed(Permission.OPMenu)) { OnlinePlayersMenu = new OnlinePlayers(); Menu menu = OnlinePlayersMenu.GetMenu(); MenuItem button = new MenuItem("Joueurs en ligne", "") { Label = "→→→" }; AddMenu(Menu, menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { OnlinePlayersMenu.UpdatePlayerlist(); menu.RefreshIndex(); } }; } if (IsAllowed(Permission.OPUnban) || IsAllowed(Permission.OPViewBannedPlayers)) { BannedPlayersMenu = new BannedPlayers(); Menu menu = BannedPlayersMenu.GetMenu(); MenuItem button = new MenuItem("Joueurs bannis", "") { Label = "→→→" }; AddMenu(Menu, menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { TriggerServerEvent("vMenu:RequestBanList", Game.Player.Handle); menu.RefreshIndex(); } }; } MenuItem playerSubmenuBtn = new MenuItem("Options du joueur", "") { Label = "→→→" }; Menu.AddMenuItem(playerSubmenuBtn); // Add the player options menu. if (IsAllowed(Permission.POMenu)) { PlayerOptionsMenu = new PlayerOptions(); Menu menu = PlayerOptionsMenu.GetMenu(); MenuItem button = new MenuItem("Outils", "") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); } MenuItem vehicleSubmenuBtn = new MenuItem("Options du véhicule", "") { Label = "→→→" }; Menu.AddMenuItem(vehicleSubmenuBtn); // Add the vehicle options Menu. if (IsAllowed(Permission.VOMenu)) { VehicleOptionsMenu = new VehicleOptions(); Menu menu = VehicleOptionsMenu.GetMenu(); MenuItem button = new MenuItem("Outils", "") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); } // Add the vehicle spawner menu. if (IsAllowed(Permission.VSMenu)) { VehicleSpawnerMenu = new VehicleSpawner(); Menu menu = VehicleSpawnerMenu.GetMenu(); MenuItem button = new MenuItem("Spawner", "") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); } // Add Saved Vehicles menu. /*if (IsAllowed(Permission.SVMenu)) * { * SavedVehiclesMenu = new SavedVehicles(); * Menu menu = SavedVehiclesMenu.GetMenu(); * MenuItem button = new MenuItem("Saved Vehicles", "Save new vehicles, or spawn or delete already saved vehicles.") * { * Label = "→→→" * }; * AddMenu(VehicleSubmenu, menu, button); * VehicleSubmenu.OnItemSelect += (sender, item, index) => * { * if (item == button) * { * SavedVehiclesMenu.UpdateMenuAvailableCategories(); * } * }; * } * * // Add the Personal Vehicle menu. * if (IsAllowed(Permission.PVMenu)) * { * PersonalVehicleMenu = new PersonalVehicle(); * Menu menu = PersonalVehicleMenu.GetMenu(); * MenuItem button = new MenuItem("Personal Vehicle", "Set a vehicle as your personal vehicle, and control some things about that vehicle when you're not inside.") * { * Label = "→→→" * }; * AddMenu(VehicleSubmenu, menu, button); * } */ // Add the player appearance menu. if (IsAllowed(Permission.PAMenu)) { PlayerAppearanceMenu = new PlayerAppearance(); Menu menu = PlayerAppearanceMenu.GetMenu(); MenuItem button = new MenuItem("Player Appearance", "Choose a ped model, customize it and save & load your customized characters.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); MpPedCustomizationMenu = new MpPedCustomization(); Menu menu2 = MpPedCustomizationMenu.GetMenu(); MenuItem button2 = new MenuItem("MP Ped Customization", "Create, edit, save and load multiplayer peds. ~r~Note, you can only save peds created in this submenu. vMenu can NOT detect peds created outside of this submenu. Simply due to GTA limitations.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu2, button2); } MenuItem worldSubmenuBtn = new MenuItem("Options Météo-Heure", "") { Label = "→→→" }; Menu.AddMenuItem(worldSubmenuBtn); // Add the time options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (IsAllowed(Permission.TOMenu) && GetSettingsBool(Setting.vmenu_enable_time_sync)) { TimeOptionsMenu = new TimeOptions(); Menu menu = TimeOptionsMenu.GetMenu(); MenuItem button = new MenuItem("Heure du jeu", "") { Label = "→→→" }; AddMenu(WorldSubmenu, menu, button); } // Add the weather options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (IsAllowed(Permission.WOMenu) && GetSettingsBool(Setting.vmenu_enable_weather_sync)) { WeatherOptionsMenu = new WeatherOptions(); Menu menu = WeatherOptionsMenu.GetMenu(); MenuItem button = new MenuItem("Météo", "") { Label = "→→→" }; AddMenu(WorldSubmenu, menu, button); } // Add the weapons menu. if (IsAllowed(Permission.WPMenu)) { WeaponOptionsMenu = new WeaponOptions(); Menu menu = WeaponOptionsMenu.GetMenu(); MenuItem button = new MenuItem("Options des Armes", "") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); } // Add Weapon Loadouts menu. /* if (IsAllowed(Permission.WLMenu)) * { * WeaponLoadoutsMenu = new WeaponLoadouts(); * Menu menu = WeaponLoadoutsMenu.GetMenu(); * MenuItem button = new MenuItem("Weapon Loadouts", "Mange, and spawn saved weapon loadouts.") * { * Label = "→→→" * }; * AddMenu(PlayerSubmenu, menu, button); * }*/ if (IsAllowed(Permission.NoClip)) { MenuItem toggleNoclip = new MenuItem("Toggle NoClip", "Toggle NoClip on or off."); PlayerSubmenu.AddMenuItem(toggleNoclip); PlayerSubmenu.OnItemSelect += (sender, item, index) => { if (item == toggleNoclip) { NoClipEnabled = !NoClipEnabled; } }; } { RecordingMenu = new Recording(); Menu menu = RecordingMenu.GetMenu(); MenuItem button = new MenuItem("Recording Options", "In-game recording options.") { Label = "→→→" }; AddMenu(Menu, menu, button); } // Add misc settings menu. { MiscSettingsMenu = new MiscSettings(); Menu menu = MiscSettingsMenu.GetMenu(); MenuItem button = new MenuItem("Divers", "") { Label = "→→→" }; AddMenu(Menu, menu, button); } // Add About Menu. /* * AboutMenu = new About(); * Menu sub = AboutMenu.GetMenu(); * MenuItem btn = new MenuItem("About vMenu", "Information about vMenu.") * { * Label = "→→→" * }; * AddMenu(Menu, sub, btn); */ // Refresh everything. MenuController.Menus.ForEach((m) => m.RefreshIndex()); if (!GetSettingsBool(Setting.vmenu_use_permissions)) { Notify.Alert("vMenu is set up to ignore permissions, default permissions will be used."); } if (PlayerSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, PlayerSubmenu, playerSubmenuBtn); } else { Menu.RemoveMenuItem(playerSubmenuBtn); } if (VehicleSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, VehicleSubmenu, vehicleSubmenuBtn); } else { Menu.RemoveMenuItem(vehicleSubmenuBtn); } if (WorldSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, WorldSubmenu, worldSubmenuBtn); } else { Menu.RemoveMenuItem(worldSubmenuBtn); } if (MiscSettingsMenu != null) { MenuController.EnableMenuToggleKeyOnController = !MiscSettingsMenu.MiscDisableControllerSupport; } }
/// <summary> /// Creates all the submenus depending on the permissions of the user. /// </summary> private void CreateSubmenus() { // Add the online players menu. if (IsAllowed(Permission.OPMenu)) { OnlinePlayersMenu = new OnlinePlayers(); Menu menu = OnlinePlayersMenu.GetMenu(); MenuItem button = new MenuItem("線上玩家列表", "當前在伺服器的所有玩家") { Label = "→→→" }; AddMenu(Menu, menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { OnlinePlayersMenu.UpdatePlayerlist(); menu.RefreshIndex(); } }; } if (IsAllowed(Permission.OPUnban) || IsAllowed(Permission.OPViewBannedPlayers)) { BannedPlayersMenu = new BannedPlayers(); Menu menu = BannedPlayersMenu.GetMenu(); MenuItem button = new MenuItem("封鎖玩家列表", "當前在伺服器被封鎖的玩家名單") { Label = "→→→" }; AddMenu(Menu, menu, button); Menu.OnItemSelect += (sender, item, index) => { if (item == button) { TriggerServerEvent("vMenu:RequestBanList", Game.Player.Handle); menu.RefreshIndex(); } }; } MenuItem playerSubmenuBtn = new MenuItem("玩家相關選項", "查看與玩家相關的功能") { Label = "→→→" }; Menu.AddMenuItem(playerSubmenuBtn); // Add the player options menu. if (IsAllowed(Permission.POMenu)) { PlayerOptionsMenu = new PlayerOptions(); Menu menu = PlayerOptionsMenu.GetMenu(); MenuItem button = new MenuItem("玩家選項", "可以查看常見的玩家功能.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); } MenuItem vehicleSubmenuBtn = new MenuItem("載具相關選項", "打開此子選單以獲取與載具相關的子類別.") { Label = "→→→" }; Menu.AddMenuItem(vehicleSubmenuBtn); // Add the vehicle options Menu. if (IsAllowed(Permission.VOMenu)) { VehicleOptionsMenu = new VehicleOptions(); Menu menu = VehicleOptionsMenu.GetMenu(); MenuItem button = new MenuItem("載具相關選項", "您可以更改常用的載具選項,以及調整和样式化您的載具.") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); } // Add the vehicle spawner menu. if (IsAllowed(Permission.VSMenu)) { VehicleSpawnerMenu = new VehicleSpawner(); Menu menu = VehicleSpawnerMenu.GetMenu(); MenuItem button = new MenuItem("載具召喚", "召喚出任何一台載具.") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); } // Add Saved Vehicles menu. if (IsAllowed(Permission.SVMenu)) { SavedVehiclesMenu = new SavedVehicles(); Menu menu = SavedVehiclesMenu.GetMenu(); MenuItem button = new MenuItem("載具管理", "可以用來管你的載具.") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); VehicleSubmenu.OnItemSelect += (sender, item, index) => { if (item == button) { SavedVehiclesMenu.UpdateMenuAvailableCategories(); } }; } // Add the Personal Vehicle menu. if (IsAllowed(Permission.PVMenu)) { PersonalVehicleMenu = new PersonalVehicle(); Menu menu = PersonalVehicleMenu.GetMenu(); MenuItem button = new MenuItem("私人車輛", "將一輛車設置為私人車輛,不再室內時還可以對該車輛進行某些操作.") { Label = "→→→" }; AddMenu(VehicleSubmenu, menu, button); } // Add the player appearance menu. if (IsAllowed(Permission.PAMenu)) { PlayerAppearanceMenu = new PlayerAppearance(); Menu menu = PlayerAppearanceMenu.GetMenu(); MenuItem button = new MenuItem("玩家容貌", "選擇一個PED模型,對其進行自定義,儲存加載角色.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); MpPedCustomizationMenu = new MpPedCustomization(); Menu menu2 = MpPedCustomizationMenu.GetMenu(); MenuItem button2 = new MenuItem("人物外觀選項", "創建、編輯、保存和加載外觀。 ~r~注意,您只能保存在此子選單中創建的外觀。 vMenu無法檢測到在此子選單之外創建的外觀。完全是由於GTA限制.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu2, button2); } MenuItem worldSubmenuBtn = new MenuItem("世界相關選項", "打開與世界相關的子類別的子選單.") { Label = "→→→" }; Menu.AddMenuItem(worldSubmenuBtn); // Add the time options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (IsAllowed(Permission.TOMenu) && GetSettingsBool(Setting.vmenu_enable_time_sync)) { TimeOptionsMenu = new TimeOptions(); Menu menu = TimeOptionsMenu.GetMenu(); MenuItem button = new MenuItem("時間選項", "更改時間,並編輯其他與時間相關的選項.") { Label = "→→→" }; AddMenu(WorldSubmenu, menu, button); } // Add the weather options menu. // check for 'not true' to make sure that it _ONLY_ gets disabled if the owner _REALLY_ wants it disabled, not if they accidentally spelled "false" wrong or whatever. if (IsAllowed(Permission.WOMenu) && GetSettingsBool(Setting.vmenu_enable_weather_sync)) { WeatherOptionsMenu = new WeatherOptions(); Menu menu = WeatherOptionsMenu.GetMenu(); MenuItem button = new MenuItem("天氣選項", "在此處更改所有與天氣相關的選項.") { Label = "→→→" }; AddMenu(WorldSubmenu, menu, button); } // Add the weapons menu. if (IsAllowed(Permission.WPMenu)) { WeaponOptionsMenu = new WeaponOptions(); Menu menu = WeaponOptionsMenu.GetMenu(); MenuItem button = new MenuItem("武器選項", "添加/刪除武器,修改武器並設置彈藥選項.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); } // Add Weapon Loadouts menu. if (IsAllowed(Permission.WLMenu)) { WeaponLoadoutsMenu = new WeaponLoadouts(); Menu menu = WeaponLoadoutsMenu.GetMenu(); MenuItem button = new MenuItem("武器裝載量", "管理,並生成節省的武器裝載.") { Label = "→→→" }; AddMenu(PlayerSubmenu, menu, button); } if (IsAllowed(Permission.NoClip)) { MenuItem toggleNoclip = new MenuItem("切換 NoClip", "切換 NoClip 啟用或停用."); PlayerSubmenu.AddMenuItem(toggleNoclip); PlayerSubmenu.OnItemSelect += (sender, item, index) => { if (item == toggleNoclip) { NoClipEnabled = !NoClipEnabled; } }; } // Add Voice Chat Menu. if (IsAllowed(Permission.VCMenu)) { VoiceChatSettingsMenu = new VoiceChat(); Menu menu = VoiceChatSettingsMenu.GetMenu(); MenuItem button = new MenuItem("語音聊天設置", "在此處更改語音聊天選項.") { Label = "→→→" }; AddMenu(Menu, menu, button); } { RecordingMenu = new Recording(); Menu menu = RecordingMenu.GetMenu(); MenuItem button = new MenuItem("錄影選項", "遊戲中的錄製選項.") { Label = "→→→" }; AddMenu(Menu, menu, button); } // Add misc settings menu. { MiscSettingsMenu = new MiscSettings(); Menu menu = MiscSettingsMenu.GetMenu(); MenuItem button = new MenuItem("其他設定", "可以在此處配置其他vMenu選項/設置。您也可以在此選單中保存設置.") { Label = "→→→" }; AddMenu(Menu, menu, button); } // Add About Menu. AboutMenu = new About(); Menu sub = AboutMenu.GetMenu(); MenuItem btn = new MenuItem("關於vMenu", "介紹 vMenu.") { Label = "→→→" }; AddMenu(Menu, sub, btn); // Refresh everything. MenuController.Menus.ForEach((m) => m.RefreshIndex()); if (!GetSettingsBool(Setting.vmenu_use_permissions)) { Notify.Alert("vMenu設置為忽略權限,將使用預設權限."); } if (PlayerSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, PlayerSubmenu, playerSubmenuBtn); } else { Menu.RemoveMenuItem(playerSubmenuBtn); } if (VehicleSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, VehicleSubmenu, vehicleSubmenuBtn); } else { Menu.RemoveMenuItem(vehicleSubmenuBtn); } if (WorldSubmenu.Size > 0) { MenuController.BindMenuItem(Menu, WorldSubmenu, worldSubmenuBtn); } else { Menu.RemoveMenuItem(worldSubmenuBtn); } if (MiscSettingsMenu != null) { MenuController.EnableMenuToggleKeyOnController = !MiscSettingsMenu.MiscDisableControllerSupport; } }