diff --git a/FloatToolGUI/Benchmark.cs b/FloatToolGUI/Benchmark.cs index 7b437b2..8efc8c5 100644 --- a/FloatToolGUI/Benchmark.cs +++ b/FloatToolGUI/Benchmark.cs @@ -32,17 +32,16 @@ public void parseCraft(List inputs, List outputs, string want) { decimal wantFloat = 1; if (CurrentSearchMode != SearchMode.Equal) - decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); + decimal.TryParse(want, NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); - foreach (var item in outputs) + for (int i = 0; i < outputs.Count; i++) { - decimal flotOrigin = Math.Round(craft(inputs, item.MinFloat, item.MaxFloat), 14); - string flot = craftF(inputs, item.MinFloat, item.MaxFloat); + decimal flotOrigin = Math.Round(craft(inputs, outputs[i].MinFloat, outputs[i].MaxFloat), 14); if ( - ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) || - ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) || - ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater) + (flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want, StringComparison.Ordinal) && CurrentSearchMode == SearchMode.Equal) || + (CurrentSearchMode == SearchMode.Less && (flotOrigin < wantFloat)) || + (CurrentSearchMode == SearchMode.Greater && (flotOrigin > wantFloat)) ) { return; @@ -254,7 +253,7 @@ private void submitScoreBtn_Click(object sender, EventArgs e) try { submitScoreBtn.Enabled = false; - HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{uri}addBenchmark.php?cpu={cpuNameLabel.Text} ({benchmarkThreadsNumericUpdown.Value.ToString()})&speed={speedLabel.Text.Split(' ')[0]}"); + HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{uri}addBenchmark.php?cpu={cpuNameLabel.Text} ({benchmarkThreadsNumericUpdown.Value} Threads)&speed={speedLabel.Text.Split(' ')[0]}"); req.UserAgent = $"FloatTool/{versionLabel2.Text}"; HttpWebResponse res = (HttpWebResponse)req.GetResponse(); res.Close(); diff --git a/FloatToolGUI/Calculation.cs b/FloatToolGUI/Calculation.cs index fd9586e..e357f37 100644 --- a/FloatToolGUI/Calculation.cs +++ b/FloatToolGUI/Calculation.cs @@ -22,7 +22,7 @@ static public decimal craft(List ingridients, float minFloat, float m decimal avgFloat = 0; foreach (InputSkin f in ingridients) { - avgFloat += (decimal)f.WearValue; + avgFloat += f.WearValue; } avgFloat /= 10; return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat; diff --git a/FloatToolGUI/FloatToolGUI.csproj b/FloatToolGUI/FloatToolGUI.csproj index cb64433..5c9f71b 100644 --- a/FloatToolGUI/FloatToolGUI.csproj +++ b/FloatToolGUI/FloatToolGUI.csproj @@ -193,6 +193,8 @@ + + Always diff --git a/FloatToolGUI/InputSkin.cs b/FloatToolGUI/InputSkin.cs index 1dbb4b1..d0fb848 100644 --- a/FloatToolGUI/InputSkin.cs +++ b/FloatToolGUI/InputSkin.cs @@ -9,20 +9,32 @@ namespace FloatToolGUI public class InputSkin { public Skin SkinReference { get; set; } - public double WearValue { get; set; } + public decimal WearValue { get; set; } public float Price { get; set; } public Currency SkinCurrency { get; set; } - public InputSkin(double wear, float price, Currency currency) { + public InputSkin(decimal wear, float price, Currency currency) { WearValue = wear; Price = price; SkinCurrency = currency; } + public InputSkin(double wear, float price, Currency currency) + { + WearValue = (decimal)wear; + Price = price; + SkinCurrency = currency; + } + internal int CompareTo(InputSkin b) { return WearValue > b.WearValue ? 1 : (WearValue < b.WearValue ? -1 : 0); } + + public override string ToString() + { + return WearValue.ToString(); + } } } diff --git a/FloatToolGUI/Logger.cs b/FloatToolGUI/Logger.cs index caa89ac..9adcc97 100644 --- a/FloatToolGUI/Logger.cs +++ b/FloatToolGUI/Logger.cs @@ -9,6 +9,8 @@ namespace FloatToolGUI { static class Logger { + static string LaunchTime = DateTime.Now.ToString().Replace(' ', '_').Replace(':', '-'); + static public void Log(object data) { using (StreamWriter w = File.AppendText("debug.log")) @@ -20,7 +22,7 @@ static public void Log(object data) static public void SaveCrashReport() { Directory.CreateDirectory("crashreports"); - File.Copy("debug.log", @$"crashreports{Path.DirectorySeparatorChar}{DateTime.Now.ToString().Replace(' ', '_').Replace(':', '-')}.log"); + File.Copy("debug.log", @$"crashreports{Path.DirectorySeparatorChar}{LaunchTime}.log", true); } static public void ClearLogs() diff --git a/FloatToolGUI/Main.Designer.cs b/FloatToolGUI/Main.Designer.cs index fc78aab..9f3f006 100644 --- a/FloatToolGUI/Main.Designer.cs +++ b/FloatToolGUI/Main.Designer.cs @@ -89,6 +89,7 @@ private void InitializeComponent() this.weaponSkinBox = new System.Windows.Forms.ComboBox(); this.panel5 = new System.Windows.Forms.Panel(); this.panel16 = new System.Windows.Forms.Panel(); + this.startSearchSingleButton = new System.Windows.Forms.Button(); this.downloadProgressBar = new FloatToolGUI.CustomProgressBar(); this.searchmodeGreater_btn = new System.Windows.Forms.Button(); this.searchmodeEqual_btn = new System.Windows.Forms.Button(); @@ -136,22 +137,22 @@ private void InitializeComponent() // // splitContainer1 // - this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); resources.ApplyResources(this.splitContainer1, "splitContainer1"); + this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.splitContainer1.ForeColor = System.Drawing.Color.White; this.splitContainer1.Name = "splitContainer1"; // // splitContainer1.Panel1 // + resources.ApplyResources(this.splitContainer1.Panel1, "splitContainer1.Panel1"); this.splitContainer1.Panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.splitContainer1.Panel1.Controls.Add(this.foundCombinationContainer); - resources.ApplyResources(this.splitContainer1.Panel1, "splitContainer1.Panel1"); // // splitContainer1.Panel2 // + resources.ApplyResources(this.splitContainer1.Panel2, "splitContainer1.Panel2"); this.splitContainer1.Panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.splitContainer1.Panel2.Controls.Add(this.outputConsoleBox); - resources.ApplyResources(this.splitContainer1.Panel2, "splitContainer1.Panel2"); // // foundCombinationContainer // @@ -161,10 +162,10 @@ private void InitializeComponent() // // outputConsoleBox // + resources.ApplyResources(this.outputConsoleBox, "outputConsoleBox"); this.outputConsoleBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.outputConsoleBox.BorderStyle = System.Windows.Forms.BorderStyle.None; this.outputConsoleBox.Cursor = System.Windows.Forms.Cursors.Default; - resources.ApplyResources(this.outputConsoleBox, "outputConsoleBox"); this.outputConsoleBox.ForeColor = System.Drawing.Color.White; this.outputConsoleBox.Name = "outputConsoleBox"; this.outputConsoleBox.ReadOnly = true; @@ -178,70 +179,70 @@ private void InitializeComponent() // // panel1 // + resources.ApplyResources(this.panel1, "panel1"); this.panel1.BackColor = System.Drawing.Color.Silver; this.panel1.Controls.Add(this.panel8); this.panel1.Controls.Add(this.panel7); - resources.ApplyResources(this.panel1, "panel1"); this.panel1.Name = "panel1"; // // panel8 // + resources.ApplyResources(this.panel8, "panel8"); this.panel8.Controls.Add(this.panel13); this.panel8.Controls.Add(this.panel10); - resources.ApplyResources(this.panel8, "panel8"); this.panel8.Name = "panel8"; // // panel13 // + resources.ApplyResources(this.panel13, "panel13"); this.panel13.Controls.Add(this.panel11); this.panel13.Controls.Add(this.panel12); - resources.ApplyResources(this.panel13, "panel13"); this.panel13.Name = "panel13"; // // panel11 // - this.panel11.Controls.Add(this.splitContainer1); resources.ApplyResources(this.panel11, "panel11"); + this.panel11.Controls.Add(this.splitContainer1); this.panel11.Name = "panel11"; // // panel12 // - this.panel12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); resources.ApplyResources(this.panel12, "panel12"); + this.panel12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.panel12.Name = "panel12"; // // panel10 // - this.panel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); resources.ApplyResources(this.panel10, "panel10"); + this.panel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); this.panel10.Name = "panel10"; // // panel7 // + resources.ApplyResources(this.panel7, "panel7"); this.panel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(242)))), ((int)(((byte)(227))))); this.panel7.Controls.Add(this.panel9); this.panel7.Controls.Add(this.button5); this.panel7.Controls.Add(this.button4); this.panel7.Controls.Add(this.button3); - resources.ApplyResources(this.panel7, "panel7"); this.panel7.Name = "panel7"; // // panel9 // + resources.ApplyResources(this.panel9, "panel9"); this.panel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); this.panel9.Controls.Add(this.benchmarkButton); this.panel9.Controls.Add(this.settingsButton); this.panel9.Controls.Add(this.MaximizeButton); this.panel9.Controls.Add(this.minimizeBtn); this.panel9.Controls.Add(this.closeBtn); - resources.ApplyResources(this.panel9, "panel9"); this.panel9.Name = "panel9"; this.panel9.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDragEvent); // // benchmarkButton // - this.benchmarkButton.BackColor = System.Drawing.Color.Transparent; resources.ApplyResources(this.benchmarkButton, "benchmarkButton"); + this.benchmarkButton.BackColor = System.Drawing.Color.Transparent; this.benchmarkButton.FlatAppearance.BorderSize = 0; this.benchmarkButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); this.benchmarkButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; @@ -252,8 +253,8 @@ private void InitializeComponent() // // settingsButton // - this.settingsButton.BackColor = System.Drawing.Color.Transparent; resources.ApplyResources(this.settingsButton, "settingsButton"); + this.settingsButton.BackColor = System.Drawing.Color.Transparent; this.settingsButton.FlatAppearance.BorderSize = 0; this.settingsButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); this.settingsButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; @@ -296,7 +297,7 @@ private void InitializeComponent() this.closeBtn.ForeColor = System.Drawing.Color.White; this.closeBtn.Name = "closeBtn"; this.closeBtn.UseVisualStyleBackColor = false; - this.closeBtn.Click += new System.EventHandler(this.button8_Click); + this.closeBtn.Click += new System.EventHandler(this.CloseAppButton_Click); // // button5 // @@ -327,11 +328,11 @@ private void InitializeComponent() // // panel3 // + resources.ApplyResources(this.panel3, "panel3"); this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); this.panel3.Controls.Add(this.label24); this.panel3.Controls.Add(this.versionLabel); this.panel3.Controls.Add(this.label8); - resources.ApplyResources(this.panel3, "panel3"); this.panel3.Name = "panel3"; this.panel3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDragEvent); // @@ -356,6 +357,7 @@ private void InitializeComponent() // // panel6 // + resources.ApplyResources(this.panel6, "panel6"); this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); this.panel6.Controls.Add(this.stattrackCheckBox); this.panel6.Controls.Add(this.checkPossibilityBtn); @@ -370,14 +372,13 @@ private void InitializeComponent() this.panel6.Controls.Add(this.label2); this.panel6.Controls.Add(this.fullSkinName); this.panel6.Controls.Add(this.weaponSkinBox); - resources.ApplyResources(this.panel6, "panel6"); this.panel6.Name = "panel6"; // // stattrackCheckBox // + resources.ApplyResources(this.stattrackCheckBox, "stattrackCheckBox"); this.stattrackCheckBox.Checked = false; this.stattrackCheckBox.ForeColor = System.Drawing.Color.White; - resources.ApplyResources(this.stattrackCheckBox, "stattrackCheckBox"); this.stattrackCheckBox.Name = "stattrackCheckBox"; this.stattrackCheckBox.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); this.stattrackCheckBox.TurnedOnColor = System.Drawing.Color.Green; @@ -507,9 +508,9 @@ private void InitializeComponent() // // fullSkinName // + resources.ApplyResources(this.fullSkinName, "fullSkinName"); this.fullSkinName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); this.fullSkinName.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.fullSkinName, "fullSkinName"); this.fullSkinName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); this.fullSkinName.Name = "fullSkinName"; // @@ -525,15 +526,17 @@ private void InitializeComponent() // // panel5 // + resources.ApplyResources(this.panel5, "panel5"); this.panel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); this.panel5.Controls.Add(this.panel16); this.panel5.Controls.Add(this.panel15); - resources.ApplyResources(this.panel5, "panel5"); this.panel5.Name = "panel5"; // // panel16 // + resources.ApplyResources(this.panel16, "panel16"); this.panel16.BackColor = System.Drawing.Color.Transparent; + this.panel16.Controls.Add(this.startSearchSingleButton); this.panel16.Controls.Add(this.downloadProgressBar); this.panel16.Controls.Add(this.searchmodeGreater_btn); this.panel16.Controls.Add(this.searchmodeEqual_btn); @@ -548,9 +551,20 @@ private void InitializeComponent() this.panel16.Controls.Add(this.searchFloatInput); this.panel16.Controls.Add(this.sortCheckBox); this.panel16.Controls.Add(this.startBtn); - resources.ApplyResources(this.panel16, "panel16"); this.panel16.Name = "panel16"; // + // startSearchSingleButton + // + resources.ApplyResources(this.startSearchSingleButton, "startSearchSingleButton"); + this.startSearchSingleButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.startSearchSingleButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.startSearchSingleButton.FlatAppearance.BorderSize = 0; + this.startSearchSingleButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.startSearchSingleButton.ForeColor = System.Drawing.Color.White; + this.startSearchSingleButton.Name = "startSearchSingleButton"; + this.startSearchSingleButton.UseVisualStyleBackColor = false; + this.startSearchSingleButton.Click += new System.EventHandler(this.StartButtonClick); + // // downloadProgressBar // resources.ApplyResources(this.downloadProgressBar, "downloadProgressBar"); @@ -692,13 +706,13 @@ private void InitializeComponent() // // panel15 // + resources.ApplyResources(this.panel15, "panel15"); this.panel15.BackColor = System.Drawing.Color.Transparent; this.panel15.Controls.Add(this.speedStatusLabel); this.panel15.Controls.Add(this.combinationsStatusLabel); this.panel15.Controls.Add(this.gpuSearch_btn); this.panel15.Controls.Add(this.label10); this.panel15.Controls.Add(this.threadCountInput); - resources.ApplyResources(this.panel15, "panel15"); this.panel15.Name = "panel15"; // // speedStatusLabel @@ -731,9 +745,9 @@ private void InitializeComponent() // // threadCountInput // + resources.ApplyResources(this.threadCountInput, "threadCountInput"); this.threadCountInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); this.threadCountInput.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.threadCountInput, "threadCountInput"); this.threadCountInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); this.threadCountInput.Maximum = new decimal(new int[] { 1024, @@ -754,16 +768,16 @@ private void InitializeComponent() // // panel2 // + resources.ApplyResources(this.panel2, "panel2"); this.panel2.Controls.Add(this.panel5); this.panel2.Controls.Add(this.panel6); this.panel2.Controls.Add(this.panel3); - resources.ApplyResources(this.panel2, "panel2"); this.panel2.Name = "panel2"; // // panel4 // - this.panel4.Controls.Add(this.panel1); resources.ApplyResources(this.panel4, "panel4"); + this.panel4.Controls.Add(this.panel1); this.panel4.Name = "panel4"; // // WorkStatusUpdater @@ -774,9 +788,9 @@ private void InitializeComponent() // // FloatTool // + resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); - resources.ApplyResources(this, "$this"); this.ControlBox = false; this.Controls.Add(this.panel4); this.Controls.Add(this.panel2); @@ -878,6 +892,7 @@ private void InitializeComponent() private System.Windows.Forms.SplitContainer splitContainer1; private System.Windows.Forms.FlowLayoutPanel foundCombinationContainer; private System.Windows.Forms.Label label24; + private System.Windows.Forms.Button startSearchSingleButton; } } diff --git a/FloatToolGUI/Main.cs b/FloatToolGUI/Main.cs index 0b0d86e..71ea19a 100644 --- a/FloatToolGUI/Main.cs +++ b/FloatToolGUI/Main.cs @@ -62,6 +62,7 @@ public enum Currency RMB = 9000, NXP = 9001 } + public partial class FloatTool : Form { Thread thread1; @@ -74,7 +75,7 @@ public enum SearchMode Equal, Greater } - + public SearchMode CurrentSearchMode = SearchMode.Equal; public Currency currentCurr = Currency.USD; public bool discordWorker = true; @@ -98,6 +99,7 @@ static public string getSkinData(string name) break; } } + return collection + "," + rarity;//json; } } @@ -107,20 +109,20 @@ public void parseCraft(List inputs, List outputs, string want) //List results = new List(); decimal wantFloat = 1; if (CurrentSearchMode != SearchMode.Equal) - decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); + decimal.TryParse(want, NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); - foreach (var item in outputs) + for (int i = 0; i < outputs.Count; i++) { - decimal flotOrigin = Math.Round(craft(inputs, item.MinFloat, item.MaxFloat), 14); - string flot = craftF(inputs, item.MinFloat, item.MaxFloat); + decimal flotOrigin = Math.Round(craft(inputs, outputs[i].MinFloat, outputs[i].MaxFloat), 14); if ( - ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) || - ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) || - ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater) + (flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want, StringComparison.Ordinal) && CurrentSearchMode == SearchMode.Equal) || + (CurrentSearchMode == SearchMode.Less && (flotOrigin < wantFloat)) || + (CurrentSearchMode == SearchMode.Greater && (flotOrigin > wantFloat)) ) { - this.Invoke((MethodInvoker)(() => + string flot = craftF(inputs, outputs[i].MinFloat, outputs[i].MaxFloat); + Invoke((MethodInvoker)(() => { float price = 0f; List floatStrings = new List(); @@ -130,11 +132,11 @@ public void parseCraft(List inputs, List outputs, string want) price += fl.Price; } - Logger.Log($"[{DateTime.Now.ToString()}]: Found coombination {{"); + Logger.Log($"[{DateTime.Now}]: Found coombination {{"); Logger.Log($" Float = {flotOrigin}{newLine}" + $" Test Float = {flot}{newLine}" + $" Price = {price} {inputs[0].SkinCurrency}{newLine}" + - $" Float list = [{String.Join(", ", floatStrings)}]{newLine}}}"); + $" Float list = [{string.Join(", ", floatStrings)}]{newLine}}}"); AddCombinationToList(DateTime.Now.ToString("HH:mm:ss"), flotOrigin, flot, price, floatStrings); ConsoleBuffer.Append($"[{DateTime.Now.ToString("HH:mm:ss")}] {strings.CombinationFound}{newLine}"); @@ -142,6 +144,9 @@ public void parseCraft(List inputs, List outputs, string want) ConsoleBuffer.Append($"{strings.TestFloat}: {flot}{newLine}"); ConsoleBuffer.Append($"Цена: {price} {inputs[0].SkinCurrency}{newLine}"); ConsoleBuffer.Append($"{strings.FloatList}: "); + + if (SingleSearch) Searching = false; + if (!muteSound) { //play sound @@ -162,11 +167,9 @@ public void parseCraft(List inputs, List outputs, string want) }); } - ConsoleBuffer.Append($"[{String.Join(", ", floatStrings)}]{newLine}====================================={newLine}"); + ConsoleBuffer.Append($"[{string.Join(", ", floatStrings)}]{newLine}====================================={newLine}"); } )); - - //textBox2.AppendText( "IEEE754: " + flot + newLine; return; } } @@ -199,10 +202,10 @@ public void UpdateOutcomes() dynamic items = JsonConvert.DeserializeObject(json); foreach (var skn in items) { - if (skn["name"].ToString() == skin) + if (string.Compare(skn["name"].ToString(), skin) == 0) { foreach (var skin2 in items) - if (skn["case"].ToString() == skin2["case"].ToString()) + if (string.Compare(skn["case"].ToString(), skin2["case"].ToString()) == 0) { if (skin2["rarity"].ToString().Split(' ')[0] == getNextRarity(skn["rarity"].ToString().Split(' ')[0])) craftList.Add(skin2); @@ -235,7 +238,7 @@ public void updateSearchStr() search += " (" + weaponQualityBox.Text + ")"; fullSkinName.Text = search; UpdateOutcomes(); - Logger.Log($"[{DateTime.Now.ToString()}]: Changed search skin to: {search}"); + Logger.Log($"[{DateTime.Now}]: Changed search skin to: {search}"); } public void AutoUpdater() @@ -256,8 +259,8 @@ public void AutoUpdater() if (result == DialogResult.Yes) { - string strExeFilePath = System.Reflection.Assembly.GetExecutingAssembly().Location; - string strWorkPath = System.IO.Path.GetDirectoryName(strExeFilePath); + string strExeFilePath = Assembly.GetExecutingAssembly().Location; + string strWorkPath = Path.GetDirectoryName(strExeFilePath); Process.Start($@"{strWorkPath}\Updater.exe", data.Split('|')[1]); Invoke((MethodInvoker)(() => { Close(); } )); } @@ -275,29 +278,34 @@ public FloatTool() ConsoleBuffer = new StringBuilder(); newLine = Environment.NewLine; CheckRegistry(); + UpdateCustomPalette(); + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool", true); - registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); - - var darkThemeRK = registryData.GetValue("darkMode"); + var soundRK = registryData.GetValue("sound"); var bufferSpeedRK = registryData.GetValue("bufferSpeed"); var discordRPCRK = registryData.GetValue("discordRPC"); var currencyRK = registryData.GetValue("currency"); var updateCheckRK = registryData.GetValue("updateCheck"); + var lastThreadsRK = registryData.GetValue("lastThreads"); + var themeRK = registryData.GetValue("theme"); - ChangeTheme(Convert.ToBoolean(darkThemeRK)); + CurrentPallete = (Pallete)themeRK; + ChangeTheme(); muteSound = !Convert.ToBoolean(soundRK); WorkStatusUpdater.Interval = (int)bufferSpeedRK; discordWorker = Convert.ToBoolean(discordRPCRK); currentCurr = (Currency)currencyRK; + threadCountInput.Value = (int)lastThreadsRK; Logger.Log($"[{DateTime.Now}]: Loaded registry settings:"); - Logger.Log($"Dark mode = {darkThemeRK}"); + Logger.Log($"Theme = {CurrentPallete}"); Logger.Log($"Sound = {soundRK}"); Logger.Log($"Buffer speed = {bufferSpeedRK}"); Logger.Log($"Discord RPC = {discordRPCRK}"); Logger.Log($"Currency = {currencyRK}"); Logger.Log($"Check updates = {updateCheckRK}"); + Logger.Log($"Last threads = {lastThreadsRK}"); if (Convert.ToBoolean(updateCheckRK)) { @@ -306,30 +314,14 @@ public FloatTool() { Thread updater = new Thread(AutoUpdater); updater.Start(); - //ver = CheckUpdates(); } catch(Exception ex) { Logger.Log($"[{DateTime.Now}]: {{EXCEPTION}} {ex.Message}{newLine}{ex.StackTrace}"); Logger.SaveCrashReport(); } - - /*Logger.Log($"Checked version is: {ver}{newLine}Installed: {versionLabel.Text}"); - if (ver != versionLabel.Text) - { - DialogResult result = MessageBox.Show( - $"Доступна версия {ver}! Хотите открыть страницу загрузки?", - "Обновление", - MessageBoxButtons.YesNo, - MessageBoxIcon.Information, - MessageBoxDefaultButton.Button1, - MessageBoxOptions.DefaultDesktopOnly); - - if (result == DialogResult.Yes) - System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/releases/latest"); - }*/ } - Logger.Log($"[{DateTime.Now.ToString()}]: Initialized"); + Logger.Log($"[{DateTime.Now}]: Initialized"); } public DiscordRpcClient client; @@ -343,7 +335,7 @@ private void Form1_Load(object sender, EventArgs e) foreach (var skin in items) { - if (skin["name"].ToString().Split('|')[0].TrimEnd() == weaponTypeBox.Text) + if (string.Compare(skin["name"].ToString().Split('|')[0].TrimEnd(), weaponTypeBox.Text) == 0) { Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0, 1)); weaponSkinBox.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0, 1)); @@ -382,8 +374,7 @@ private void Form1_Load(object sender, EventArgs e) }); } thread1 = new Thread(runCycle); - this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea; - this.threadCountInput.Value = Environment.ProcessorCount; + MaximizedBounds = Screen.FromHandle(Handle).WorkingArea; AddFont(Properties.Resources.Inter_Regular); } @@ -434,33 +425,33 @@ public void AddCombinationToList(string time, decimal flotOrigin, string flot, f { Panel tmpPanel = new Panel { - BackColor = Color.FromArgb(44, 44, 44), - ForeColor = Color.White, + BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary1), + ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1), Size = new Size(425, 220), Margin = new Padding(3), Font = new Font("Inter", 10f) }; #region Labels - tmpPanel.Controls.Add(new Label - { - AutoSize = true, - Location = new Point(3,3), - Text = $"{outcomeSelectorComboBox.Text}\nВозможный флоат: {flotOrigin.ToString(CultureInfo.InvariantCulture)}\nПроверочный флоат: {flot}" - }); - tmpPanel.Controls.Add(new Label - { - AutoSize = false, - Size = new Size(160, 54), - Location = new Point(263, 3), - TextAlign = ContentAlignment.MiddleRight, - Text = $"{time}\nЦена: {price.ToString("0.00")} {currentCurr}" - }); - tmpPanel.Controls.Add(new Label - { - AutoSize = true, - Location = new Point(3, 62), - Text = "Ингредиенты:" - }); + tmpPanel.Controls.Add(new Label + { + AutoSize = true, + Location = new Point(3,3), + Text = $"{outcomeSelectorComboBox.Text}\nВозможный флоат: {flotOrigin.ToString(CultureInfo.InvariantCulture)}\nПроверочный флоат: {flot}" + }); + tmpPanel.Controls.Add(new Label + { + AutoSize = false, + Size = new Size(160, 54), + Location = new Point(263, 3), + TextAlign = ContentAlignment.MiddleRight, + Text = $"{time}\nЦена: {price.ToString("0.00")} {currentCurr}" + }); + tmpPanel.Controls.Add(new Label + { + AutoSize = true, + Location = new Point(3, 62), + Text = "Ингредиенты:" + }); #endregion #region TextBoxes & Buttons for(int i = 0; i < 10; i++) @@ -469,8 +460,8 @@ public void AddCombinationToList(string time, decimal flotOrigin, string flot, f int x = i > 4 ? 220 : 6; tmpPanel.Controls.Add(new TextBox { - BackColor = Color.FromArgb(32, 32, 32), - ForeColor = Color.White, + BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4), + ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1), ReadOnly = true, BorderStyle = BorderStyle.FixedSingle, Location = new Point(x, y), @@ -480,7 +471,7 @@ public void AddCombinationToList(string time, decimal flotOrigin, string flot, f var tmpButton = new Button { - BackColor = Color.FromArgb(56, 56, 56), + BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5), Location = new Point(117 + x, y), Font = new Font("Inter", 8f), Size = new Size(84, 25), @@ -527,7 +518,8 @@ private void StartCalculation() } }); } - + + registryData.SetValue("lastThreads", (int)threadCountInput.Value); totalComb = quantityInput.Value == 10 ? 1 : Fact((int)quantityInput.Value) / (Fact(10) * Fact((int)quantityInput.Value - 10)); currComb = 0; @@ -586,11 +578,12 @@ private void StartCalculation() int counter = 0; foreach (var el in r["listinginfo"]) { - counter++; string lid = r["listinginfo"][el.Name]["listingid"]; string aid = r["listinginfo"][el.Name]["asset"]["id"]; string link = r["listinginfo"][el.Name]["asset"]["market_actions"][0]["link"]; - url = "https://api.csgofloat.com/?url=" + link.Replace("%assetid%", aid).Replace("%listingid%", lid); + + counter++; + using (WebClient wcf = new WebClient()) { try @@ -598,10 +591,11 @@ private void StartCalculation() wcf.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); string jsonf = wcf.DownloadString(url); dynamic rf = JsonConvert.DeserializeObject(jsonf); - //Debug.WriteLine("[DEBUG] " + counter + "/" + count + " load from csgofloat = " + jsonf); - inputSkins.Add(new InputSkin(Convert.ToDouble(rf["iteminfo"]["floatvalue"]), + inputSkins.Add(new InputSkin( + GetWearFromInspectURL(link.Replace("%assetid%", aid).Replace("%listingid%", lid)), (float.Parse(r["listinginfo"][el.Name]["converted_price"].ToString()) + float.Parse(r["listinginfo"][el.Name]["converted_fee"].ToString())) / 100, - currentCurr)); + currentCurr) + ); } catch (Exception ex) { @@ -612,7 +606,7 @@ private void StartCalculation() } } } - this.Invoke((MethodInvoker)(() => + Invoke((MethodInvoker)(() => { downloadProgressBar.Value = counter; })); @@ -649,6 +643,8 @@ private void StartCalculation() line += $"{i.ToString().Replace(',','.')}, "; line = line.Remove(line.Length - 2); textBox2.AppendText("Список флоатов:" + newLine + line + "]" + newLine);*/ + + Logger.Log($"[{DateTime.Now}] Float list: [{string.Join(", ", inputSkins)}]"); outputConsoleBox.ScrollToCaret(); } @@ -662,9 +658,9 @@ private void StartCalculation() foreach (var skin in items) { //Console.WriteLine(skin["name"].ToString()); - if (skin["case"].ToString() == currData.Split(',')[0]) + if (string.Compare(skin["case"].ToString(), currData.Split(',')[0]) == 0) { - if (skin["rarity"].ToString().Split(' ')[0] == getNextRarity(currData.Split(',')[1].Split(' ')[0])) + if (string.Compare(skin["rarity"].ToString().Split(' ')[0], getNextRarity(currData.Split(',')[1].Split(' ')[0])) == 0) { //Console.WriteLine(skin["name"].ToString()); craftList.Add(skin); @@ -717,7 +713,7 @@ private void StartCalculation() Console.WriteLine($"[DEBUG] {threads} threads started!"); - while (true) + while (Searching) { bool okey = true; @@ -734,23 +730,35 @@ private void StartCalculation() Searching = false; - this.Invoke((MethodInvoker)(() => - { - outputConsoleBox.AppendText( "Программа завершила проверку всех комбинаций!" + newLine); - fullSkinName.SelectionStart = fullSkinName.Text.Length; - outputConsoleBox.ScrollToCaret(); - thread1.Abort(); - startBtn.Text = "Старт"; - downloadProgressBar.Value = 0; - SwitchEnabled(); - } - )); + foreach (Thread t in t2) + { + t.Abort(); + } + + Invoke((MethodInvoker)(() => + { + outputConsoleBox.AppendText( "Программа завершила проверку всех комбинаций!" + newLine); + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); + thread1.Abort(); + startBtn.Text = "Старт"; + downloadProgressBar.Value = 0; + SwitchEnabled(); + })); } + + private void StartButtonClick(object sender, EventArgs e) { - if(startBtn.Text == "Старт") { + if (((Button)sender).Name == "startSearchSingleButton") + SingleSearch = true; + else + SingleSearch = false; + + if (startBtn.Text == "Старт") + { thread1.Abort(); thread1 = new Thread(StartCalculation); thread1.Start(); @@ -806,24 +814,24 @@ private void button1_Click(object sender, EventArgs e) if (skn["name"].ToString() == skin) { #region Float ranges - /* - List craftList = new List(); - - foreach (var skin2 in items) - if (skn["case"].ToString() == skin2["case"].ToString()) - { - if (skin2["rarity"].ToString().Split(' ')[0] == getNextRarity(skn["rarity"].ToString().Split(' ')[0])) - craftList.Add(skin2); - } + /* + List craftList = new List(); + + foreach (var skin2 in items) + if (skn["case"].ToString() == skin2["case"].ToString()) + { + if (skin2["rarity"].ToString().Split(' ')[0] == getNextRarity(skn["rarity"].ToString().Split(' ')[0])) + craftList.Add(skin2); + } - foreach (var skinRange in GroupOutcomes(craftList)) - { - ConsoleBuffer.Append($"{newLine}--------Length: {skinRange.Count}--------"); - foreach (var skinObj in skinRange) - ConsoleBuffer.Append(newLine+skinObj.ToString()); - } - */ + foreach (var skinRange in GroupOutcomes(craftList)) + { + ConsoleBuffer.Append($"{newLine}--------Length: {skinRange.Count}--------"); + foreach (var skinObj in skinRange) + ConsoleBuffer.Append(newLine+skinObj.ToString()); + } + */ #endregion if (skn["highestRarity"] == "False") @@ -888,7 +896,7 @@ private void timer1_Tick(object sender, EventArgs e) client.Invoke(); } - private void button8_Click(object sender, EventArgs e) + private void CloseAppButton_Click(object sender, EventArgs e) { Application.Exit(); } @@ -929,12 +937,12 @@ private const int Rectangle LeftCursor { get { return new Rectangle(0, 0, _, this.ClientSize.Height); } } Rectangle BottomCursor { get { return new Rectangle(0, this.ClientSize.Height - _, this.ClientSize.Width, _); } } Rectangle RightCursor { get { return new Rectangle(this.ClientSize.Width - _, 0, _, this.ClientSize.Height); } } - Rectangle TopLeft { get { return new Rectangle(0, 0, _, _); } } Rectangle TopRight { get { return new Rectangle(this.ClientSize.Width - _, 0, _, _); } } Rectangle BottomLeft { get { return new Rectangle(0, this.ClientSize.Height - _, _, _); } } Rectangle BottomRight { get { return new Rectangle(this.ClientSize.Width - _, this.ClientSize.Height - _, _, _); } } - + public bool isDarkMode { get; private set; } + public bool SingleSearch { get; private set; } protected override void WndProc(ref Message message) { @@ -967,7 +975,7 @@ private void WindowDragEvent(object sender, MouseEventArgs e) private void copyButtonClick(object sender, EventArgs e) { - Clipboard.SetText(((System.Windows.Forms.Button)sender).Tag.ToString()); + Clipboard.SetText(((Button)sender).Tag.ToString()); } private void settingsButton_Click(object sender, EventArgs e) @@ -976,11 +984,12 @@ private void settingsButton_Click(object sender, EventArgs e) settings.ShowDialog(); CheckRegistry(); registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); - ChangeTheme(Convert.ToBoolean(registryData.GetValue("darkMode"))); muteSound = !Convert.ToBoolean(registryData.GetValue("sound")); WorkStatusUpdater.Interval = (int)registryData.GetValue("bufferSpeed"); discordWorker = Convert.ToBoolean(registryData.GetValue("discordRPC")); currentCurr = (Currency)registryData.GetValue("currency"); + CurrentPallete = (Pallete)registryData.GetValue("theme"); + ChangeTheme(); } private void benchmarkButton_Click(object sender, EventArgs e) @@ -989,207 +998,136 @@ private void benchmarkButton_Click(object sender, EventArgs e) benchmark.ShowDialog(); } - void ChangeTheme(bool dark) + void ChangeTheme() { - if (dark) + if (CurrentPallete == Pallete.Dark) { - BackColor = Color.FromArgb(44, 44, 44); - outputConsoleBox.BackColor = Color.FromArgb(31, 31, 31); - outputConsoleBox.ForeColor = Color.FromArgb(255, 255, 255); - splitContainer1.BackColor = Color.FromArgb(31, 31, 31); - splitContainer1.Panel1.BackColor = Color.FromArgb(31, 31, 31); - splitContainer1.Panel2.BackColor = Color.FromArgb(31, 31, 31); - - foundCombinationContainer.BackColor = Color.FromArgb(37, 37, 37); - - panel10.BackColor = Color.FromArgb(31, 31, 31); - panel12.BackColor = Color.FromArgb(31, 31, 31); - - panel3.BackColor = Color.FromArgb(37, 37, 37); - panel9.BackColor = Color.FromArgb(37, 37, 37); - - label1.ForeColor = Color.FromArgb(255, 255, 255); - label2.ForeColor = Color.FromArgb(255, 255, 255); - label3.ForeColor = Color.FromArgb(255, 255, 255); - label4.ForeColor = Color.FromArgb(255, 255, 255); - label5.ForeColor = Color.FromArgb(255, 255, 255); - label6.ForeColor = Color.FromArgb(255, 255, 255); - label7.ForeColor = Color.FromArgb(255, 255, 255); - label8.ForeColor = Color.FromArgb(255, 255, 255); - label11.ForeColor = Color.FromArgb(255, 255, 255); - label12.ForeColor = Color.FromArgb(255, 255, 255); - - panel5.BackColor = Color.FromArgb(44, 44, 44); - panel6.BackColor = Color.FromArgb(44, 44, 44); - - weaponTypeBox.BackColor = Color.FromArgb(32, 32, 32); - weaponTypeBox.ForeColor = Color.FromArgb(150, 150, 150); - weaponSkinBox.BackColor = Color.FromArgb(32, 32, 32); - weaponSkinBox.ForeColor = Color.FromArgb(150, 150, 150); - weaponQualityBox.BackColor = Color.FromArgb(32, 32, 32); - weaponQualityBox.ForeColor = Color.FromArgb(150, 150, 150); - - outcomeSelectorComboBox.BackColor = Color.FromArgb(32, 32, 32); - outcomeSelectorComboBox.ForeColor = Color.FromArgb(150, 150, 150); - - stattrackCheckBox.TurnedOffColor = Color.FromArgb(56, 56, 56); - stattrackCheckBox.TurnedOnColor = Color.Green; - - minimizeBtn.ForeColor = Color.FromArgb(255, 255, 255); - closeBtn.ForeColor = Color.FromArgb(255, 255, 255); - MaximizeButton.ForeColor = Color.FromArgb(255, 255, 255); settingsButton.BackgroundImage = Properties.Resources.gearWhite; benchmarkButton.BackgroundImage = Properties.Resources.benchmarkWhite; - - minimizeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - closeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - MaximizeButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - benchmarkButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - - sortCheckBox.ForeColor = Color.FromArgb(255, 255, 255); - ascendingCheckBox.ForeColor = Color.FromArgb(255, 255, 255); - - checkPossibilityBtn.BackColor = Color.FromArgb(56, 56, 56); - startBtn.BackColor = Color.FromArgb(56, 56, 56); - checkPossibilityBtn.ForeColor = Color.FromArgb(255, 255, 255); - startBtn.ForeColor = Color.FromArgb(255, 255, 255); - - checkPossibilityBtn.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); - startBtn.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); - - fullSkinName.BackColor = Color.FromArgb(32, 32, 32); - fullSkinName.ForeColor = Color.FromArgb(150, 150, 150); - searchFloatInput.BackColor = Color.FromArgb(32, 32, 32); - searchFloatInput.ForeColor = Color.FromArgb(150, 150, 150); - - quantityInput.BackColor = Color.FromArgb(32, 32, 32); - quantityInput.ForeColor = Color.FromArgb(150, 150, 150); - skipValueInput.BackColor = Color.FromArgb(32, 32, 32); - skipValueInput.ForeColor = Color.FromArgb(150, 150, 150); - - label10.ForeColor = Color.FromName("White"); - threadCountInput.BackColor = Color.FromArgb(32, 32, 32); - threadCountInput.ForeColor = Color.FromArgb(150, 150, 150); - - searchModeLabel.ForeColor = Color.White; - speedStatusLabel.ForeColor = Color.White; - combinationsStatusLabel.ForeColor = Color.White; - - searchmodeLess_btn.BackColor = Color.FromArgb(56, 56, 56); - searchmodeLess_btn.ForeColor = Color.FromArgb(255, 255, 255); - searchmodeEqual_btn.BackColor = Color.FromArgb(56, 56, 56); - searchmodeEqual_btn.ForeColor = Color.FromArgb(255, 255, 255); - searchmodeGreater_btn.BackColor = Color.FromArgb(56, 56, 56); - searchmodeGreater_btn.ForeColor = Color.FromArgb(255, 255, 255); - - gpuSearch_btn.BackColor = Color.FromArgb(56, 56, 56); - gpuSearch_btn.ForeColor = Color.FromArgb(255, 255, 255); - - downloadProgressBar.ForeColor = Color.White; - downloadProgressBar.ProgressColor = Color.Green; - downloadProgressBar.BackColor = Color.FromArgb(32, 32, 32); } - else + else if (CurrentPallete == Pallete.Light) { - BackColor = Color.FromArgb(222, 222, 222); - outputConsoleBox.BackColor = Color.FromArgb(255, 255, 255); - outputConsoleBox.ForeColor = Color.FromArgb(0, 0, 0); - splitContainer1.BackColor = Color.FromArgb(255, 255, 255); - splitContainer1.Panel1.BackColor = Color.FromArgb(255, 255, 255); - splitContainer1.Panel2.BackColor = Color.FromArgb(255, 255, 255); - - foundCombinationContainer.BackColor = Color.FromArgb(222, 222, 222); - - panel10.BackColor = Color.FromArgb(255, 255, 255); - panel12.BackColor = Color.FromArgb(255, 255, 255); - - panel3.BackColor = Color.FromArgb(249, 249, 249); - panel9.BackColor = Color.FromArgb(249, 249, 249); - - label1.ForeColor = Color.FromArgb(0, 0, 0); - label2.ForeColor = Color.FromArgb(0, 0, 0); - label3.ForeColor = Color.FromArgb(0, 0, 0); - label4.ForeColor = Color.FromArgb(0, 0, 0); - label5.ForeColor = Color.FromArgb(0, 0, 0); - label6.ForeColor = Color.FromArgb(0, 0, 0); - label7.ForeColor = Color.FromArgb(0, 0, 0); - label8.ForeColor = Color.FromArgb(0, 0, 0); - label11.ForeColor = Color.FromArgb(0, 0, 0); - label12.ForeColor = Color.FromArgb(0, 0, 0); - - panel5.BackColor = Color.FromArgb(222, 222, 222); - panel6.BackColor = Color.FromArgb(222, 222, 222); - - weaponTypeBox.BackColor = Color.FromArgb(255, 255, 255); - weaponTypeBox.ForeColor = Color.FromArgb(10, 10, 10); - weaponSkinBox.BackColor = Color.FromArgb(255, 255, 255); - weaponSkinBox.ForeColor = Color.FromArgb(10, 10, 10); - weaponQualityBox.BackColor = Color.FromArgb(255, 255, 255); - weaponQualityBox.ForeColor = Color.FromArgb(10, 10, 10); - outcomeSelectorComboBox.BackColor = Color.FromArgb(255, 255, 255); - outcomeSelectorComboBox.ForeColor = Color.FromArgb(10, 10, 10); - - stattrackCheckBox.TurnedOffColor = Color.FromArgb(200, 200, 200); - stattrackCheckBox.TurnedOnColor = Color.LimeGreen; - - minimizeBtn.ForeColor = Color.FromArgb(0, 0, 0); - closeBtn.ForeColor = Color.FromArgb(0, 0, 0); - MaximizeButton.ForeColor = Color.FromArgb(0, 0, 0); settingsButton.BackgroundImage = Properties.Resources.gearBlack; benchmarkButton.BackgroundImage = Properties.Resources.benchmarkBlack; + } - minimizeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - closeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - MaximizeButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - benchmarkButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - - sortCheckBox.ForeColor = Color.FromArgb(0, 0, 0); - ascendingCheckBox.ForeColor = Color.FromArgb(0, 0, 0); - - checkPossibilityBtn.BackColor = Color.FromArgb(249, 249, 249); - startBtn.BackColor = Color.FromArgb(249, 249, 249); - checkPossibilityBtn.ForeColor = Color.FromArgb(0, 0, 0); - startBtn.ForeColor = Color.FromArgb(0, 0, 0); - - fullSkinName.BackColor = Color.FromArgb(255, 255, 255); - fullSkinName.ForeColor = Color.FromArgb(10, 10, 10); - searchFloatInput.BackColor = Color.FromArgb(255, 255, 255); - searchFloatInput.ForeColor = Color.FromArgb(10, 10, 10); - - checkPossibilityBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); - startBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); - - quantityInput.BackColor = Color.FromArgb(255, 255, 255); - quantityInput.ForeColor = Color.FromArgb(10, 10, 10); - skipValueInput.BackColor = Color.FromArgb(255, 255, 255); - skipValueInput.ForeColor = Color.FromArgb(10, 10, 10); - - label10.ForeColor = Color.FromName("Black"); - threadCountInput.BackColor = Color.FromArgb(255, 255, 255); - threadCountInput.ForeColor = Color.FromArgb(10, 10, 10); - - searchModeLabel.ForeColor = Color.Black; - speedStatusLabel.ForeColor = Color.Black; - combinationsStatusLabel.ForeColor = Color.Black; - - searchmodeLess_btn.BackColor = Color.FromArgb(249, 249, 249); - searchmodeLess_btn.ForeColor = Color.FromArgb(0, 0, 0); - searchmodeEqual_btn.BackColor = Color.FromArgb(249, 249, 249); - searchmodeEqual_btn.ForeColor = Color.FromArgb(0, 0, 0); - searchmodeGreater_btn.BackColor = Color.FromArgb(249, 249, 249); - searchmodeGreater_btn.ForeColor = Color.FromArgb(0, 0, 0); - - gpuSearch_btn.BackColor = Color.FromArgb(249, 249, 249); - gpuSearch_btn.ForeColor = Color.FromArgb(0, 0, 0); - - downloadProgressBar.ForeColor = Color.Black; - downloadProgressBar.ProgressColor = Color.FromArgb(119, 194, 119); - downloadProgressBar.BackColor = Color.FromArgb(234, 234, 234); + if (CurrentPallete == Pallete.Custom) + { + UpdateCustomPalette(); + if (CustomPalette.IsDarkButtons) + { + settingsButton.BackgroundImage = Properties.Resources.gearBlack; + benchmarkButton.BackgroundImage = Properties.Resources.benchmarkBlack; + } + else + { + settingsButton.BackgroundImage = Properties.Resources.gearWhite; + benchmarkButton.BackgroundImage = Properties.Resources.benchmarkWhite; + } } + + BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary1); + outputConsoleBox.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + outputConsoleBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + splitContainer1.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + splitContainer1.Panel1.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + splitContainer1.Panel2.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + + foundCombinationContainer.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary3); + + panel10.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + panel12.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary2); + + panel3.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary3); + panel9.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary3); + + label1.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label2.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label3.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label4.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label5.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label6.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label7.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label8.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label11.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + label12.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + panel5.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary1); + panel6.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary1); + + weaponTypeBox.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + weaponTypeBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + weaponSkinBox.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + weaponSkinBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + weaponQualityBox.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + weaponQualityBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + + outcomeSelectorComboBox.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + outcomeSelectorComboBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + + stattrackCheckBox.TurnedOffColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary6); + stattrackCheckBox.TurnedOnColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary3); + + minimizeBtn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + closeBtn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + MaximizeButton.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + minimizeBtn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + settingsButton.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + closeBtn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + MaximizeButton.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + settingsButton.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + benchmarkButton.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor1); + + sortCheckBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + ascendingCheckBox.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + checkPossibilityBtn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + startBtn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + startSearchSingleButton.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + checkPossibilityBtn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + startBtn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + startSearchSingleButton.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + checkPossibilityBtn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + startBtn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + startSearchSingleButton.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + + searchmodeEqual_btn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + searchmodeLess_btn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + searchmodeGreater_btn.FlatAppearance.MouseOverBackColor = GetPalleteColor(CurrentPallete, PalleteColor.OverBackColor2); + + fullSkinName.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + fullSkinName.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + searchFloatInput.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + searchFloatInput.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + + quantityInput.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + quantityInput.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + skipValueInput.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + skipValueInput.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + + label10.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + threadCountInput.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); + threadCountInput.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary2); + + searchModeLabel.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + speedStatusLabel.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + combinationsStatusLabel.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + searchmodeLess_btn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + searchmodeLess_btn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + searchmodeEqual_btn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + searchmodeEqual_btn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + searchmodeGreater_btn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + searchmodeGreater_btn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + gpuSearch_btn.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary5); + gpuSearch_btn.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + + downloadProgressBar.ForeColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary1); + downloadProgressBar.ProgressColor = GetPalleteColor(CurrentPallete, PalleteColor.Secondary3); + downloadProgressBar.BackColor = GetPalleteColor(CurrentPallete, PalleteColor.Primary4); } private void gpuSearch_btn_Click(object sender, EventArgs e) @@ -1212,6 +1150,8 @@ private void gpuSearch_btn_Click(object sender, EventArgs e) } BigInteger last = 0; + private Pallete CurrentPallete; + private void timer2_Tick(object sender, EventArgs e) { var hundrMilsCount = currComb - last; diff --git a/FloatToolGUI/Main.en.resx b/FloatToolGUI/Main.en.resx index f872394..963c915 100644 --- a/FloatToolGUI/Main.en.resx +++ b/FloatToolGUI/Main.en.resx @@ -117,174 +117,88 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Skin Search + + Check - - - NoControl + + + 62, 19 - - Check + + Quality: - - NoControl + + 212, 67 - - - 255, 24 + + 205, 24 + + + 105, 19 + + + Weapon type: - 65, 15 + 81, 19 Full name: - - NoControl - - - NoControl - - - 51, 15 - - - Quality: + + 85, 19 - - NoControl + + Outcomes: - 35, 15 + 44, 19 Skin: - - NoControl + + Find one - - 84, 15 + + 107, 19 - - Weapon type: + + Search mode: - - Bruteforce + + 104, 19 - - NoControl + + Desired float: - - 80, 18 + + 103, 23 - + Ascending - - NoControl - - - 41, 96 - - - 47, 18 - - - Sort - - - NoControl - - 62, 14 + 86, 19 Skip value: - - NoControl - - 51, 14 + 68, 19 Amount: - - NoControl - - - 76, 14 - - - Desired float: - - - NoControl + + 59, 23 - - NoControl + + Sort - + Start - - Result - - - Welcome to FloatTool! -A tool to create cool looking CS:GO skins wear values. - - - 61, 20 - - - Settings - - - 180, 22 - - - Enable sound - - - Play sound when found combination - - - 180, 22 - - - Restart - - - Restart search after a certain time - - - Minutes before restart - - - 82, 20 - - - Information - - - 180, 22 - - - 180, 22 - - - Tutorial - - - 180, 22 - - - About - AAABAAEAAAAAAAEAIACyfAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAfHlJ diff --git a/FloatToolGUI/Main.resx b/FloatToolGUI/Main.resx index e1b0eb7..a29eb80 100644 --- a/FloatToolGUI/Main.resx +++ b/FloatToolGUI/Main.resx @@ -117,2369 +117,2405 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - 0, 0 - - - Horizontal + + 30, 26 - - - True + + panel6 - - Fill + + panel6 - - 5, 5 + + < - - 0, 0, 0, 0 + + + 1 - - 449, 292 + + 1 - + 0 - - foundCombinationContainer - - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel1 - - splitContainer1.Panel1 + + 30, 26 - - 0 + + 267, 38 - - 5, 5, 5, 5 + + FAMAS - - splitContainer1.Panel1 + + panel6 - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Right - - splitContainer1 + + 10, 418 - - 0 + + 147, 23 - - Fill + + 40, 40 - - Inter, 9.75pt + + 1 - - 5, 5 + + 0 - - 40, 40, 40, 40 + + Ауткамы: - - True + + 8 - - Both + + 409, 0 - - 449, 92 + + Количество: - - 0 + + 1 - - Добро пожаловать в FloatTool! -Инструмент для создания флоатов при помощи крафтов CS:GO + + None - - outputConsoleBox + + stattrackCheckBox - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - splitContainer1.Panel2 + + panel16 - + 0 - - 5, 5, 5, 5 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - splitContainer1.Panel2 + + Найти одну - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 12 - - splitContainer1 + + Нужный флоат: - - 1 + + panel6 - - 459, 408 + + panel1 - - 302 + + panel16 - - 1 + + $this - - splitContainer1 + + Inter, 8.25pt - - System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel5 - - panel11 + + panel1 - - 0 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 65, 16 - - - Fill + + panel9 - - 0, 10 + + 131, 98 - - 459, 408 + + panel15 - - 2 + + 267, 73 - - panel11 + + Flat - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Nova | Predator (Field-Tested) - - panel13 + + Bottom - - 0 + + Nova - - Top + + 5, 5, 5, 5 - - 0, 0 + + 4 - - 459, 10 + + quantityInput - - 3 + + Horizontal - - panel12 + + 302 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + FloatTool - - panel13 + + 8 - - 1 + + Inter, 11.249999pt - - Fill + + True - - 10, 0 + + panel6 - - 459, 418 + + NoControl - - 4 + + NoControl - - panel13 + + NoControl - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + outputConsoleBox - - panel8 + + Скин: + + + 40, 0 0 - - Left + + CZ75-Auto - - 0, 0 + + panel6 - - 10, 418 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel10 + + panel16 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 7, 70 - - panel8 + + Five-SeveN - - 1 + + 79, 19 - - Fill + + speedStatusLabel - - 0, 40 + + closeBtn - - 469, 418 + + 11 - - 2 + + 429, 1 - - panel8 + + 1 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel1 + + 5, 2 - - 0 + + 7 - - Zoom + + splitContainer1 - - Flat + + Bottom - - Microsoft JhengHei Light, 40px + + Well-Worn - - NoControl + + panel16 - - 40, 0 + + 288, 34 - - 0, 0, 0, 0 + + NoControl - - Yes + + 0 - - 40, 40 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3 + + Inter, 18pt - - benchmarkButton + + Top, Right - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 7 - - panel9 + + Тип оружия: - + 0 - - Zoom + + True - - Flat + + O - - Microsoft JhengHei Light, 40px + + FloatTool - - NoControl + + 213, 24 - - 0, 0 + + 2, 25 - - 0, 0, 0, 0 + + 0, 126 - - Yes + + 120, 22 - - 40, 40 + + 10 - - 3 + + True - - settingsButton + + Inter, 9.75pt - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Полное название: - - panel9 + + 3 - - 1 + + 20% (Tec-9 | Varicamo) - - Top, Right + + searchModeLabel - - Flat + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Inter, 18pt + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + True - - 389, 1 + + 80% (AK-47 | Safari Mesh + 3) - - 40, 40 + + panel9 - - 2 + + ascendingCheckBox - - O + + NoControl - - MaximizeButton + + 4 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Inter, 9pt - - panel9 + + 1 - - 2 + + 267, 24 - - Top, Right + + Sawed-Off - - Flat + + 0, 0, 0, 0 - - Inter, 18pt + + Microsoft JhengHei Light, 40px - - NoControl + + Flat - - 349, 1 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 40, 39 + + 3 - - 2 + + 0, 0 - - _ + + panel2 - - minimizeBtn + + None - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 119, 19 - - panel9 + + Inter, 9.75pt - - 3 + + Bottom, Left - - Top, Right + + Проверить - - Flat + + 3 - - Inter, 18pt + + v.0.7.0 - - NoControl + + 2 - - 429, 1 + + None - - 40, 40 + + Inter, 9pt - - 0 + + panel6 - - X + + 1 - - closeBtn + + False System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel9 + + 285, 13 - - 4 + + 40, 40 - - Top + + label10 - - 0, 0 + + 9 - - 469, 40 + + True - - 3 + + Inter, 12pt - - panel9 + + 1 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Zoom - - panel7 + + 7, 0 - - 0 + + 7 - - Top, Right + + panel16 - - Flat + + label11 - - Microsoft JhengHei Light, 12pt + + Inter, 14pt, style=Bold - + + 4 + + + True + + + Inter, 11.25pt + + + 389, 1 + + NoControl - - 379, 0 + + NoControl - - 30, 26 + + 0 - - 2 + + 126, 19 - - - + + 0, 0 - - button5 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + None - - panel7 + + Factory New - - 1 + + True - - Top, Right + + - Flat - - Microsoft JhengHei Light, 12pt + + 132, 24 - - NoControl + + Inter, 9.75pt - - 409, 0 + + 11 - - 30, 26 + + 2 - - 1 + + 6 - - O + + 3 - - button4 + + Minimal Wear - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - panel7 + + 469, 40 - + + None + + + 3 + + 2 - - Top, Right + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Flat - - Microsoft JhengHei Light, 12pt + + 244, 0 - - NoControl + + 2 - - 439, 0 + + 2, 0 - - 30, 26 + + None 0 - - X - - - button3 + + NoControl - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel3 - - panel7 + + Left - - 3 + + Пропуск: - - Top + + panel6 - - 0, 0 + + 2 - - 469, 40 + + 0 - - 1 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel7 + + 12 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel1 - - - 1 + + Top, Right - + Fill - - 0, 0 - - - 469, 458 - - - 7 + + threadCountInput - - panel1 + + 5 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Yes - - panel4 + + foundCombinationContainer - + 0 - - Top, Right - - - True - - - Inter, 8.25pt - - - NoControl + + panel15 - - 177, 19 + + FloatTool - - 60, 14 + + = - - 1 + + Flat - - by Prevter + + True - - label24 + + 0 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel11 - + panel3 - - 0 + + 0, 191 - - True + + button4 - - Inter, 8.25pt + + 3 - - NoControl + + 150, 98 - - 141, 19 + + label2 - - 41, 14 + + Inter, 10.25pt - - 1 + + 0, 0, 0, 0 - - v.0.7.0 + + 126, 16 - - versionLabel + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Проверено комбинаций: 0 / 0 - + panel3 - + 1 - - True - - - Inter, 21.75pt + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + checkPossibilityBtn - - 5, 2 + + 427, 267 - - 140, 35 + + panel7 - + 0 - - FloatTool - - - label8 + + button5 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 439, 0 - - panel3 + + panel8 - - 2 + + NoControl - - Top + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0, 0 + + 179, 15 - - 427, 40 + + 5 - - 0 + + Inter, 20.25pt - - panel3 + + 180, 29 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 449, 292 - - panel2 + + NoControl - - 2 + + 3 - - 86, 66 + + 8 - - 6, 6, 6, 6 + + panel8 - - 40, 24 + + Качество: - - 2 + + 0 - - stattrackCheckBox + + 1 - - FloatToolGUI.CustomControls.CustomToggleSwitch, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + Desert Eagle - - panel6 + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0 + + 11 - - Bottom, Right + + Inter, 9.75pt - + Flat - - Inter, 10.25pt - - - NoControl - - - 150, 98 + + 406, 24 - - 267, 24 + + CenterScreen 10 - - Проверить + + 469, 418 - - checkPossibilityBtn + + panel13 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 94, 29 - - panel6 - - - 1 + + NoControl - - None + + 121, 19 - - True + + 0 - + NoControl - - 285, 13 + + 5, 5 - - 82, 19 + + 1 - - 7 + + minimizeBtn - - Качество: + + 427, 191 - - label3 + + Flat - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - + + 141, 19 + + + 1 + + panel6 - - 2 + + Microsoft JhengHei Light, 12pt - - None + + 2 - - Flat + + 0 - - Inter, 9.75pt + + 4 - - 80% (AK-47 | Safari Mesh + 3) + + Inter, 21.75pt - - 20% (Tec-9 | Varicamo) + + 6 - - * Искать всё * + + None - - 204, 66 + + Microsoft JhengHei Light, 12pt - - 213, 24 + + settingsButton - - 6 + + splitContainer1.Panel1 - - 80% (AK-47 | Safari Mesh + 3) + + Top - - outcomeSelectorComboBox + + weaponSkinBox - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - + panel6 - - 3 - - - None + + Inter, 14pt, style=Bold - - Flat + + 1 - - Inter, 9.75pt + + 900, 460 - - Factory New + + panel4 - - Minimal Wear + + Flat - - Field-Tested + + 7, 98 - - Well-Worn + + 140, 35 - - Battle-Scarred + + 469, 458 - - 288, 34 + + 204, 66 - - 129, 24 + + 7, 127 - - 6 + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Field-Tested + + Flat - - weaponQualityBox + + 1 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 5 - + panel6 - - 4 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - None + + 9 - - True + + 429, 0 - - NoControl + + 469, 458 - - 7, 68 + + Bottom - - 79, 19 + + panel5 - - 3 + + Сортировать - - StatTrack: + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label12 + + 7 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 86, 66 - - panel6 + + panel16 - - 5 + + NoControl - - None + + 13 - - True + + searchmodeLess_btn - + + panel13 + + NoControl - - 7, 13 + + G3SG1 + + + 131, 73 + + + True + + + panel15 100, 19 - - 3 + + 0 - - Тип оружия: + + NoControl - - label1 + + splitContainer1 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 14 - - panel6 + + 9 - - 6 - - - Bottom, Left - - - True - - - NoControl - - - 7, 101 - - - 140, 19 - - - 9 - - - Полное название: - - - MiddleCenter - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel6 - - - 7 - - - None - - - Flat - - - Inter, 9.75pt - - - AK-47 - - - AUG - - - AWP - - - CZ75-Auto - - - Desert Eagle - - - Dual Berettas - - - FAMAS - - - Five-SeveN - - - G3SG1 - - - Galil AR - - - Glock-18 - - - M249 - - - M4A1-S - - - M4A4 - - - MAC-10 - - - MAG-7 - - - MP5-SD - - - MP7 - - - MP9 - - - Negev - - - Nova - - - P2000 - - - P250 - - - P90 - - - PP-Bizon - - - R8 Revolver - - - Sawed-Off - - - SCAR-20 - - - SG 553 - - - SSG 08 - - - Tec-9 - - - UMP-45 - - - USP-S - - - XM1014 - - - 11, 34 - - - 132, 24 - - - 2 - - - Nova - - - weaponTypeBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel6 - - - 8 - - - None - - + True - - NoControl - - - 127, 68 - - - 77, 19 - - + 4 - - Ауткамы: - - - label11 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel6 + + 2 - - 9 + + combinationsStatusLabel - + None - - True - - - NoControl - - - 146, 12 - - - 50, 19 - - - 4 - - - Скин: - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel6 - - - 10 + + 6 - - Bottom + + 0, 0 - - Inter, 12pt + + 7, 68 - - 0, 126 + + FloatToolGUI.CustomProgressBar, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - 10, 12, 10, 12 + + 140, 19 - - 2, 25 + + + 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 + - - 427, 25 + + label12 - - 0 + + 379, 0 - - Nova | Predator (Field-Tested) + + 4 - - Right + + None - - fullSkinName + + NoControl - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Текущая скорость: 0 комбинаций/сек - - panel6 + + > - - 11 + + 10, 12, 10, 12 - - None + + 129, 24 - - Flat + + MiddleCenter - + + 150, 50 + + + Fill + + + MP9 + + + Negev + + + NoControl + + Inter, 9.75pt - - 150, 34 + + label7 - - 132, 24 + + M4A4 - - 5 + + Glock-18 - - Predator + + M249 - - weaponSkinBox + + MP5-SD - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + MP7 + + + Top + + + MAG-7 + + + startSearchSingleButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel15 + + + True - - panel6 + + NoControl - - 12 + + panel11 - - Top + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0, 40 + + Flat - - 427, 151 + + 150, 21 - + 1 - - panel6 + + Inter, 8.25pt - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 10 - - panel2 + + 0 - + + panel5 + + 1 - - None + + 0 - - Inter, 9.75pt + + NoControl - - 11, 161 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0, 0, 0, 0 + + Inter, 18pt - - 406, 24 + + 4 - - 12 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - downloadProgressBar + + splitContainer1.Panel2 - - FloatToolGUI.CustomProgressBar, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel16 + + 77, 32 - + 0 - + None - - Flat + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Inter, 14pt, style=Bold + + versionLabel - - NoControl + + 40, 40, 40, 40 - - 180, 29 + + 7 - - 77, 32 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 11 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - > + + Fill - - searchmodeGreater_btn + + 427, 151 + + + 11 System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel16 - - - 1 - - + None - - Flat - - - Inter, 14pt, style=Bold + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + panel2 - - 94, 29 + + WorkStatusUpdater - - 80, 32 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 11 + + Flat - - = + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - searchmodeEqual_btn + + 0 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Top - - panel16 + + panel9 - - 2 + + NoControl - - None + + 459, 408 - - Flat + + splitContainer1.Panel2 - - Inter, 14pt, style=Bold + + 3 - - NoControl + + True - - 11, 29 + + 3 - - 77, 32 + + 0, 40 - - 11 + + Top, Right - - < + + 267, 15 - - searchmodeLess_btn + + NoControl - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Zoom - - panel16 + + MAC-10 - - 3 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - None + + 4 - - True + + 2 NoControl - - 7, 7 + + 101, 19 - - 119, 19 + + None - - 5 + + 1 - - Режим поиска: + + 6 - - searchModeLabel + + 75, 19 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 9 - - panel16 + + Dual Berettas - - 4 + + 41, 14 + + + 79, 19 - - None + + Top, Right - - True + + Потоков: - - NoControl + + Fill - - 7, 70 + + panel6 - - 121, 19 + + False - - 5 + + 427, 458 - - Нужный флоат: + + System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label5 + + 9 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + label4 - - panel16 + + NoControl - - 5 + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - None + + Battle-Scarred - - Inter, 9.75pt + + label8 - - 131, 98 + + 900, 460 - - 126, 19 + + 11 - - 3 + + Fill - - quantityInput + + 77, 32 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Flat - - panel16 + + 146, 12 - - 6 + + Старт - + None - - Inter, 9.75pt + + 40, 40 - - 131, 127 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 126, 19 + + 5 - - 4 + + weaponTypeBox - - skipValueInput + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - + + 8 + + + 11 + + panel16 - - 7 + + Добро пожаловать в FloatTool! +Инструмент для создания флоатов при помощи крафтов CS:GO - - None + + panel2 - - True + + panel9 - + NoControl - - 267, 38 + + 77, 19 - - 147, 23 + + 459, 10 - - 9 + + None - - По возрастанию + + Inter, 16pt - - ascendingCheckBox + + 50, 19 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - panel16 + + 1 - - 8 + + 0, 191 - - None + + NoControl - - True + + panel7 - - NoControl + + panel7 - - 7, 127 + + 40, 24 - - 75, 19 + + panel16 - - 7 + + Flat - - Пропуск: + + panel2 - - label7 + + gpuSearch_btn - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + * Искать всё * - - panel16 + + 10, 0 - - 9 + + Inter, 18pt - - None + + 40, 39 - - True + + 0 - - NoControl + + 2, 0, 2, 2 - - 7, 98 + + 60, 14 - - 101, 19 + + Center - - 6 + + Inter, 9.75pt - - Количество: + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label6 + + Flat - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0.25000000032783 - - panel16 + + 150, 34 - - 10 + + Top, Right - - None + + by Prevter + + + UMP-45 + + + 459, 408 - + + panel16 + + Inter, 9.75pt - - 131, 73 + + Top + + + panel7 16 - - 126, 16 - - - 2 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0.25000000032783 + + panel16 - - searchFloatInput + + panel16 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Top - - panel16 + + 459, 418 - - 11 + + 349, 1 - - None + + splitContainer1.Panel1 - - True + + panel13 - - NoControl + + 0, 40 - - 267, 15 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 124, 23 + + 126, 19 - - 8 + + 30, 26 - - Сортировать + + 127, 68 - - sortCheckBox + + panel3 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 12 + + 3 - - None + + 0 - - Flat + + 229, 15 - - Inter, 20.25pt + + Both - - NoControl + + None - - 267, 70 + + 11, 34 - - 150, 82 + + SG 553 - - 0 + + SSG 08 - - Старт + + 6, 6, 6, 6 - - startBtn + + 6 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel10 - - panel16 + + P250 - - 13 + + P90 - - Fill + + searchmodeGreater_btn - + + P2000 + + 0, 0 - - 427, 191 + + SCAR-20 - - 12 + + PP-Bizon - - panel16 + + R8 Revolver - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - - panel5 + + 8, 50 - - 0 + + Yes - - True + + Fill - - Inter, 9pt + + Inter, 14pt, style=Bold - - NoControl + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 8, 33 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 229, 15 + + Field-Tested - - 5 + + 0, 0, 0, 0 - - Текущая скорость: 0 комбинаций/сек + + 2 - - speedStatusLabel + + 1 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - - panel15 + + NoControl - - 0 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True + + None - - Inter, 9pt + + X - - NoControl + + True - - 8, 50 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 179, 15 + + startBtn - + 5 - - Проверено комбинаций: 0 / 0 + + None - - combinationsStatusLabel + + AUG - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + label1 - - panel15 + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + 267, 125 - - Bottom + + label5 + + + $this + + + 5 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - False + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Flat - - Inter, 16pt - - - NoControl + + panel6 - - 244, 0 + + panel6 - - 173, 71 + + 2 - - 3 + + 7, 7 - - GPU Тест + + panel7 - - False + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - gpuSearch_btn + + По возрастанию - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel9 - - panel15 + + MaximizeButton - - 2 + + 1 - - True + + 0, 0, 0, 0 - + NoControl - - 7, 0 - - - 79, 19 - - - 2 + + 469, 40 - - Потоков: + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label10 + + 3 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + None - - panel15 + + 7, 13 - - 3 + + Fill - - Inter, 11.25pt + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 92, 0 + + 12 - - 120, 22 + + 7, 101 - - 1 + + Field-Tested - - threadCountInput + + 0, 0 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + panel16 - + panel15 - - 4 - - - Bottom + + Fill - - 0, 191 + + weaponQualityBox 427, 76 - - 11 + + 427, 40 - - panel15 + + FloatToolGUI.CustomControls.CustomToggleSwitch, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Fill - - panel5 + + Microsoft JhengHei Light, 12pt - - 1 + + 80, 32 - - Fill + + panel9 - - 0, 191 + + 40, 40 - - 427, 267 + + None - - 0 + + panel12 - - panel5 + + Bottom, Right - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0, 0 - - panel2 + + benchmarkButton - - 0 + + AWP - - Left + + label3 - - 2, 0 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 427, 458 + + _ - - 8 + + True - - panel2 + + Left - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + searchmodeEqual_btn - - $this + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Fill - - 429, 0 + + Inter, 9.75pt - - 469, 458 + + 3 - - 9 + + 11, 29 - - panel4 + + GPU Тест - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - $this + + NoControl - + + 80% (AK-47 | Safari Mesh + 3) + + + fullSkinName + + 0 - - 198, 16 - - - True - - - 60 - - - Center + + 449, 92 - - 900, 460 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Inter, 11.249999pt + + Inter, 8pt - - - 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 - + + NoControl + + + sortCheckBox - - 900, 460 + + NoControl - - 2, 0, 2, 2 + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - CenterScreen + + Top, Right - - FloatTool + + panel16 + + + Flat + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5, 5, 5, 5 + + + 0 + + + AK-47 + + + panel15 + + + 124, 23 + + + Nova + + + 427, 25 + + + panel4 + + + button3 + + + panel16 + + + panel8 + + + Flat + + + 0, 10 + + + 13 + + + Top, Right + + + True + + + label24 + + + 2 + + + 82, 19 + + + downloadProgressBar + + + Inter, 9.75pt + + + NoControl + + + None + + + None + + + 2 + + + 12 + + + 173, 71 + + + 1 + + + NoControl + + + O + + + splitContainer1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 DiscordUpdater - - System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - WorkStatusUpdater + + 5, 5 - - System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + label6 - - FloatTool + + Flat - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Predator + + + 5 + + + M4A1-S + + + None + + + Flat + + + 2 + + + Microsoft JhengHei Light, 40px + + + 132, 24 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11, 161 + + + 92, 0 + + + None + + + True + + + True + + + Galil AR + + + 177, 19 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + 3 + + + Режим поиска: + + + StatTrack: + + + 0, 0 + + + 131, 127 + + + 0, 0 + + + skipValueInput + + + NoControl + + + 2 + + + panel16 + + + 8, 33 + + + searchFloatInput + + + None + + + outcomeSelectorComboBox + + + USP-S + + + XM1014 + + + Tec-9 + + + X + + 65, 16 + + + 198, 16 + + + True + + + 60 + \ No newline at end of file diff --git a/FloatToolGUI/Properties/Resources.Designer.cs b/FloatToolGUI/Properties/Resources.Designer.cs index 25b0cb1..385cd00 100644 --- a/FloatToolGUI/Properties/Resources.Designer.cs +++ b/FloatToolGUI/Properties/Resources.Designer.cs @@ -80,6 +80,16 @@ internal static System.Drawing.Bitmap benchmarkWhite { } } + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap DarkThemePreview { + get { + object obj = ResourceManager.GetObject("DarkThemePreview", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// @@ -120,6 +130,16 @@ internal static byte[] Inter_Regular { } } + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap LightThemePreview { + get { + object obj = ResourceManager.GetObject("LightThemePreview", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// diff --git a/FloatToolGUI/Properties/Resources.resx b/FloatToolGUI/Properties/Resources.resx index c8dac01..2f6f423 100644 --- a/FloatToolGUI/Properties/Resources.resx +++ b/FloatToolGUI/Properties/Resources.resx @@ -124,6 +124,9 @@ ..\Resources\benchmarkWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\DarkThemePreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\gearBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -136,6 +139,9 @@ ..\Resources\Inter-Regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\LightThemePreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\loading.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/FloatToolGUI/Resources/DarkThemePreview.png b/FloatToolGUI/Resources/DarkThemePreview.png new file mode 100644 index 0000000..974479a Binary files /dev/null and b/FloatToolGUI/Resources/DarkThemePreview.png differ diff --git a/FloatToolGUI/Resources/LightThemePreview.png b/FloatToolGUI/Resources/LightThemePreview.png new file mode 100644 index 0000000..87eca1d Binary files /dev/null and b/FloatToolGUI/Resources/LightThemePreview.png differ diff --git a/FloatToolGUI/SettingsForm.Designer.cs b/FloatToolGUI/SettingsForm.Designer.cs index dcf1dfb..4d5c746 100644 --- a/FloatToolGUI/SettingsForm.Designer.cs +++ b/FloatToolGUI/SettingsForm.Designer.cs @@ -33,26 +33,29 @@ private void InitializeComponent() this.panel3 = new System.Windows.Forms.Panel(); this.closeBtn = new System.Windows.Forms.Button(); this.label8 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.saveChangesBtn = new System.Windows.Forms.Button(); this.resetChangesBtn = new System.Windows.Forms.Button(); this.bufferSpeedNUP = new System.Windows.Forms.NumericUpDown(); this.label4 = new System.Windows.Forms.Label(); - this.checkUpdatesToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); - this.soundToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); - this.darkModeToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); - this.discordRpcToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); this.label5 = new System.Windows.Forms.Label(); this.currencyComboBox = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); this.currencyBindingSource = new System.Windows.Forms.BindingSource(this.components); this.currencyBindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.label7 = new System.Windows.Forms.Label(); + this.themeSelectorComboBox = new System.Windows.Forms.ComboBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.SettingsHints = new System.Windows.Forms.ToolTip(this.components); + this.discordRpcToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.checkUpdatesToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.soundToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.bufferSpeedNUP)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.currencyBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.currencyBindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // panel3 @@ -100,38 +103,29 @@ private void InitializeComponent() this.label8.Text = "Настройки"; this.label8.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown); // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Inter", 14F); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(75, 52); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 23); - this.label1.TabIndex = 3; - this.label1.Text = "Тёмная тема"; - // // label2 // this.label2.AutoSize = true; this.label2.Font = new System.Drawing.Font("Inter", 14F); this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(75, 95); + this.label2.Location = new System.Drawing.Point(74, 285); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(213, 23); this.label2.TabIndex = 3; this.label2.Text = "Звук при нахождении"; + this.SettingsHints.SetToolTip(this.label2, "Проигрывать звуковой сигнал при нахождении комбинации"); // // label3 // this.label3.AutoSize = true; this.label3.Font = new System.Drawing.Font("Inter", 14F); this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(75, 137); + this.label3.Location = new System.Drawing.Point(74, 327); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(217, 23); this.label3.TabIndex = 3; this.label3.Text = "Проверка обновлений"; + this.SettingsHints.SetToolTip(this.label3, "Проверять наличие обновлений при запуске программы"); // // saveChangesBtn // @@ -143,11 +137,12 @@ private void InitializeComponent() this.saveChangesBtn.Font = new System.Drawing.Font("Inter", 14F); this.saveChangesBtn.ForeColor = System.Drawing.Color.White; this.saveChangesBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.saveChangesBtn.Location = new System.Drawing.Point(8, 320); + this.saveChangesBtn.Location = new System.Drawing.Point(8, 512); this.saveChangesBtn.Name = "saveChangesBtn"; this.saveChangesBtn.Size = new System.Drawing.Size(185, 32); this.saveChangesBtn.TabIndex = 4; this.saveChangesBtn.Text = "Применить"; + this.SettingsHints.SetToolTip(this.saveChangesBtn, "Сохранить настройки"); this.saveChangesBtn.UseVisualStyleBackColor = false; this.saveChangesBtn.Click += new System.EventHandler(this.saveChangesBtn_Click); // @@ -160,11 +155,12 @@ private void InitializeComponent() this.resetChangesBtn.Font = new System.Drawing.Font("Inter", 14F); this.resetChangesBtn.ForeColor = System.Drawing.Color.White; this.resetChangesBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.resetChangesBtn.Location = new System.Drawing.Point(199, 320); + this.resetChangesBtn.Location = new System.Drawing.Point(199, 512); this.resetChangesBtn.Name = "resetChangesBtn"; this.resetChangesBtn.Size = new System.Drawing.Size(185, 32); this.resetChangesBtn.TabIndex = 4; this.resetChangesBtn.Text = "Отмена"; + this.SettingsHints.SetToolTip(this.resetChangesBtn, "Отменить изменения"); this.resetChangesBtn.UseVisualStyleBackColor = false; this.resetChangesBtn.Click += new System.EventHandler(this.resetChangesBtn_Click); // @@ -174,7 +170,7 @@ private void InitializeComponent() this.bufferSpeedNUP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.bufferSpeedNUP.Font = new System.Drawing.Font("Inter", 14F); this.bufferSpeedNUP.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.bufferSpeedNUP.Location = new System.Drawing.Point(8, 280); + this.bufferSpeedNUP.Location = new System.Drawing.Point(7, 470); this.bufferSpeedNUP.Maximum = new decimal(new int[] { 5000, 0, @@ -188,6 +184,7 @@ private void InitializeComponent() this.bufferSpeedNUP.Name = "bufferSpeedNUP"; this.bufferSpeedNUP.Size = new System.Drawing.Size(376, 30); this.bufferSpeedNUP.TabIndex = 5; + this.SettingsHints.SetToolTip(this.bufferSpeedNUP, "Скорость с которой будет выводиться текст в консоль"); this.bufferSpeedNUP.Value = new decimal(new int[] { 250, 0, @@ -200,70 +197,25 @@ private void InitializeComponent() this.label4.AutoSize = true; this.label4.Font = new System.Drawing.Font("Inter", 14F); this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(4, 253); + this.label4.Location = new System.Drawing.Point(3, 443); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(333, 23); this.label4.TabIndex = 3; this.label4.Text = "Скорость обновления буфера (мс)"; - // - // checkUpdatesToggle - // - this.checkUpdatesToggle.Checked = true; - this.checkUpdatesToggle.ForeColor = System.Drawing.Color.White; - this.checkUpdatesToggle.Location = new System.Drawing.Point(8, 131); - this.checkUpdatesToggle.Name = "checkUpdatesToggle"; - this.checkUpdatesToggle.Size = new System.Drawing.Size(64, 36); - this.checkUpdatesToggle.TabIndex = 2; - this.checkUpdatesToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.checkUpdatesToggle.TurnedOnColor = System.Drawing.Color.Green; - this.checkUpdatesToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); - // - // soundToggle - // - this.soundToggle.Checked = true; - this.soundToggle.ForeColor = System.Drawing.Color.White; - this.soundToggle.Location = new System.Drawing.Point(8, 89); - this.soundToggle.Name = "soundToggle"; - this.soundToggle.Size = new System.Drawing.Size(64, 36); - this.soundToggle.TabIndex = 2; - this.soundToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.soundToggle.TurnedOnColor = System.Drawing.Color.Green; - this.soundToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); - // - // darkModeToggle - // - this.darkModeToggle.Checked = true; - this.darkModeToggle.ForeColor = System.Drawing.Color.White; - this.darkModeToggle.Location = new System.Drawing.Point(8, 46); - this.darkModeToggle.Name = "darkModeToggle"; - this.darkModeToggle.Size = new System.Drawing.Size(64, 36); - this.darkModeToggle.TabIndex = 2; - this.darkModeToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.darkModeToggle.TurnedOnColor = System.Drawing.Color.Green; - this.darkModeToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); - // - // discordRpcToggle - // - this.discordRpcToggle.Checked = true; - this.discordRpcToggle.ForeColor = System.Drawing.Color.White; - this.discordRpcToggle.Location = new System.Drawing.Point(8, 173); - this.discordRpcToggle.Name = "discordRpcToggle"; - this.discordRpcToggle.Size = new System.Drawing.Size(64, 36); - this.discordRpcToggle.TabIndex = 2; - this.discordRpcToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.discordRpcToggle.TurnedOnColor = System.Drawing.Color.Green; - this.discordRpcToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); + this.SettingsHints.SetToolTip(this.label4, "Скорость с которой будет выводиться текст в консоль"); // // label5 // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Inter", 14F); this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(75, 179); + this.label5.Location = new System.Drawing.Point(74, 369); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(197, 23); this.label5.TabIndex = 3; this.label5.Text = "Интеграция Discord"; + this.SettingsHints.SetToolTip(this.label5, "Использовать интеграцию Discord Rich Presence чтобы показывать в статусе что вы к" + + "рафтите"); // // currencyComboBox // @@ -273,10 +225,11 @@ private void InitializeComponent() this.currencyComboBox.Font = new System.Drawing.Font("Inter", 14F); this.currencyComboBox.ForeColor = System.Drawing.Color.White; this.currencyComboBox.FormattingEnabled = true; - this.currencyComboBox.Location = new System.Drawing.Point(90, 218); + this.currencyComboBox.Location = new System.Drawing.Point(89, 408); this.currencyComboBox.Name = "currencyComboBox"; this.currencyComboBox.Size = new System.Drawing.Size(173, 31); this.currencyComboBox.TabIndex = 6; + this.SettingsHints.SetToolTip(this.currencyComboBox, "Валюта в которой будет отображатся часть интерфейса"); this.currencyComboBox.SelectedIndexChanged += new System.EventHandler(this.bufferSpeedNUP_ValueChanged); // // label6 @@ -284,11 +237,12 @@ private void InitializeComponent() this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("Inter", 14F); this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(4, 221); + this.label6.Location = new System.Drawing.Point(3, 411); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(85, 23); this.label6.TabIndex = 3; this.label6.Text = "Валюта:"; + this.SettingsHints.SetToolTip(this.label6, "Валюта в которой будет отображатся часть интерфейса"); // // currencyBindingSource // @@ -298,11 +252,94 @@ private void InitializeComponent() // this.currencyBindingSource1.DataSource = typeof(FloatToolGUI.Utils.Currency); // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Inter", 14F); + this.label7.ForeColor = System.Drawing.Color.White; + this.label7.Location = new System.Drawing.Point(4, 49); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(63, 23); + this.label7.TabIndex = 7; + this.label7.Text = "Тема:"; + // + // themeSelectorComboBox + // + this.themeSelectorComboBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.themeSelectorComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.themeSelectorComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.themeSelectorComboBox.Font = new System.Drawing.Font("Inter", 14F); + this.themeSelectorComboBox.ForeColor = System.Drawing.Color.White; + this.themeSelectorComboBox.FormattingEnabled = true; + this.themeSelectorComboBox.Items.AddRange(new object[] { + "Тёмная", + "Светлая", + "Кастомная"}); + this.themeSelectorComboBox.Location = new System.Drawing.Point(78, 46); + this.themeSelectorComboBox.Name = "themeSelectorComboBox"; + this.themeSelectorComboBox.Size = new System.Drawing.Size(305, 31); + this.themeSelectorComboBox.TabIndex = 8; + this.SettingsHints.SetToolTip(this.themeSelectorComboBox, "Выбор темы приложения"); + this.themeSelectorComboBox.SelectedIndexChanged += new System.EventHandler(this.themeSelectorComboBox_SelectedIndexChanged); + // + // pictureBox1 + // + this.pictureBox1.Image = global::FloatToolGUI.Properties.Resources.DarkThemePreview; + this.pictureBox1.Location = new System.Drawing.Point(8, 83); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(375, 190); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 9; + this.pictureBox1.TabStop = false; + // + // discordRpcToggle + // + this.discordRpcToggle.Checked = true; + this.discordRpcToggle.ForeColor = System.Drawing.Color.White; + this.discordRpcToggle.Location = new System.Drawing.Point(7, 363); + this.discordRpcToggle.Name = "discordRpcToggle"; + this.discordRpcToggle.Size = new System.Drawing.Size(64, 36); + this.discordRpcToggle.TabIndex = 2; + this.SettingsHints.SetToolTip(this.discordRpcToggle, "Использовать интеграцию Discord Rich Presence чтобы показывать в статусе что вы к" + + "рафтите"); + this.discordRpcToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.discordRpcToggle.TurnedOnColor = System.Drawing.Color.Green; + this.discordRpcToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); + // + // checkUpdatesToggle + // + this.checkUpdatesToggle.Checked = true; + this.checkUpdatesToggle.ForeColor = System.Drawing.Color.White; + this.checkUpdatesToggle.Location = new System.Drawing.Point(7, 321); + this.checkUpdatesToggle.Name = "checkUpdatesToggle"; + this.checkUpdatesToggle.Size = new System.Drawing.Size(64, 36); + this.checkUpdatesToggle.TabIndex = 2; + this.SettingsHints.SetToolTip(this.checkUpdatesToggle, "Проверять наличие обновлений при запуске программы"); + this.checkUpdatesToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.checkUpdatesToggle.TurnedOnColor = System.Drawing.Color.Green; + this.checkUpdatesToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); + // + // soundToggle + // + this.soundToggle.Checked = true; + this.soundToggle.ForeColor = System.Drawing.Color.White; + this.soundToggle.Location = new System.Drawing.Point(7, 279); + this.soundToggle.Name = "soundToggle"; + this.soundToggle.Size = new System.Drawing.Size(64, 36); + this.soundToggle.TabIndex = 2; + this.SettingsHints.SetToolTip(this.soundToggle, "Проигрывать звуковой сигнал при нахождении комбинации"); + this.soundToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.soundToggle.TurnedOnColor = System.Drawing.Color.Green; + this.soundToggle.OnToggled += new System.EventHandler(this.Toggle_OnToggled); + // // SettingsForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); - this.ClientSize = new System.Drawing.Size(390, 364); + this.ClientSize = new System.Drawing.Size(390, 556); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.themeSelectorComboBox); + this.Controls.Add(this.label7); this.Controls.Add(this.currencyComboBox); this.Controls.Add(this.bufferSpeedNUP); this.Controls.Add(this.resetChangesBtn); @@ -315,8 +352,6 @@ private void InitializeComponent() this.Controls.Add(this.discordRpcToggle); this.Controls.Add(this.checkUpdatesToggle); this.Controls.Add(this.soundToggle); - this.Controls.Add(this.label1); - this.Controls.Add(this.darkModeToggle); this.Controls.Add(this.panel3); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); @@ -328,6 +363,7 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.bufferSpeedNUP)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.currencyBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.currencyBindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -338,8 +374,6 @@ private void InitializeComponent() private System.Windows.Forms.Panel panel3; private System.Windows.Forms.Label label8; private System.Windows.Forms.Button closeBtn; - private CustomControls.CustomToggleSwitch darkModeToggle; - private System.Windows.Forms.Label label1; private CustomControls.CustomToggleSwitch soundToggle; private System.Windows.Forms.Label label2; private CustomControls.CustomToggleSwitch checkUpdatesToggle; @@ -354,5 +388,9 @@ private void InitializeComponent() private System.Windows.Forms.Label label6; private System.Windows.Forms.BindingSource currencyBindingSource; private System.Windows.Forms.BindingSource currencyBindingSource1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox themeSelectorComboBox; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.ToolTip SettingsHints; } } \ No newline at end of file diff --git a/FloatToolGUI/SettingsForm.cs b/FloatToolGUI/SettingsForm.cs index 091c48d..7e66229 100644 --- a/FloatToolGUI/SettingsForm.cs +++ b/FloatToolGUI/SettingsForm.cs @@ -20,14 +20,15 @@ public SettingsForm() { InitializeComponent(); currencyComboBox.DataSource = Enum.GetValues(typeof(Currency)); + themeSelectorComboBox.DataSource = Enum.GetValues(typeof(Pallete)); CheckRegistry(); registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); - darkModeToggle.Checked = Convert.ToBoolean(registryData.GetValue("darkMode")); soundToggle.Checked = Convert.ToBoolean(registryData.GetValue("sound")); checkUpdatesToggle.Checked = Convert.ToBoolean(registryData.GetValue("updateCheck")); bufferSpeedNUP.Value = (int)registryData.GetValue("bufferSpeed"); discordRpcToggle.Checked = Convert.ToBoolean(registryData.GetValue("discordRPC")); currencyComboBox.SelectedItem = (Currency)registryData.GetValue("currency"); + themeSelectorComboBox.SelectedItem = (Pallete)registryData.GetValue("theme"); saveChangesBtn.Enabled = false; Logger.Log($"[{DateTime.Now}]: Settings window opened"); } @@ -71,12 +72,12 @@ private void saveChangesBtn_Click(object sender, EventArgs e) { CheckRegistry(); registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool", true); - registryData.SetValue("darkMode", darkModeToggle.Checked); registryData.SetValue("sound", soundToggle.Checked); registryData.SetValue("updateCheck", checkUpdatesToggle.Checked); registryData.SetValue("bufferSpeed", (int)bufferSpeedNUP.Value); registryData.SetValue("discordRPC", discordRpcToggle.Checked); registryData.SetValue("currency", (int)currencyComboBox.SelectedValue); + registryData.SetValue("theme", (int)themeSelectorComboBox.SelectedItem); registryData.Close(); saveChangesBtn.Enabled = false; Logger.Log($"[{DateTime.Now}]: Settings saved"); @@ -86,14 +87,31 @@ private void resetChangesBtn_Click(object sender, EventArgs e) { CheckRegistry(); registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); - darkModeToggle.Checked = Convert.ToBoolean(registryData.GetValue("darkMode")); soundToggle.Checked = Convert.ToBoolean(registryData.GetValue("sound")); checkUpdatesToggle.Checked = Convert.ToBoolean(registryData.GetValue("updateCheck")); bufferSpeedNUP.Value = (int)registryData.GetValue("bufferSpeed"); discordRpcToggle.Checked = Convert.ToBoolean(registryData.GetValue("discordRPC")); currencyComboBox.SelectedItem = (Currency)registryData.GetValue("currency"); + themeSelectorComboBox.SelectedItem = (Pallete)registryData.GetValue("theme"); saveChangesBtn.Enabled = false; Logger.Log($"[{DateTime.Now}]: Settings reseted"); } + + private void themeSelectorComboBox_SelectedIndexChanged(object sender, EventArgs e) + { + saveChangesBtn.Enabled = true; + if ((Pallete)themeSelectorComboBox.SelectedItem == Pallete.Dark) + pictureBox1.Image = Properties.Resources.DarkThemePreview; + else if ((Pallete)themeSelectorComboBox.SelectedItem == Pallete.Light) + pictureBox1.Image = Properties.Resources.LightThemePreview; + else + pictureBox1.Image = CustomPalette.Thumbnail; + } + + + private void SetTheme(Pallete pallete) + { + + } } } diff --git a/FloatToolGUI/SettingsForm.resx b/FloatToolGUI/SettingsForm.resx index 4808448..dc5152c 100644 --- a/FloatToolGUI/SettingsForm.resx +++ b/FloatToolGUI/SettingsForm.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 377, 17 + 17, 17 diff --git a/FloatToolGUI/Utils.cs b/FloatToolGUI/Utils.cs index 6a90f63..b9e4ea7 100644 --- a/FloatToolGUI/Utils.cs +++ b/FloatToolGUI/Utils.cs @@ -4,6 +4,7 @@ using System.Drawing.Text; using System.IO; using System.Linq; +using System.Net; using System.Net.Http; using System.Runtime.InteropServices; using System.Text; @@ -13,8 +14,116 @@ namespace FloatToolGUI { + public class PaletteColors + { + public Color Primary1 { get; set; } + public Color Primary2 { get; set; } + public Color Primary3 { get; set; } + public Color Primary4 { get; set; } + public Color Primary5 { get; set; } + public Color Primary6 { get; set; } + public Color Secondary1 { get; set; } + public Color Secondary2 { get; set; } + public Color Secondary3 { get; set; } + public Color OverBackColor1 { get; set; } + public Color OverBackColor2 { get; set; } + + public string Name { get; set; } + public string Description { get; set; } + public string Author { get; set; } + + public bool IsDarkButtons { get; set; } + + public bool IsThumbnail { get; set; } + public Image Thumbnail { get; set; } + } + static class Utils { + #region Color palette + + //Dark Mode + static Color darkPrimary1 = Color.FromArgb(44, 44, 44); + static Color darkPrimary2 = Color.FromArgb(31, 31, 31); + static Color darkPrimary3 = Color.FromArgb(37, 37, 37); + static Color darkPrimary4 = Color.FromArgb(32, 32, 32); + static Color darkPrimary5 = Color.FromArgb(56, 56, 56); + static Color darkPrimary6 = Color.FromArgb(56, 56, 56); + + static Color darkSecondary1 = Color.White; + static Color darkSecondary2 = Color.FromArgb(150, 150, 150); + static Color darkSecondary3 = Color.Green; + + static Color darkOverBackColor1 = Color.Black; + static Color darkOverBackColor2 = SystemColors.WindowFrame; + + //Light Mode + static Color lightPrimary1 = Color.FromArgb(222, 222, 222); + static Color lightPrimary2 = Color.FromArgb(255, 255, 255); + static Color lightPrimary3 = Color.FromArgb(249, 249, 249); + static Color lightPrimary4 = Color.FromArgb(255, 255, 255); + static Color lightPrimary5 = Color.FromArgb(249, 249, 249); + static Color lightPrimary6 = Color.FromArgb(200, 200, 200); + + static Color lightSecondary1 = Color.Black; + static Color lightSecondary2 = Color.FromArgb(10, 10, 10); + static Color lightSecondary3 = Color.FromArgb(119, 194, 119); + + static Color lightOverBackColor1 = Color.FromArgb(230, 230, 230); + static Color lightOverBackColor2 = Color.FromArgb(240, 240, 240); + + #endregion + + public static PaletteColors CustomPalette { get; } = new PaletteColors(); + + static public void UpdateCustomPalette() + { + try + { + using (StreamReader r = new StreamReader("theme.json")) + { + string json = r.ReadToEnd(); + dynamic items = JsonConvert.DeserializeObject(json); + var colorData = items["colors"]; + CustomPalette.Primary1 = Color.FromArgb((int)colorData["Primary1"][0], (int)colorData["Primary1"][1], (int)colorData["Primary1"][2]); + CustomPalette.Primary2 = Color.FromArgb((int)colorData["Primary2"][0], (int)colorData["Primary2"][1], (int)colorData["Primary2"][2]); + CustomPalette.Primary3 = Color.FromArgb((int)colorData["Primary3"][0], (int)colorData["Primary3"][1], (int)colorData["Primary3"][2]); + CustomPalette.Primary4 = Color.FromArgb((int)colorData["Primary4"][0], (int)colorData["Primary4"][1], (int)colorData["Primary4"][2]); + CustomPalette.Primary5 = Color.FromArgb((int)colorData["Primary5"][0], (int)colorData["Primary5"][1], (int)colorData["Primary5"][2]); + CustomPalette.Primary6 = Color.FromArgb((int)colorData["Primary6"][0], (int)colorData["Primary6"][1], (int)colorData["Primary6"][2]); + CustomPalette.Secondary1 = Color.FromArgb((int)colorData["Secondary1"][0], (int)colorData["Secondary1"][1], (int)colorData["Secondary1"][2]); + CustomPalette.Secondary2 = Color.FromArgb((int)colorData["Secondary2"][0], (int)colorData["Secondary2"][1], (int)colorData["Secondary2"][2]); + CustomPalette.Secondary3 = Color.FromArgb((int)colorData["Secondary3"][0], (int)colorData["Secondary3"][1], (int)colorData["Secondary3"][2]); + CustomPalette.OverBackColor1 = Color.FromArgb((int)colorData["OverBackColor1"][0], (int)colorData["OverBackColor1"][1], (int)colorData["OverBackColor1"][2]); + CustomPalette.OverBackColor2 = Color.FromArgb((int)colorData["OverBackColor2"][0], (int)colorData["OverBackColor2"][1], (int)colorData["OverBackColor2"][2]); + + CustomPalette.Name = items["name"].ToString(); + CustomPalette.Description = items["description"].ToString(); + CustomPalette.Author = items["author"].ToString(); + + CustomPalette.IsDarkButtons = items["darkButtons"]; + + CustomPalette.IsThumbnail = items["thumbnail"]; + if (CustomPalette.IsThumbnail) + { + byte[] bytes = Convert.FromBase64String(items["thumbnailBase64"].ToString()); + + using (MemoryStream ms = new MemoryStream(bytes)) + CustomPalette.Thumbnail = Image.FromStream(ms); + } + else + { + CustomPalette.Thumbnail = Properties.Resources.DarkThemePreview; + } + } + } + catch (Exception ex) + { + Logger.Log($"[{DateTime.Now}]: {{EXCEPTION}} {ex.Message}{Environment.NewLine}{ex.StackTrace}"); + Logger.SaveCrashReport(); + } + } + public enum Currency { USD = 1, GBP = 2, @@ -40,13 +149,124 @@ public enum Currency RMB = 9000, NXP = 9001 } + public enum Pallete + { + Dark, + Light, + Custom + } + + public enum PalleteColor + { + Primary1, + Primary2, + Primary3, + Primary4, + Primary5, + Primary6, + Secondary1, + Secondary2, + Secondary3, + OverBackColor1, + OverBackColor2 + } + + public static Color GetPalleteColor(Pallete pallete, PalleteColor color) + { + if (pallete.CompareTo(Pallete.Dark) == 0) + { + switch (color) + { + case PalleteColor.Primary1: + return darkPrimary1; + case PalleteColor.Primary2: + return darkPrimary2; + case PalleteColor.Primary3: + return darkPrimary3; + case PalleteColor.Primary4: + return darkPrimary4; + case PalleteColor.Primary5: + return darkPrimary5; + case PalleteColor.Primary6: + return darkPrimary6; + case PalleteColor.Secondary1: + return darkSecondary1; + case PalleteColor.Secondary2: + return darkSecondary2; + case PalleteColor.Secondary3: + return darkSecondary3; + case PalleteColor.OverBackColor1: + return darkOverBackColor1; + case PalleteColor.OverBackColor2: + return darkOverBackColor2; + } + } + else if (pallete.CompareTo(Pallete.Light) == 0) + { + switch (color) + { + case PalleteColor.Primary1: + return lightPrimary1; + case PalleteColor.Primary2: + return lightPrimary2; + case PalleteColor.Primary3: + return lightPrimary3; + case PalleteColor.Primary4: + return lightPrimary4; + case PalleteColor.Primary5: + return lightPrimary5; + case PalleteColor.Primary6: + return lightPrimary6; + case PalleteColor.Secondary1: + return lightSecondary1; + case PalleteColor.Secondary2: + return lightSecondary2; + case PalleteColor.Secondary3: + return lightSecondary3; + case PalleteColor.OverBackColor1: + return lightOverBackColor1; + case PalleteColor.OverBackColor2: + return lightOverBackColor2; + } + } + else + { + switch (color) + { + case PalleteColor.Primary1: + return CustomPalette.Primary1; + case PalleteColor.Primary2: + return CustomPalette.Primary2; + case PalleteColor.Primary3: + return CustomPalette.Primary3; + case PalleteColor.Primary4: + return CustomPalette.Primary4; + case PalleteColor.Primary5: + return CustomPalette.Primary5; + case PalleteColor.Primary6: + return CustomPalette.Primary6; + case PalleteColor.Secondary1: + return CustomPalette.Secondary1; + case PalleteColor.Secondary2: + return CustomPalette.Secondary2; + case PalleteColor.Secondary3: + return CustomPalette.Secondary3; + case PalleteColor.OverBackColor1: + return CustomPalette.OverBackColor1; + case PalleteColor.OverBackColor2: + return CustomPalette.OverBackColor2; + } + } + return Color.Black; + } + static public string getNextRarity(string rarity) { - if (rarity == "Consumer") return "Industrial"; - else if (rarity == "Industrial") return "Mil-Spec"; - else if (rarity == "Mil-Spec") return "Restricted"; - else if (rarity == "Restricted") return "Classified"; - else if (rarity == "Classified") return "Covert"; + if (string.Compare(rarity, "Consumer") == 0) return "Industrial"; + else if (string.Compare(rarity, "Industrial") == 0) return "Mil-Spec"; + else if (string.Compare(rarity, "Mil-Spec") == 0) return "Restricted"; + else if (string.Compare(rarity, "Restricted") == 0) return "Classified"; + else if (string.Compare(rarity, "Classified") == 0) return "Covert"; return "Nothing"; } @@ -66,6 +286,19 @@ public static string CheckUpdates() } } + public static decimal GetWearFromInspectURL(string url) + { + url = "https://api.csgofloat.com/?url=" + url; + + using (WebClient wcf = new WebClient()) + { + wcf.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); + string jsonf = wcf.DownloadString(url); + dynamic rf = JsonConvert.DeserializeObject(jsonf); + return Convert.ToDecimal(rf["iteminfo"]["floatvalue"]); + } + } + public static bool testOverlap(float x1, float x2, float y1, float y2) { return (x1 >= y1 && x1 <= y2) || @@ -80,22 +313,24 @@ public static void CheckRegistry() if (registryData == null) { registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); - registryData.SetValue("darkMode", true); registryData.SetValue("sound", true); registryData.SetValue("updateCheck", true); registryData.SetValue("bufferSpeed", 250); registryData.SetValue("discordRPC", true); registryData.SetValue("currency", (int)Currency.USD); + registryData.SetValue("lastThreads", Environment.ProcessorCount); + registryData.SetValue("theme", (int)Pallete.Dark); registryData.Close(); } else { - if(registryData.GetValue("darkMode") == null) registryData.SetValue("darkMode", true); if (registryData.GetValue("sound") == null) registryData.SetValue("sound", true); if (registryData.GetValue("updateCheck") == null) registryData.SetValue("updateCheck", true); if (registryData.GetValue("bufferSpeed") == null) registryData.SetValue("bufferSpeed", 250); if (registryData.GetValue("discordRPC") == null) registryData.SetValue("discordRPC", true); if (registryData.GetValue("currency") == null) registryData.SetValue("currency", (int)Currency.USD); + if (registryData.GetValue("lastThreads") == null) registryData.SetValue("lastThreads", Environment.ProcessorCount); + if (registryData.GetValue("theme") == null) registryData.SetValue("theme", (int)Pallete.Dark); } }