Beispiel #1
0
        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");
        }
Beispiel #2
0
        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.");
        }
Beispiel #3
0
        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();
            }
        }