private static void UpdateActiveLoadout(int loadout) { //Quick logic to uncheck non-active loadouts for (int i = 0; i < Global.Application.LoadoutCount; i++) { if (i == loadout) { pLoadouts[i].Checked = true; } else { pLoadouts[i].Checked = false; } } Logger.DebugLog("Starting Active Loadout Change."); //Setting and loading config file LoadoutConfig.SetConfigPath(Global.Application.ConfigPath + loadouts[(loadout)].LoadoutConfig); LoadoutConfig.LoadConfig(); Logger.DebugLog("Setting Loadout #" + (loadout + 1) + " as Active Loadout."); Logger.DebugLog("Loadout Title: " + Global.Loadout.LoadoutTitle + " FilePath: " + LoadoutConfig.GetConfigPath()); pLoadouts[loadout].Checked = true; pLoadouts[loadout].Text = Global.Loadout.LoadoutTitle; //Sending notification of active loadout change Notifier.Notify(Global.Loadout.LoadoutTitle + " set as active loadout ~g~Successfully~s~!"); Logger.DebugLog("Active Loadout Changed"); }
public static void LoadConfig() { InitializationFile settings = initialiseFile(Global.Application.ConfigPath + "EasyLoadout.ini"); Global.Application.DebugLogging = LoadoutConfig.ToBoolean(settings.ReadString("General", "DebugLogging", "false")); Logger.DebugLog("General Config Loading Started."); KeysConverter kc = new KeysConverter(); string opTemp, opmTemp, glTemp, glmTemp, dlnTemp, dlcTemp; opTemp = settings.ReadString("Keybinds", "OpenMenu", "F8"); opmTemp = settings.ReadString("Keybinds", "OpenMenuModifier", "None"); glTemp = settings.ReadString("Keybinds", "GiveLoadout", "F7"); glmTemp = settings.ReadString("Keybinds", "GiveLoadoutModifier", "None"); Global.Controls.OpenMenu = (Keys)kc.ConvertFromString(opTemp); Global.Controls.OpenMenuModifier = (Keys)kc.ConvertFromString(opmTemp); Global.Controls.GiveLoadout = (Keys)kc.ConvertFromString(glTemp); Global.Controls.GiveLoadoutModifier = (Keys)kc.ConvertFromString(glmTemp); dlnTemp = settings.ReadString("General", "DefaultLoadout", "Loadout1"); dlcTemp = settings.ReadString("General", dlnTemp, "Loadout1"); Global.Application.DefaultLoadout = new LoadoutData(dlnTemp, dlcTemp); Global.Application.LoadoutCount = settings.ReadInt32("MultiLoadout", "LoadoutCount", 3); //Ammo Count Global.LoadoutAmmo.PistolAmmo = settings.ReadInt16("Ammo", "PistolAmmo", 10000); Global.LoadoutAmmo.MGAmmo = settings.ReadInt16("Ammo", "MGAmmo", 10000); Global.LoadoutAmmo.ShotgunAmmo = settings.ReadInt16("Ammo", "ShotgunAmmo", 10000); Global.LoadoutAmmo.RifleAmmo = settings.ReadInt16("Ammo", "RifleAmmo", 10000); Global.LoadoutAmmo.SniperAmmo = settings.ReadInt16("Ammo", "SniperAmmo", 10000); Global.LoadoutAmmo.HeavyAmmo = settings.ReadInt16("Ammo", "HeavyAmmo", 10000); Global.LoadoutAmmo.ThrowableCount = settings.ReadInt16("Ammo", "ThrowableCount", 10000); Logger.DebugLog("General Config Loading Finished."); }
public static void RunPlugin() { Logger.DebugLog("Core Plugin Function Started"); loadouts = new List <LoadoutData>(); pLoadouts = new List <UIMenuCheckboxItem>(); //Initial menu setup pMenuPool = new MenuPool(); pLoadoutMenu = new UIMenu("Easy Loadout", "Choose your active loadout"); pMenuPool.Add(pLoadoutMenu); //This is where the user-defined loadout count happens at and is initially loaded //We're running through all of the configs and adding them to the loadouts list aswell as adding a menu item for them for (int i = 0; i < Global.Application.LoadoutCount; i++) { loadouts.Add(new LoadoutData("Loadout" + (i + 1), Config.GetConfigFile(i + 1))); LoadoutConfig.SetConfigPath(Global.Application.ConfigPath + loadouts[i].LoadoutConfig); LoadoutConfig.LoadConfigTitle(); pLoadouts.Add(new UIMenuCheckboxItem(Global.Loadout.LoadoutTitle, true, "Set " + Global.Loadout.LoadoutTitle + " as the active loadout.")); pLoadoutMenu.AddItem(pLoadouts[i]); } pLoadoutMenu.AddItem(pGiveLoadout = new UIMenuItem("Give Loadout")); pLoadoutMenu.RefreshIndex(); pLoadoutMenu.OnItemSelect += OnItemSelect; pLoadoutMenu.OnCheckboxChange += OnCheckboxChange; //Error checking for default loadout, this should allow us to ensure that if an invalid loadout is chosen then it'll default to the first loadout config for (int i = 0; i <= Global.Application.LoadoutCount; i++) { if (i == Global.Application.LoadoutCount) { Logger.DebugLog(Global.Application.DefaultLoadout.LoadoutNumber + " Is Not A Valid Loadout. Defaulting to " + loadouts[0].LoadoutNumber + " as default."); LoadoutConfig.SetConfigPath(Global.Application.ConfigPath + loadouts[0].LoadoutConfig); LoadoutConfig.LoadConfig(); UpdateActiveLoadout(0); } else if (Global.Application.DefaultLoadout.LoadoutNumber.Equals(loadouts[i].LoadoutNumber)) { Logger.DebugLog(Global.Application.DefaultLoadout.LoadoutNumber + " Is A Valid Loadout, Setting It To Load By Default."); LoadoutConfig.SetConfigPath(Global.Application.ConfigPath + Global.Application.DefaultLoadout.LoadoutConfig); LoadoutConfig.LoadConfig(); UpdateActiveLoadout(i); break; } } //Initial loadout giving for when player goes on duty GiveLoadout(); //Game loop while (true) { GameFiber.Yield(); //Checking if keybinds for opening menu is pressed. Currently it doesn't check if any other menu is open, so it can overlap with other RageNativeUI menus. if (Game.IsKeyDownRightNow(Global.Controls.OpenMenuModifier) && Game.IsKeyDown(Global.Controls.OpenMenu) || Global.Controls.OpenMenuModifier == Keys.None && Game.IsKeyDown(Global.Controls.OpenMenu)) { Logger.DebugLog("Menu button pressed, toggling menu status"); pLoadoutMenu.Visible = !pLoadoutMenu.Visible; } if (Game.IsKeyDownRightNow(Global.Controls.GiveLoadoutModifier) && Game.IsKeyDown(Global.Controls.GiveLoadout) || Global.Controls.GiveLoadoutModifier == Keys.None && Game.IsKeyDown(Global.Controls.GiveLoadout)) { Logger.DebugLog("Quick Give Bind Pressed, Giving Loadout"); GiveLoadout(); } pMenuPool.ProcessMenus(); } }