diff --git a/.vs/FloatToolGUI/v16/.suo b/.vs/FloatToolGUI/v16/.suo
index ed83140..6f50486 100644
Binary files a/.vs/FloatToolGUI/v16/.suo and b/.vs/FloatToolGUI/v16/.suo differ
diff --git a/FloatToolGUI/About.Designer.cs b/FloatToolGUI/About.Designer.cs
deleted file mode 100644
index 6c00c5e..0000000
--- a/FloatToolGUI/About.Designer.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-namespace FloatToolGUI
-{
- partial class About
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
- this.close_btn = new System.Windows.Forms.Button();
- this.label1 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.label4 = new System.Windows.Forms.Label();
- this.divam = new System.Windows.Forms.Label();
- this.granzi = new System.Windows.Forms.Label();
- this.brisk = new System.Windows.Forms.Label();
- this.SuspendLayout();
- //
- // close_btn
- //
- this.close_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
- this.close_btn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.close_btn.FlatAppearance.BorderSize = 0;
- this.close_btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.close_btn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 18F);
- this.close_btn.ForeColor = System.Drawing.Color.White;
- this.close_btn.Location = new System.Drawing.Point(11, 184);
- this.close_btn.Name = "close_btn";
- this.close_btn.Size = new System.Drawing.Size(218, 45);
- this.close_btn.TabIndex = 0;
- this.close_btn.Text = "Закрыть";
- this.close_btn.UseVisualStyleBackColor = false;
- this.close_btn.Click += new System.EventHandler(this.button1_Click);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Font = new System.Drawing.Font("Righteous", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label1.ForeColor = System.Drawing.Color.White;
- this.label1.Location = new System.Drawing.Point(29, 7);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(181, 47);
- this.label1.TabIndex = 1;
- this.label1.Text = "FloatTool";
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Font = new System.Drawing.Font("Righteous", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label2.ForeColor = System.Drawing.Color.White;
- this.label2.Location = new System.Drawing.Point(52, 56);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(136, 21);
- this.label2.TabIndex = 2;
- this.label2.Text = "Версия 0.4.2 GUI";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label3.ForeColor = System.Drawing.Color.White;
- this.label3.Location = new System.Drawing.Point(21, 86);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(202, 14);
- this.label3.TabIndex = 3;
- this.label3.Text = "Разработал приложение: Prevter";
- this.label3.Click += new System.EventHandler(this.label3_Click);
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label4.ForeColor = System.Drawing.Color.White;
- this.label4.Location = new System.Drawing.Point(37, 109);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(167, 14);
- this.label4.TabIndex = 4;
- this.label4.Text = "Помогали в тестировании:";
- //
- // divam
- //
- this.divam.AutoSize = true;
- this.divam.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.divam.ForeColor = System.Drawing.Color.White;
- this.divam.Location = new System.Drawing.Point(53, 133);
- this.divam.Name = "divam";
- this.divam.Size = new System.Drawing.Size(43, 14);
- this.divam.TabIndex = 5;
- this.divam.Text = "Divam";
- this.divam.Click += new System.EventHandler(this.divam_Click);
- //
- // granzi
- //
- this.granzi.AutoSize = true;
- this.granzi.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.granzi.ForeColor = System.Drawing.Color.White;
- this.granzi.Location = new System.Drawing.Point(116, 133);
- this.granzi.Name = "granzi";
- this.granzi.Size = new System.Drawing.Size(72, 14);
- this.granzi.TabIndex = 6;
- this.granzi.Text = "GranziTime";
- this.granzi.Click += new System.EventHandler(this.granzi_Click);
- //
- // brisk
- //
- this.brisk.AutoSize = true;
- this.brisk.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.brisk.ForeColor = System.Drawing.Color.White;
- this.brisk.Location = new System.Drawing.Point(5, 159);
- this.brisk.Name = "brisk";
- this.brisk.Size = new System.Drawing.Size(227, 14);
- this.brisk.TabIndex = 8;
- this.brisk.Text = "Идея была взята из видео BriskBrain";
- this.brisk.Click += new System.EventHandler(this.label8_Click);
- //
- // About
- //
- this.AcceptButton = this.close_btn;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44)))));
- this.CancelButton = this.close_btn;
- this.ClientSize = new System.Drawing.Size(239, 237);
- this.ControlBox = false;
- this.Controls.Add(this.brisk);
- this.Controls.Add(this.granzi);
- this.Controls.Add(this.divam);
- this.Controls.Add(this.label4);
- this.Controls.Add(this.label3);
- this.Controls.Add(this.label2);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.close_btn);
- this.HelpButton = true;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "About";
- this.Text = "О Разработчике";
- this.Load += new System.EventHandler(this.About_Load);
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Button close_btn;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Label label4;
- private System.Windows.Forms.Label divam;
- private System.Windows.Forms.Label granzi;
- private System.Windows.Forms.Label brisk;
- }
-}
\ No newline at end of file
diff --git a/FloatToolGUI/About.cs b/FloatToolGUI/About.cs
deleted file mode 100644
index 5dfc71e..0000000
--- a/FloatToolGUI/About.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace FloatToolGUI
-{
- public partial class About : Form
- {
- public About()
- {
- InitializeComponent();
- }
-
- private void About_Load(object sender, EventArgs e)
- {
-
- }
-
- private void divam_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://steamcommunity.com/id/divamyt");
- }
-
- private void button1_Click(object sender, EventArgs e)
- {
- this.Close();
- }
-
- private void label3_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://steamcommunity.com/id/prevter");
- }
-
- private void label8_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://www.youtube.com/channel/UCsqGXK3HK0eWu6C1NoUsRsQ");
- }
-
- private void granzi_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://steamcommunity.com/profiles/76561198328715744");
- }
- }
-}
diff --git a/FloatToolGUI/About.resx b/FloatToolGUI/About.resx
deleted file mode 100644
index 6765ca3..0000000
--- a/FloatToolGUI/About.resx
+++ /dev/null
@@ -1,658 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
-
- 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
- WtT/Dwq2uvjgV6RrAAAAAElFTkSuQmCC
-
-
-
\ No newline at end of file
diff --git a/FloatToolGUI/App.config b/FloatToolGUI/App.config
index 56efbc7..03a0a75 100644
--- a/FloatToolGUI/App.config
+++ b/FloatToolGUI/App.config
@@ -1,6 +1,26 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FloatToolGUI/Benchmark.Designer.cs b/FloatToolGUI/Benchmark.Designer.cs
new file mode 100644
index 0000000..9b281ec
--- /dev/null
+++ b/FloatToolGUI/Benchmark.Designer.cs
@@ -0,0 +1,370 @@
+namespace FloatToolGUI
+{
+ partial class Benchmark
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Benchmark));
+ this.startBenchmarkBtn = new System.Windows.Forms.Button();
+ this.submitScoreBtn = new System.Windows.Forms.Button();
+ this.cpuNameLabel = new System.Windows.Forms.Label();
+ this.threadCountLabel = new System.Windows.Forms.Label();
+ this.versionLabel2 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.speedLabel = new System.Windows.Forms.Label();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.label7 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.Updater = new System.Windows.Forms.Timer(this.components);
+ this.customProgressBar1 = new FloatToolGUI.CustomProgressBar();
+ this.panel4 = new System.Windows.Forms.Panel();
+ this.label8 = new System.Windows.Forms.Label();
+ this.closeBtn = new System.Windows.Forms.Button();
+ this.panel3 = new System.Windows.Forms.Panel();
+ this.flowLayoutPanel1.SuspendLayout();
+ this.panel1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.panel4.SuspendLayout();
+ this.panel3.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // startBenchmarkBtn
+ //
+ this.startBenchmarkBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.startBenchmarkBtn.FlatAppearance.BorderSize = 0;
+ this.startBenchmarkBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.startBenchmarkBtn.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.startBenchmarkBtn.ForeColor = System.Drawing.Color.White;
+ this.startBenchmarkBtn.Location = new System.Drawing.Point(394, 247);
+ this.startBenchmarkBtn.Name = "startBenchmarkBtn";
+ this.startBenchmarkBtn.Size = new System.Drawing.Size(304, 39);
+ this.startBenchmarkBtn.TabIndex = 1;
+ this.startBenchmarkBtn.Text = "Начать бенчмарк";
+ this.startBenchmarkBtn.UseVisualStyleBackColor = false;
+ this.startBenchmarkBtn.Click += new System.EventHandler(this.startBenchmarkBtn_Click);
+ //
+ // submitScoreBtn
+ //
+ this.submitScoreBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.submitScoreBtn.Enabled = false;
+ this.submitScoreBtn.FlatAppearance.BorderSize = 0;
+ this.submitScoreBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.submitScoreBtn.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F);
+ this.submitScoreBtn.ForeColor = System.Drawing.Color.White;
+ this.submitScoreBtn.Location = new System.Drawing.Point(394, 212);
+ this.submitScoreBtn.Name = "submitScoreBtn";
+ this.submitScoreBtn.Size = new System.Drawing.Size(304, 29);
+ this.submitScoreBtn.TabIndex = 2;
+ this.submitScoreBtn.Text = "Опубликовать";
+ this.submitScoreBtn.UseVisualStyleBackColor = false;
+ this.submitScoreBtn.Click += new System.EventHandler(this.submitScoreBtn_Click);
+ //
+ // cpuNameLabel
+ //
+ this.cpuNameLabel.AutoSize = true;
+ this.cpuNameLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 11F);
+ this.cpuNameLabel.ForeColor = System.Drawing.Color.White;
+ this.cpuNameLabel.Location = new System.Drawing.Point(390, 9);
+ this.cpuNameLabel.Name = "cpuNameLabel";
+ this.cpuNameLabel.Size = new System.Drawing.Size(137, 19);
+ this.cpuNameLabel.TabIndex = 3;
+ this.cpuNameLabel.Text = "AMD Ryzen 5 2600";
+ this.cpuNameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // threadCountLabel
+ //
+ this.threadCountLabel.AutoSize = true;
+ this.threadCountLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.threadCountLabel.ForeColor = System.Drawing.Color.White;
+ this.threadCountLabel.Location = new System.Drawing.Point(390, 28);
+ this.threadCountLabel.Name = "threadCountLabel";
+ this.threadCountLabel.Size = new System.Drawing.Size(93, 20);
+ this.threadCountLabel.TabIndex = 3;
+ this.threadCountLabel.Text = "12 Потоков";
+ this.threadCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // versionLabel2
+ //
+ this.versionLabel2.AutoSize = true;
+ this.versionLabel2.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.versionLabel2.ForeColor = System.Drawing.Color.White;
+ this.versionLabel2.Location = new System.Drawing.Point(390, 48);
+ this.versionLabel2.Name = "versionLabel2";
+ this.versionLabel2.Size = new System.Drawing.Size(93, 20);
+ this.versionLabel2.TabIndex = 3;
+ this.versionLabel2.Text = "v.0.5.0 beta";
+ this.versionLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label4.ForeColor = System.Drawing.Color.White;
+ this.label4.Location = new System.Drawing.Point(390, 151);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(84, 20);
+ this.label4.TabIndex = 3;
+ this.label4.Text = "Скорость:";
+ this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // speedLabel
+ //
+ this.speedLabel.AutoSize = true;
+ this.speedLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.speedLabel.ForeColor = System.Drawing.Color.White;
+ this.speedLabel.Location = new System.Drawing.Point(390, 171);
+ this.speedLabel.Name = "speedLabel";
+ this.speedLabel.Size = new System.Drawing.Size(45, 20);
+ this.speedLabel.TabIndex = 3;
+ this.speedLabel.Text = "0 к/с";
+ this.speedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.AutoScroll = true;
+ this.flowLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(26)))), ((int)(((byte)(26)))));
+ this.flowLayoutPanel1.Controls.Add(this.panel1);
+ this.flowLayoutPanel1.Controls.Add(this.panel2);
+ this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
+ this.flowLayoutPanel1.ForeColor = System.Drawing.Color.White;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(10);
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(384, 321);
+ this.flowLayoutPanel1.TabIndex = 4;
+ this.flowLayoutPanel1.WrapContents = false;
+ //
+ // panel1
+ //
+ this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(10)))), ((int)(((byte)(27)))));
+ this.panel1.Controls.Add(this.label7);
+ this.panel1.Controls.Add(this.label6);
+ this.panel1.Location = new System.Drawing.Point(10, 10);
+ this.panel1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 5);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(350, 35);
+ this.panel1.TabIndex = 0;
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F);
+ this.label7.ForeColor = System.Drawing.Color.White;
+ this.label7.Location = new System.Drawing.Point(3, 18);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(128, 14);
+ this.label7.TabIndex = 3;
+ this.label7.Text = "1021779 к/с (v.0.5.0 beta)";
+ this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F);
+ this.label6.ForeColor = System.Drawing.Color.White;
+ this.label6.Location = new System.Drawing.Point(3, 3);
+ this.label6.Margin = new System.Windows.Forms.Padding(0);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(260, 14);
+ this.label6.TabIndex = 3;
+ this.label6.Text = "AMD Ryzen 5 2600 Six-Core Processor (12 Threads)";
+ this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // panel2
+ //
+ this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(125)))), ((int)(((byte)(195)))));
+ this.panel2.Controls.Add(this.label1);
+ this.panel2.Controls.Add(this.label2);
+ this.panel2.Location = new System.Drawing.Point(10, 50);
+ this.panel2.Margin = new System.Windows.Forms.Padding(0, 0, 0, 5);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(350, 35);
+ this.panel2.TabIndex = 1;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F);
+ this.label1.ForeColor = System.Drawing.Color.White;
+ this.label1.Location = new System.Drawing.Point(3, 18);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(126, 14);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "934030 к/с (v.0.5.0 beta)";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F);
+ this.label2.ForeColor = System.Drawing.Color.White;
+ this.label2.Location = new System.Drawing.Point(3, 3);
+ this.label2.Margin = new System.Windows.Forms.Padding(0);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(289, 14);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (4 Threads)";
+ this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Updater
+ //
+ this.Updater.Enabled = true;
+ this.Updater.Tick += new System.EventHandler(this.Updater_Tick);
+ //
+ // customProgressBar1
+ //
+ this.customProgressBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37)))));
+ this.customProgressBar1.ForeColor = System.Drawing.Color.White;
+ this.customProgressBar1.Location = new System.Drawing.Point(394, 289);
+ this.customProgressBar1.Margin = new System.Windows.Forms.Padding(0);
+ this.customProgressBar1.Maximum = 184756;
+ this.customProgressBar1.Minimum = 0;
+ this.customProgressBar1.Name = "customProgressBar1";
+ this.customProgressBar1.ProgressColor = System.Drawing.Color.Green;
+ this.customProgressBar1.ProgressFont = new System.Drawing.Font("Microsoft JhengHei UI", 11.25F, System.Drawing.FontStyle.Bold);
+ this.customProgressBar1.Size = new System.Drawing.Size(304, 24);
+ this.customProgressBar1.TabIndex = 0;
+ this.customProgressBar1.Value = 0F;
+ //
+ // panel4
+ //
+ this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31)))));
+ this.panel4.Controls.Add(this.versionLabel2);
+ this.panel4.Controls.Add(this.threadCountLabel);
+ this.panel4.Controls.Add(this.cpuNameLabel);
+ this.panel4.Controls.Add(this.startBenchmarkBtn);
+ this.panel4.Controls.Add(this.customProgressBar1);
+ this.panel4.Controls.Add(this.submitScoreBtn);
+ this.panel4.Controls.Add(this.flowLayoutPanel1);
+ this.panel4.Controls.Add(this.label4);
+ this.panel4.Controls.Add(this.speedLabel);
+ this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel4.Location = new System.Drawing.Point(0, 40);
+ this.panel4.Name = "panel4";
+ this.panel4.Size = new System.Drawing.Size(704, 321);
+ this.panel4.TabIndex = 6;
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.BackColor = System.Drawing.Color.Transparent;
+ this.label8.Font = new System.Drawing.Font("Microsoft JhengHei Light", 22F);
+ this.label8.ForeColor = System.Drawing.Color.White;
+ this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.label8.Location = new System.Drawing.Point(1, 0);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(154, 38);
+ this.label8.TabIndex = 0;
+ this.label8.Text = "Бенчмарк";
+ this.label8.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown);
+ //
+ // closeBtn
+ //
+ this.closeBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.closeBtn.BackColor = System.Drawing.Color.Transparent;
+ this.closeBtn.FlatAppearance.BorderSize = 0;
+ this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
+ this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
+ this.closeBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.closeBtn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 16F);
+ this.closeBtn.ForeColor = System.Drawing.Color.White;
+ this.closeBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.closeBtn.Location = new System.Drawing.Point(664, 0);
+ this.closeBtn.Name = "closeBtn";
+ this.closeBtn.Size = new System.Drawing.Size(40, 40);
+ this.closeBtn.TabIndex = 3;
+ this.closeBtn.Text = "X";
+ this.closeBtn.UseVisualStyleBackColor = false;
+ this.closeBtn.Click += new System.EventHandler(this.closeBtn_Click);
+ //
+ // panel3
+ //
+ this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37)))));
+ this.panel3.Controls.Add(this.closeBtn);
+ this.panel3.Controls.Add(this.label8);
+ this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel3.Location = new System.Drawing.Point(0, 0);
+ this.panel3.Name = "panel3";
+ this.panel3.Size = new System.Drawing.Size(704, 40);
+ this.panel3.TabIndex = 5;
+ this.panel3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown);
+ //
+ // Benchmark
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37)))));
+ this.ClientSize = new System.Drawing.Size(704, 361);
+ this.Controls.Add(this.panel4);
+ this.Controls.Add(this.panel3);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "Benchmark";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Бенчмарк";
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.panel2.ResumeLayout(false);
+ this.panel2.PerformLayout();
+ this.panel4.ResumeLayout(false);
+ this.panel4.PerformLayout();
+ this.panel3.ResumeLayout(false);
+ this.panel3.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private CustomProgressBar customProgressBar1;
+ private System.Windows.Forms.Button startBenchmarkBtn;
+ private System.Windows.Forms.Button submitScoreBtn;
+ private System.Windows.Forms.Label cpuNameLabel;
+ private System.Windows.Forms.Label threadCountLabel;
+ private System.Windows.Forms.Label versionLabel2;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label speedLabel;
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private System.Windows.Forms.Timer Updater;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Panel panel4;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.Button closeBtn;
+ private System.Windows.Forms.Panel panel3;
+ }
+}
\ No newline at end of file
diff --git a/FloatToolGUI/Benchmark.cs b/FloatToolGUI/Benchmark.cs
new file mode 100644
index 0000000..b78bc3f
--- /dev/null
+++ b/FloatToolGUI/Benchmark.cs
@@ -0,0 +1,352 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Management;
+using System.Net;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace FloatToolGUI
+{
+ public partial class Benchmark : Form
+ {
+ private static bool NextCombination(IList num, int n, int k)
+ {
+ bool finished;
+ var changed = finished = false;
+ if (k <= 0) return false;
+ for (var i = k - 1; !finished && !changed; i--)
+ {
+ if (num[i] < n - 1 - (k - 1) + i)
+ {
+ num[i]++;
+ if (i < k - 1)
+ for (var j = i + 1; j < k; j++)
+ num[j] = num[j - 1] + 1;
+ changed = true;
+ }
+ finished = i == 0;
+ }
+ return changed;
+ }
+
+ private static IEnumerable Combinations(IEnumerable elements, int k, int start, int skip)
+ {
+ var elem = elements.ToArray();
+ var size = elem.Length;
+ if (k > size) yield break;
+ var numbers = new int[k];
+ for (var i = 0; i < k; i++)
+ numbers[i] = i;
+ int step = 0;
+ do
+ {
+ if ((step + start) % skip == 0)
+ yield return numbers.Select(n => elem[n]);
+ step++;
+ } while (NextCombination(numbers, size, k));
+ }
+
+ public enum SearchMode
+ {
+ Less,
+ Equal,
+ Greater
+ }
+ SearchMode CurrentSearchMode = SearchMode.Equal;
+
+ public static string setprecission(double number, int figures)
+ {
+ int e = 0;
+
+ while (number >= 10.0)
+ {
+ e += 1;
+ number /= 10;
+ }
+
+ while (number < 1.0)
+ {
+ e -= 1;
+ number *= 10;
+ }
+
+ figures--;
+
+ number = (float)Math.Round(number, figures);
+
+ figures += 0 - e;
+ while (e > 0)
+ {
+ number *= 10;
+ e -= 1;
+ }
+
+ while (e < 0)
+ {
+ number /= 10;
+ e += 1;
+ }
+
+ if (figures < 0)
+ {
+ figures = 0;
+ }
+
+ return number.ToString($"f{figures}");
+ }
+ static public decimal craft(double[] ingridients, float minFloat, float maxFloat)
+ {
+ decimal avgFloat = 0;
+ foreach (double f in ingridients)
+ {
+ avgFloat += (decimal)f;
+ }
+ avgFloat /= 10;
+ return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat;
+ }
+ static public string craftF(double[] ingridients, float minFloat, float maxFloat)
+ {
+ float avgFloat = 0;
+ float[] arrInput = new float[10];
+ for (int i = 0; i < 10; i++)
+ {
+ arrInput[i] = Convert.ToSingle(ingridients[i]);
+ }
+ foreach (float f in arrInput)
+ {
+ avgFloat += Convert.ToSingle(f);
+ }
+ avgFloat /= 10;
+ return setprecission(((maxFloat - minFloat) * avgFloat) + minFloat, 10);
+ }
+
+ public void parseCraft(double[] inputs, List outputs, string want)
+ {
+ decimal wantFloat;
+ decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat);
+
+ foreach (var item in outputs)
+ {
+ decimal flotOrigin = Math.Round(craft(inputs.ToArray(), item.MinFloat, item.MaxFloat), 14);
+ string flot = craftF(inputs, item.MinFloat, item.MaxFloat);
+
+ if (
+ ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) ||
+ ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) ||
+ ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater)
+ )
+ {
+ return;
+ }
+ }
+ }
+
+ public void secndThread(List craftList, string wanted, double[] pool, int start, int skip)
+ {
+ foreach (IEnumerable pair in Combinations(pool, 10, start, skip))
+ {
+ parseCraft(pair.ToArray(), craftList, wanted);
+ currComb++;
+ }
+ }
+
+ private void runCycle()
+ {
+ Console.WriteLine("Thread loaded!");
+ }
+
+ List t2 = new List();
+ int currComb;
+ Thread thread1;
+
+ private void StartCalculation()
+ {
+ currComb = 0;
+ List outcomes = new List();
+ outcomes.Add(new Skin("AK-47 | Safari Mesh", 0.06f, 0.8f, Quality.Industrial));
+
+ Invoke((MethodInvoker)(() =>
+ {
+ customProgressBar1.Value = 0;
+ }
+ ));
+
+ double[] pool = {
+ 0.246938750147820, 0.196652039885521, 0.154839321970940,
+ 0.333326697349548, 0.163415759801865, 0.291821509599686,
+ 0.374309629201889, 0.378754675388336, 0.231419935822487,
+ 0.311867892742157, 0.374067693948746, 0.377068012952805,
+ 0.244467452168465, 0.355135351419449, 0.352264583110809,
+ 0.227853879332542, 0.340960860252380, 0.375657349824905,
+ 0.157685652375221, 0.217334255576134
+ };
+
+ Stopwatch timer = Stopwatch.StartNew();
+
+ var threads = Environment.ProcessorCount;
+ try
+ {
+ for (int i = 0; i < threads; i++)
+ {
+ Thread newThread = new Thread(() => secndThread(outcomes, "1", pool, i, threads));
+ newThread.Start();
+ t2.Add(newThread);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.Message);
+ }
+
+ while (true)
+ {
+ bool okey = true;
+ foreach (Thread t in t2)
+ {
+ if (t.IsAlive)
+ {
+ okey = false;
+ break;
+ }
+ }
+ if (okey) break;
+ }
+
+ timer.Stop();
+ TimeSpan timespan = timer.Elapsed;
+
+ Invoke((MethodInvoker)(() =>
+ {
+ submitScoreBtn.Enabled = true;
+ speedLabel.Text = $"{Math.Round(currComb / timespan.TotalSeconds)} к/с";
+ currComb = 184756;
+ thread1.Abort();
+ }
+ ));
+ }
+
+ public Benchmark(string version)
+ {
+ InitializeComponent();
+ versionLabel2.Text = version;
+ threadCountLabel.Text = $"{Environment.ProcessorCount} Threads";
+ ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");
+ foreach (ManagementObject mo in mos.Get())
+ cpuNameLabel.Text = mo["Name"].ToString().Trim();
+
+ thread1 = new Thread(runCycle);
+ LoadStats();
+ }
+
+ private void startBenchmarkBtn_Click(object sender, EventArgs e)
+ {
+ thread1.Abort();
+ thread1 = new Thread(StartCalculation);
+ thread1.Start();
+ }
+
+ private void Updater_Tick(object sender, EventArgs e)
+ {
+ customProgressBar1.Value = currComb;
+ }
+
+ string uri = "https://prevterapi.000webhostapp.com/";
+
+ private void AddCpuToList(string cpu, string speed, string ver)
+ {
+ Color backColor = cpu.Contains("AMD") ? Color.FromArgb(157, 0, 20) : (cpu.Contains("Intel") ? Color.FromArgb(0, 125, 195) : Color.FromArgb(56, 56, 56));
+ Color foreColor = Color.White;
+
+ var tmpPanel = new Panel
+ {
+ BackColor = backColor,
+ Size = new Size(350, 35),
+ Margin = new Padding(0,0,0,5)
+ };
+ tmpPanel.Controls.Add(new Label
+ {
+ Location = new Point(3,3),
+ Font = new Font("Microsoft JhengHei UI Light", 8f),
+ Text = cpu,
+ AutoSize = true,
+ ForeColor = foreColor
+ });
+ tmpPanel.Controls.Add(new Label
+ {
+ Location = new Point(3, 18),
+ Font = new Font("Microsoft JhengHei UI Light", 8f),
+ Text = $"{speed} к/с ({ver})",
+ AutoSize = true,
+ ForeColor = foreColor
+ });
+ flowLayoutPanel1.Controls.Add(tmpPanel);
+ }
+
+ private void LoadStats()
+ {
+ flowLayoutPanel1.Controls.Clear();
+ WebRequest request = WebRequest.Create($"{uri}getBenchmarks.php");
+ request.Credentials = CredentialCache.DefaultCredentials;
+ WebResponse response = request.GetResponse();
+
+ using (Stream dataStream = response.GetResponseStream())
+ {
+ StreamReader reader = new StreamReader(dataStream);
+ string responseFromServer = reader.ReadToEnd();
+ Console.WriteLine(responseFromServer);
+ if(responseFromServer.Contains('|'))
+ {
+ foreach (var cpu in responseFromServer.Remove(responseFromServer.Length - 1).Split('&'))
+ {
+ var items = cpu.Split('|');
+ AddCpuToList(items[0], items[1], items[2]);
+ }
+ }
+ }
+ response.Close();
+ }
+
+ private void submitScoreBtn_Click(object sender, EventArgs e)
+ {
+ submitScoreBtn.Enabled = false;
+ HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{uri}addBenchmark.php?cpu={cpuNameLabel.Text} ({threadCountLabel.Text})&speed={speedLabel.Text.Split(' ')[0]}");
+ req.UserAgent = $"FloatTool/{versionLabel2.Text}";
+ HttpWebResponse res = (HttpWebResponse)req.GetResponse();
+ res.Close();
+ MessageBox.Show("Ваш результат был принят.");
+ }
+
+ private void closeBtn_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ public const int WM_NCLBUTTONDOWN = 0xA1;
+ public const int HT_CAPTION = 0x2;
+
+ [System.Runtime.InteropServices.DllImport("user32.dll")]
+ public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
+ [System.Runtime.InteropServices.DllImport("user32.dll")]
+ public static extern bool ReleaseCapture();
+
+
+ private void DragWindowMouseDown(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ ReleaseCapture();
+ SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
+ }
+ }
+ }
+}
diff --git a/FloatToolGUI/Benchmark.resx b/FloatToolGUI/Benchmark.resx
new file mode 100644
index 0000000..5aa4a44
--- /dev/null
+++ b/FloatToolGUI/Benchmark.resx
@@ -0,0 +1,370 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ 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
+
+
+
\ No newline at end of file
diff --git a/FloatToolGUI/FloatToolGUI.csproj b/FloatToolGUI/FloatToolGUI.csproj
index f24fe41..81ab64a 100644
--- a/FloatToolGUI/FloatToolGUI.csproj
+++ b/FloatToolGUI/FloatToolGUI.csproj
@@ -7,7 +7,7 @@
{A5906B52-BA1B-481C-BF4C-3028EF52A925}
WinExe
FloatToolGUI
- FloatTool GUI
+ FloatTool
v4.7.2
8.0
512
@@ -28,6 +28,8 @@
1.0.0.%2a
false
true
+
+
AnyCPU
@@ -40,7 +42,7 @@
4
- x64
+ AnyCPU
pdbonly
true
bin\Release\
@@ -77,15 +79,17 @@
true
-
- ..\packages\DiscordRichPresence.1.0.150\lib\net35\DiscordRPC.dll
+
+ ..\packages\DiscordRichPresence.1.0.175\lib\net35\DiscordRPC.dll
-
- ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll
+
+
@@ -98,11 +102,23 @@
-
+
Form
-
- About.cs
+
+ Benchmark.cs
+
+
+ UserControl
+
+
+ CustomProgressBar.cs
+
+
+ UserControl
+
+
+ CustomToggleSwitch.cs
Form
@@ -112,8 +128,23 @@
-
- About.cs
+
+
+ Form
+
+
+ SettingsForm.cs
+
+
+
+
+ Benchmark.cs
+
+
+ CustomProgressBar.cs
+
+
+ CustomToggleSwitch.cs
Main.cs
@@ -134,6 +165,11 @@
Resources.resx
True
+
+
+
+ SettingsForm.cs
+
SettingsSingleFileGenerator
@@ -149,15 +185,19 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -171,5 +211,6 @@
false
+
\ No newline at end of file
diff --git a/FloatToolGUI/FodyWeavers.xml b/FloatToolGUI/FodyWeavers.xml
new file mode 100644
index 0000000..6e2fa02
--- /dev/null
+++ b/FloatToolGUI/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/FloatToolGUI/Main.Designer.cs b/FloatToolGUI/Main.Designer.cs
index 0cfce15..bd2761f 100644
--- a/FloatToolGUI/Main.Designer.cs
+++ b/FloatToolGUI/Main.Designer.cs
@@ -49,8 +49,8 @@ private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FloatTool));
- this.textBox2 = new System.Windows.Forms.TextBox();
- this.timer1 = new System.Windows.Forms.Timer(this.components);
+ this.outputConsoleBox = new System.Windows.Forms.TextBox();
+ this.DiscordUpdater = new System.Windows.Forms.Timer(this.components);
this.panel1 = new System.Windows.Forms.Panel();
this.panel8 = new System.Windows.Forms.Panel();
this.panel13 = new System.Windows.Forms.Panel();
@@ -59,86 +59,90 @@ private void InitializeComponent()
this.panel10 = new System.Windows.Forms.Panel();
this.panel7 = new System.Windows.Forms.Panel();
this.panel9 = new System.Windows.Forms.Panel();
- this.button10 = new System.Windows.Forms.Button();
- this.button9 = new System.Windows.Forms.Button();
- this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
- this.button7 = new System.Windows.Forms.Button();
- this.button6 = new System.Windows.Forms.Button();
- this.button8 = new System.Windows.Forms.Button();
+ this.benchmarkButton = new System.Windows.Forms.Button();
+ this.settingsButton = new System.Windows.Forms.Button();
+ this.MaximizeButton = new System.Windows.Forms.Button();
+ this.minimizeBtn = new System.Windows.Forms.Button();
+ this.closeBtn = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.panel3 = new System.Windows.Forms.Panel();
- this.label9 = new System.Windows.Forms.Label();
+ this.versionLabel = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
- this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.panel6 = new System.Windows.Forms.Panel();
- this.checkBox1 = new System.Windows.Forms.CheckBox();
- this.button1 = new System.Windows.Forms.Button();
+ this.stattrackCheckBox = new FloatToolGUI.CustomControls.CustomToggleSwitch();
+ this.checkPossibilityBtn = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
- this.comboBox3 = new System.Windows.Forms.ComboBox();
+ this.outcomeSelectorComboBox = new System.Windows.Forms.ComboBox();
+ this.weaponQualityBox = new System.Windows.Forms.ComboBox();
+ this.label12 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
- this.comboBox1 = new System.Windows.Forms.ComboBox();
+ this.weaponTypeBox = new System.Windows.Forms.ComboBox();
+ this.label11 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.comboBox2 = new System.Windows.Forms.ComboBox();
+ this.fullSkinName = new System.Windows.Forms.TextBox();
+ this.weaponSkinBox = new System.Windows.Forms.ComboBox();
this.panel5 = new System.Windows.Forms.Panel();
this.panel16 = new System.Windows.Forms.Panel();
+ this.downloadProgressBar = new FloatToolGUI.CustomProgressBar();
+ this.searchmodeGreater_btn = new System.Windows.Forms.Button();
+ this.searchmodeEqual_btn = new System.Windows.Forms.Button();
+ this.searchmodeLess_btn = new System.Windows.Forms.Button();
+ this.searchModeLabel = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
- this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
- this.panel14 = new System.Windows.Forms.Panel();
- this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
- this.checkBox3 = new System.Windows.Forms.CheckBox();
+ this.quantityInput = new System.Windows.Forms.NumericUpDown();
+ this.skipValueInput = new System.Windows.Forms.NumericUpDown();
+ this.ascendingCheckBox = new System.Windows.Forms.CheckBox();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
- this.textBox3 = new System.Windows.Forms.TextBox();
- this.checkBox2 = new System.Windows.Forms.CheckBox();
- this.button2 = new System.Windows.Forms.Button();
+ this.searchFloatInput = new System.Windows.Forms.TextBox();
+ this.sortCheckBox = new System.Windows.Forms.CheckBox();
+ this.startBtn = new System.Windows.Forms.Button();
this.panel15 = new System.Windows.Forms.Panel();
+ this.speedStatusLabel = new System.Windows.Forms.Label();
+ this.combinationsStatusLabel = new System.Windows.Forms.Label();
+ this.gpuSearch_btn = new System.Windows.Forms.Button();
this.label10 = new System.Windows.Forms.Label();
- this.numericUpDown3 = new System.Windows.Forms.NumericUpDown();
- this.checkBox4 = new System.Windows.Forms.CheckBox();
+ this.threadCountInput = new System.Windows.Forms.NumericUpDown();
this.panel2 = new System.Windows.Forms.Panel();
this.panel4 = new System.Windows.Forms.Panel();
+ this.WorkStatusUpdater = new System.Windows.Forms.Timer(this.components);
this.panel1.SuspendLayout();
this.panel8.SuspendLayout();
this.panel13.SuspendLayout();
this.panel11.SuspendLayout();
this.panel7.SuspendLayout();
this.panel9.SuspendLayout();
- this.contextMenuStrip1.SuspendLayout();
this.panel3.SuspendLayout();
this.panel6.SuspendLayout();
this.panel5.SuspendLayout();
this.panel16.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
- this.panel14.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.quantityInput)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.skipValueInput)).BeginInit();
this.panel15.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.threadCountInput)).BeginInit();
this.panel2.SuspendLayout();
this.panel4.SuspendLayout();
this.SuspendLayout();
//
- // textBox2
+ // outputConsoleBox
//
- this.textBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31)))));
- this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.textBox2.Cursor = System.Windows.Forms.Cursors.Default;
- resources.ApplyResources(this.textBox2, "textBox2");
- this.textBox2.ForeColor = System.Drawing.Color.White;
- this.textBox2.Name = "textBox2";
- this.textBox2.ReadOnly = true;
- this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
+ 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;
+ this.outputConsoleBox.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
//
- // timer1
+ // DiscordUpdater
//
- this.timer1.Enabled = true;
- this.timer1.Interval = 15000;
- this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+ this.DiscordUpdater.Enabled = true;
+ this.DiscordUpdater.Interval = 15000;
+ this.DiscordUpdater.Tick += new System.EventHandler(this.timer1_Tick);
//
// panel1
//
@@ -164,7 +168,7 @@ private void InitializeComponent()
//
// panel11
//
- this.panel11.Controls.Add(this.textBox2);
+ this.panel11.Controls.Add(this.outputConsoleBox);
resources.ApplyResources(this.panel11, "panel11");
this.panel11.Name = "panel11";
//
@@ -193,97 +197,76 @@ private void InitializeComponent()
// panel9
//
this.panel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37)))));
- this.panel9.Controls.Add(this.button10);
- this.panel9.Controls.Add(this.button9);
- this.panel9.Controls.Add(this.button7);
- this.panel9.Controls.Add(this.button6);
- this.panel9.Controls.Add(this.button8);
+ 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.panel9_MouseDown);
//
- // button10
- //
- resources.ApplyResources(this.button10, "button10");
- this.button10.BackColor = System.Drawing.Color.Transparent;
- this.button10.FlatAppearance.BorderSize = 0;
- this.button10.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
- this.button10.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
- this.button10.ForeColor = System.Drawing.Color.White;
- this.button10.Name = "button10";
- this.button10.UseVisualStyleBackColor = false;
- this.button10.Click += new System.EventHandler(this.button10_Click);
- //
- // button9
- //
- resources.ApplyResources(this.button9, "button9");
- this.button9.BackColor = System.Drawing.Color.Transparent;
- this.button9.ContextMenuStrip = this.contextMenuStrip1;
- this.button9.FlatAppearance.BorderSize = 0;
- this.button9.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
- this.button9.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
- this.button9.ForeColor = System.Drawing.Color.White;
- this.button9.Name = "button9";
- this.button9.UseVisualStyleBackColor = false;
- this.button9.Click += new System.EventHandler(this.button9_Click);
- //
- // contextMenuStrip1
- //
- this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItem2,
- this.toolStripMenuItem3});
- this.contextMenuStrip1.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
- //
- // toolStripMenuItem2
- //
- this.toolStripMenuItem2.Image = global::FloatToolGUI.Properties.Resources.github;
- this.toolStripMenuItem2.Name = "toolStripMenuItem2";
- resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
- this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click);
- //
- // toolStripMenuItem3
- //
- this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
- this.toolStripMenuItem3.Click += new System.EventHandler(this.toolStripMenuItem3_Click);
- //
- // button7
- //
- this.button7.BackColor = System.Drawing.Color.Transparent;
- this.button7.FlatAppearance.BorderSize = 0;
- this.button7.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
- this.button7.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
- resources.ApplyResources(this.button7, "button7");
- this.button7.ForeColor = System.Drawing.Color.White;
- this.button7.Image = global::FloatToolGUI.Properties.Resources.unmutedWhite;
- this.button7.Name = "button7";
- this.button7.UseVisualStyleBackColor = false;
- this.button7.Click += new System.EventHandler(this.button7_Click);
- //
- // button6
- //
- resources.ApplyResources(this.button6, "button6");
- this.button6.BackColor = System.Drawing.Color.Transparent;
- this.button6.FlatAppearance.BorderSize = 0;
- this.button6.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
- this.button6.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
- this.button6.ForeColor = System.Drawing.Color.White;
- this.button6.Name = "button6";
- this.button6.UseVisualStyleBackColor = false;
- this.button6.Click += new System.EventHandler(this.button6_Click);
- //
- // button8
- //
- resources.ApplyResources(this.button8, "button8");
- this.button8.BackColor = System.Drawing.Color.Transparent;
- this.button8.FlatAppearance.BorderSize = 0;
- this.button8.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
- this.button8.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
- this.button8.ForeColor = System.Drawing.Color.White;
- this.button8.Name = "button8";
- this.button8.UseVisualStyleBackColor = false;
- this.button8.Click += new System.EventHandler(this.button8_Click);
+ // benchmarkButton
+ //
+ this.benchmarkButton.BackColor = System.Drawing.Color.Transparent;
+ this.benchmarkButton.BackgroundImage = global::FloatToolGUI.Properties.Resources.benchmarkWhite;
+ resources.ApplyResources(this.benchmarkButton, "benchmarkButton");
+ 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;
+ this.benchmarkButton.ForeColor = System.Drawing.Color.White;
+ this.benchmarkButton.Name = "benchmarkButton";
+ this.benchmarkButton.UseVisualStyleBackColor = false;
+ this.benchmarkButton.Click += new System.EventHandler(this.benchmarkButton_Click);
+ //
+ // settingsButton
+ //
+ this.settingsButton.BackColor = System.Drawing.Color.Transparent;
+ this.settingsButton.BackgroundImage = global::FloatToolGUI.Properties.Resources.gearWhite;
+ resources.ApplyResources(this.settingsButton, "settingsButton");
+ 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;
+ this.settingsButton.ForeColor = System.Drawing.Color.White;
+ this.settingsButton.Name = "settingsButton";
+ this.settingsButton.UseVisualStyleBackColor = false;
+ this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click);
+ //
+ // MaximizeButton
+ //
+ resources.ApplyResources(this.MaximizeButton, "MaximizeButton");
+ this.MaximizeButton.BackColor = System.Drawing.Color.Transparent;
+ this.MaximizeButton.FlatAppearance.BorderSize = 0;
+ this.MaximizeButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
+ this.MaximizeButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
+ this.MaximizeButton.ForeColor = System.Drawing.Color.White;
+ this.MaximizeButton.Name = "MaximizeButton";
+ this.MaximizeButton.UseVisualStyleBackColor = false;
+ this.MaximizeButton.Click += new System.EventHandler(this.MaximizeMinimizeButton);
+ //
+ // minimizeBtn
+ //
+ resources.ApplyResources(this.minimizeBtn, "minimizeBtn");
+ this.minimizeBtn.BackColor = System.Drawing.Color.Transparent;
+ this.minimizeBtn.FlatAppearance.BorderSize = 0;
+ this.minimizeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
+ this.minimizeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
+ this.minimizeBtn.ForeColor = System.Drawing.Color.White;
+ this.minimizeBtn.Name = "minimizeBtn";
+ this.minimizeBtn.UseVisualStyleBackColor = false;
+ this.minimizeBtn.Click += new System.EventHandler(this.MaximizeMinimizeButton);
+ //
+ // closeBtn
+ //
+ resources.ApplyResources(this.closeBtn, "closeBtn");
+ this.closeBtn.BackColor = System.Drawing.Color.Transparent;
+ this.closeBtn.FlatAppearance.BorderSize = 0;
+ this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
+ this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black;
+ this.closeBtn.ForeColor = System.Drawing.Color.White;
+ this.closeBtn.Name = "closeBtn";
+ this.closeBtn.UseVisualStyleBackColor = false;
+ this.closeBtn.Click += new System.EventHandler(this.button8_Click);
//
// button5
//
@@ -315,17 +298,17 @@ private void InitializeComponent()
// panel3
//
this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37)))));
- this.panel3.Controls.Add(this.label9);
+ 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.panel3_MouseDown);
//
- // label9
+ // versionLabel
//
- resources.ApplyResources(this.label9, "label9");
- this.label9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.label9.Name = "label9";
+ resources.ApplyResources(this.versionLabel, "versionLabel");
+ this.versionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.versionLabel.Name = "versionLabel";
//
// label8
//
@@ -334,49 +317,46 @@ private void InitializeComponent()
this.label8.ForeColor = System.Drawing.Color.White;
this.label8.Name = "label8";
//
- // progressBar1
- //
- resources.ApplyResources(this.progressBar1, "progressBar1");
- this.progressBar1.Cursor = System.Windows.Forms.Cursors.Default;
- this.progressBar1.ForeColor = System.Drawing.Color.Black;
- this.progressBar1.Name = "progressBar1";
- this.progressBar1.Step = 1;
- //
// panel6
//
this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44)))));
- this.panel6.Controls.Add(this.checkBox1);
- this.panel6.Controls.Add(this.button1);
+ this.panel6.Controls.Add(this.stattrackCheckBox);
+ this.panel6.Controls.Add(this.checkPossibilityBtn);
this.panel6.Controls.Add(this.label3);
- this.panel6.Controls.Add(this.comboBox3);
+ this.panel6.Controls.Add(this.outcomeSelectorComboBox);
+ this.panel6.Controls.Add(this.weaponQualityBox);
+ this.panel6.Controls.Add(this.label12);
this.panel6.Controls.Add(this.label1);
this.panel6.Controls.Add(this.label4);
- this.panel6.Controls.Add(this.comboBox1);
+ this.panel6.Controls.Add(this.weaponTypeBox);
+ this.panel6.Controls.Add(this.label11);
this.panel6.Controls.Add(this.label2);
- this.panel6.Controls.Add(this.textBox1);
- this.panel6.Controls.Add(this.comboBox2);
+ this.panel6.Controls.Add(this.fullSkinName);
+ this.panel6.Controls.Add(this.weaponSkinBox);
resources.ApplyResources(this.panel6, "panel6");
this.panel6.Name = "panel6";
//
- // checkBox1
+ // stattrackCheckBox
//
- resources.ApplyResources(this.checkBox1, "checkBox1");
- this.checkBox1.ForeColor = System.Drawing.Color.White;
- this.checkBox1.Name = "checkBox1";
- this.checkBox1.UseVisualStyleBackColor = true;
- this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
+ 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;
+ this.stattrackCheckBox.OnToggled += new System.EventHandler(this.checkBox1_CheckedChanged);
//
- // button1
+ // checkPossibilityBtn
//
- resources.ApplyResources(this.button1, "button1");
- this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
- this.button1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.button1.FlatAppearance.BorderSize = 0;
- this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
- this.button1.ForeColor = System.Drawing.Color.White;
- this.button1.Name = "button1";
- this.button1.UseVisualStyleBackColor = false;
- this.button1.Click += new System.EventHandler(this.button1_Click);
+ resources.ApplyResources(this.checkPossibilityBtn, "checkPossibilityBtn");
+ this.checkPossibilityBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.checkPossibilityBtn.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.checkPossibilityBtn.FlatAppearance.BorderSize = 0;
+ this.checkPossibilityBtn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
+ this.checkPossibilityBtn.ForeColor = System.Drawing.Color.White;
+ this.checkPossibilityBtn.Name = "checkPossibilityBtn";
+ this.checkPossibilityBtn.UseVisualStyleBackColor = false;
+ this.checkPossibilityBtn.Click += new System.EventHandler(this.button1_Click);
//
// label3
//
@@ -384,21 +364,40 @@ private void InitializeComponent()
this.label3.ForeColor = System.Drawing.Color.White;
this.label3.Name = "label3";
//
- // comboBox3
- //
- resources.ApplyResources(this.comboBox3, "comboBox3");
- this.comboBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.comboBox3.Cursor = System.Windows.Forms.Cursors.Hand;
- this.comboBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.comboBox3.FormattingEnabled = true;
- this.comboBox3.Items.AddRange(new object[] {
- resources.GetString("comboBox3.Items"),
- resources.GetString("comboBox3.Items1"),
- resources.GetString("comboBox3.Items2"),
- resources.GetString("comboBox3.Items3"),
- resources.GetString("comboBox3.Items4")});
- this.comboBox3.Name = "comboBox3";
- this.comboBox3.SelectedIndexChanged += new System.EventHandler(this.comboBox3_SelectedIndexChanged);
+ // outcomeSelectorComboBox
+ //
+ resources.ApplyResources(this.outcomeSelectorComboBox, "outcomeSelectorComboBox");
+ this.outcomeSelectorComboBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.outcomeSelectorComboBox.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.outcomeSelectorComboBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.outcomeSelectorComboBox.FormattingEnabled = true;
+ this.outcomeSelectorComboBox.Items.AddRange(new object[] {
+ resources.GetString("outcomeSelectorComboBox.Items"),
+ resources.GetString("outcomeSelectorComboBox.Items1"),
+ resources.GetString("outcomeSelectorComboBox.Items2")});
+ this.outcomeSelectorComboBox.Name = "outcomeSelectorComboBox";
+ //
+ // weaponQualityBox
+ //
+ resources.ApplyResources(this.weaponQualityBox, "weaponQualityBox");
+ this.weaponQualityBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.weaponQualityBox.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.weaponQualityBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.weaponQualityBox.FormattingEnabled = true;
+ this.weaponQualityBox.Items.AddRange(new object[] {
+ resources.GetString("weaponQualityBox.Items"),
+ resources.GetString("weaponQualityBox.Items1"),
+ resources.GetString("weaponQualityBox.Items2"),
+ resources.GetString("weaponQualityBox.Items3"),
+ resources.GetString("weaponQualityBox.Items4")});
+ this.weaponQualityBox.Name = "weaponQualityBox";
+ this.weaponQualityBox.SelectedIndexChanged += new System.EventHandler(this.comboBox3_SelectedIndexChanged);
+ //
+ // label12
+ //
+ resources.ApplyResources(this.label12, "label12");
+ this.label12.ForeColor = System.Drawing.Color.White;
+ this.label12.Name = "label12";
//
// label1
//
@@ -412,50 +411,56 @@ private void InitializeComponent()
this.label4.ForeColor = System.Drawing.Color.White;
this.label4.Name = "label4";
//
- // comboBox1
- //
- resources.ApplyResources(this.comboBox1, "comboBox1");
- this.comboBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.comboBox1.Cursor = System.Windows.Forms.Cursors.Hand;
- this.comboBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.comboBox1.FormattingEnabled = true;
- this.comboBox1.Items.AddRange(new object[] {
- resources.GetString("comboBox1.Items"),
- resources.GetString("comboBox1.Items1"),
- resources.GetString("comboBox1.Items2"),
- resources.GetString("comboBox1.Items3"),
- resources.GetString("comboBox1.Items4"),
- resources.GetString("comboBox1.Items5"),
- resources.GetString("comboBox1.Items6"),
- resources.GetString("comboBox1.Items7"),
- resources.GetString("comboBox1.Items8"),
- resources.GetString("comboBox1.Items9"),
- resources.GetString("comboBox1.Items10"),
- resources.GetString("comboBox1.Items11"),
- resources.GetString("comboBox1.Items12"),
- resources.GetString("comboBox1.Items13"),
- resources.GetString("comboBox1.Items14"),
- resources.GetString("comboBox1.Items15"),
- resources.GetString("comboBox1.Items16"),
- resources.GetString("comboBox1.Items17"),
- resources.GetString("comboBox1.Items18"),
- resources.GetString("comboBox1.Items19"),
- resources.GetString("comboBox1.Items20"),
- resources.GetString("comboBox1.Items21"),
- resources.GetString("comboBox1.Items22"),
- resources.GetString("comboBox1.Items23"),
- resources.GetString("comboBox1.Items24"),
- resources.GetString("comboBox1.Items25"),
- resources.GetString("comboBox1.Items26"),
- resources.GetString("comboBox1.Items27"),
- resources.GetString("comboBox1.Items28"),
- resources.GetString("comboBox1.Items29"),
- resources.GetString("comboBox1.Items30"),
- resources.GetString("comboBox1.Items31"),
- resources.GetString("comboBox1.Items32"),
- resources.GetString("comboBox1.Items33")});
- this.comboBox1.Name = "comboBox1";
- this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+ // weaponTypeBox
+ //
+ resources.ApplyResources(this.weaponTypeBox, "weaponTypeBox");
+ this.weaponTypeBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.weaponTypeBox.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.weaponTypeBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.weaponTypeBox.FormattingEnabled = true;
+ this.weaponTypeBox.Items.AddRange(new object[] {
+ resources.GetString("weaponTypeBox.Items"),
+ resources.GetString("weaponTypeBox.Items1"),
+ resources.GetString("weaponTypeBox.Items2"),
+ resources.GetString("weaponTypeBox.Items3"),
+ resources.GetString("weaponTypeBox.Items4"),
+ resources.GetString("weaponTypeBox.Items5"),
+ resources.GetString("weaponTypeBox.Items6"),
+ resources.GetString("weaponTypeBox.Items7"),
+ resources.GetString("weaponTypeBox.Items8"),
+ resources.GetString("weaponTypeBox.Items9"),
+ resources.GetString("weaponTypeBox.Items10"),
+ resources.GetString("weaponTypeBox.Items11"),
+ resources.GetString("weaponTypeBox.Items12"),
+ resources.GetString("weaponTypeBox.Items13"),
+ resources.GetString("weaponTypeBox.Items14"),
+ resources.GetString("weaponTypeBox.Items15"),
+ resources.GetString("weaponTypeBox.Items16"),
+ resources.GetString("weaponTypeBox.Items17"),
+ resources.GetString("weaponTypeBox.Items18"),
+ resources.GetString("weaponTypeBox.Items19"),
+ resources.GetString("weaponTypeBox.Items20"),
+ resources.GetString("weaponTypeBox.Items21"),
+ resources.GetString("weaponTypeBox.Items22"),
+ resources.GetString("weaponTypeBox.Items23"),
+ resources.GetString("weaponTypeBox.Items24"),
+ resources.GetString("weaponTypeBox.Items25"),
+ resources.GetString("weaponTypeBox.Items26"),
+ resources.GetString("weaponTypeBox.Items27"),
+ resources.GetString("weaponTypeBox.Items28"),
+ resources.GetString("weaponTypeBox.Items29"),
+ resources.GetString("weaponTypeBox.Items30"),
+ resources.GetString("weaponTypeBox.Items31"),
+ resources.GetString("weaponTypeBox.Items32"),
+ resources.GetString("weaponTypeBox.Items33")});
+ this.weaponTypeBox.Name = "weaponTypeBox";
+ this.weaponTypeBox.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+ //
+ // label11
+ //
+ resources.ApplyResources(this.label11, "label11");
+ this.label11.ForeColor = System.Drawing.Color.White;
+ this.label11.Name = "label11";
//
// label2
//
@@ -463,24 +468,23 @@ private void InitializeComponent()
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Name = "label2";
//
- // textBox1
+ // fullSkinName
//
- this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- resources.ApplyResources(this.textBox1, "textBox1");
- this.textBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.textBox1.Name = "textBox1";
- this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
+ 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";
//
- // comboBox2
+ // weaponSkinBox
//
- resources.ApplyResources(this.comboBox2, "comboBox2");
- this.comboBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.comboBox2.Cursor = System.Windows.Forms.Cursors.Hand;
- this.comboBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.comboBox2.FormattingEnabled = true;
- this.comboBox2.Name = "comboBox2";
- this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged);
+ resources.ApplyResources(this.weaponSkinBox, "weaponSkinBox");
+ this.weaponSkinBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.weaponSkinBox.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.weaponSkinBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.weaponSkinBox.FormattingEnabled = true;
+ this.weaponSkinBox.Name = "weaponSkinBox";
+ this.weaponSkinBox.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged);
//
// panel5
//
@@ -493,75 +497,122 @@ private void InitializeComponent()
// panel16
//
this.panel16.BackColor = System.Drawing.Color.Transparent;
+ this.panel16.Controls.Add(this.downloadProgressBar);
+ this.panel16.Controls.Add(this.searchmodeGreater_btn);
+ this.panel16.Controls.Add(this.searchmodeEqual_btn);
+ this.panel16.Controls.Add(this.searchmodeLess_btn);
+ this.panel16.Controls.Add(this.searchModeLabel);
this.panel16.Controls.Add(this.label5);
- this.panel16.Controls.Add(this.numericUpDown1);
- this.panel16.Controls.Add(this.panel14);
- this.panel16.Controls.Add(this.numericUpDown2);
- this.panel16.Controls.Add(this.checkBox3);
+ this.panel16.Controls.Add(this.quantityInput);
+ this.panel16.Controls.Add(this.skipValueInput);
+ this.panel16.Controls.Add(this.ascendingCheckBox);
this.panel16.Controls.Add(this.label7);
this.panel16.Controls.Add(this.label6);
- this.panel16.Controls.Add(this.textBox3);
- this.panel16.Controls.Add(this.checkBox2);
- this.panel16.Controls.Add(this.button2);
+ 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";
//
+ // downloadProgressBar
+ //
+ resources.ApplyResources(this.downloadProgressBar, "downloadProgressBar");
+ this.downloadProgressBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.downloadProgressBar.ForeColor = System.Drawing.Color.White;
+ this.downloadProgressBar.Maximum = 100;
+ this.downloadProgressBar.Minimum = 0;
+ this.downloadProgressBar.Name = "downloadProgressBar";
+ this.downloadProgressBar.ProgressColor = System.Drawing.Color.Green;
+ this.downloadProgressBar.ProgressFont = new System.Drawing.Font("Microsoft JhengHei UI", 11.25F, System.Drawing.FontStyle.Bold);
+ this.downloadProgressBar.Value = 0F;
+ //
+ // searchmodeGreater_btn
+ //
+ resources.ApplyResources(this.searchmodeGreater_btn, "searchmodeGreater_btn");
+ this.searchmodeGreater_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.searchmodeGreater_btn.Cursor = System.Windows.Forms.Cursors.Default;
+ this.searchmodeGreater_btn.FlatAppearance.BorderSize = 0;
+ this.searchmodeGreater_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
+ this.searchmodeGreater_btn.ForeColor = System.Drawing.Color.White;
+ this.searchmodeGreater_btn.Name = "searchmodeGreater_btn";
+ this.searchmodeGreater_btn.UseVisualStyleBackColor = false;
+ this.searchmodeGreater_btn.Click += new System.EventHandler(this.changeSearchMode);
+ //
+ // searchmodeEqual_btn
+ //
+ resources.ApplyResources(this.searchmodeEqual_btn, "searchmodeEqual_btn");
+ this.searchmodeEqual_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.searchmodeEqual_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
+ this.searchmodeEqual_btn.ForeColor = System.Drawing.Color.White;
+ this.searchmodeEqual_btn.Name = "searchmodeEqual_btn";
+ this.searchmodeEqual_btn.UseVisualStyleBackColor = false;
+ this.searchmodeEqual_btn.Click += new System.EventHandler(this.changeSearchMode);
+ //
+ // searchmodeLess_btn
+ //
+ resources.ApplyResources(this.searchmodeLess_btn, "searchmodeLess_btn");
+ this.searchmodeLess_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.searchmodeLess_btn.FlatAppearance.BorderSize = 0;
+ this.searchmodeLess_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
+ this.searchmodeLess_btn.ForeColor = System.Drawing.Color.White;
+ this.searchmodeLess_btn.Name = "searchmodeLess_btn";
+ this.searchmodeLess_btn.UseVisualStyleBackColor = false;
+ this.searchmodeLess_btn.Click += new System.EventHandler(this.changeSearchMode);
+ //
+ // searchModeLabel
+ //
+ resources.ApplyResources(this.searchModeLabel, "searchModeLabel");
+ this.searchModeLabel.ForeColor = System.Drawing.Color.White;
+ this.searchModeLabel.Name = "searchModeLabel";
+ //
// label5
//
resources.ApplyResources(this.label5, "label5");
this.label5.ForeColor = System.Drawing.Color.White;
this.label5.Name = "label5";
//
- // numericUpDown1
+ // quantityInput
//
- resources.ApplyResources(this.numericUpDown1, "numericUpDown1");
- this.numericUpDown1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.numericUpDown1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.numericUpDown1.Minimum = new decimal(new int[] {
+ resources.ApplyResources(this.quantityInput, "quantityInput");
+ this.quantityInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.quantityInput.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.quantityInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.quantityInput.Minimum = new decimal(new int[] {
10,
0,
0,
0});
- this.numericUpDown1.Name = "numericUpDown1";
- this.numericUpDown1.Value = new decimal(new int[] {
+ this.quantityInput.Name = "quantityInput";
+ this.quantityInput.Value = new decimal(new int[] {
100,
0,
0,
0});
//
- // panel14
- //
- resources.ApplyResources(this.panel14, "panel14");
- this.panel14.BackColor = System.Drawing.Color.Transparent;
- this.panel14.Controls.Add(this.progressBar1);
- this.panel14.Name = "panel14";
- this.panel14.Paint += new System.Windows.Forms.PaintEventHandler(this.panel14_Paint);
- //
- // numericUpDown2
+ // skipValueInput
//
- resources.ApplyResources(this.numericUpDown2, "numericUpDown2");
- this.numericUpDown2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.numericUpDown2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.numericUpDown2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.numericUpDown2.Maximum = new decimal(new int[] {
+ resources.ApplyResources(this.skipValueInput, "skipValueInput");
+ this.skipValueInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.skipValueInput.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.skipValueInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.skipValueInput.Maximum = new decimal(new int[] {
9999999,
0,
0,
0});
- this.numericUpDown2.Name = "numericUpDown2";
- this.numericUpDown2.Value = new decimal(new int[] {
+ this.skipValueInput.Name = "skipValueInput";
+ this.skipValueInput.Value = new decimal(new int[] {
20,
0,
0,
0});
//
- // checkBox3
+ // ascendingCheckBox
//
- resources.ApplyResources(this.checkBox3, "checkBox3");
- this.checkBox3.ForeColor = System.Drawing.Color.White;
- this.checkBox3.Name = "checkBox3";
- this.checkBox3.UseVisualStyleBackColor = true;
+ resources.ApplyResources(this.ascendingCheckBox, "ascendingCheckBox");
+ this.ascendingCheckBox.ForeColor = System.Drawing.Color.White;
+ this.ascendingCheckBox.Name = "ascendingCheckBox";
+ this.ascendingCheckBox.UseVisualStyleBackColor = true;
//
// label7
//
@@ -575,74 +626,95 @@ private void InitializeComponent()
this.label6.ForeColor = System.Drawing.Color.White;
this.label6.Name = "label6";
//
- // textBox3
+ // searchFloatInput
//
- resources.ApplyResources(this.textBox3, "textBox3");
- this.textBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.textBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.textBox3.Name = "textBox3";
+ resources.ApplyResources(this.searchFloatInput, "searchFloatInput");
+ this.searchFloatInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.searchFloatInput.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.searchFloatInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ this.searchFloatInput.Name = "searchFloatInput";
//
- // checkBox2
+ // sortCheckBox
//
- resources.ApplyResources(this.checkBox2, "checkBox2");
- this.checkBox2.ForeColor = System.Drawing.Color.White;
- this.checkBox2.Name = "checkBox2";
- this.checkBox2.UseVisualStyleBackColor = true;
+ resources.ApplyResources(this.sortCheckBox, "sortCheckBox");
+ this.sortCheckBox.ForeColor = System.Drawing.Color.White;
+ this.sortCheckBox.Name = "sortCheckBox";
+ this.sortCheckBox.UseVisualStyleBackColor = true;
//
- // button2
+ // startBtn
//
- resources.ApplyResources(this.button2, "button2");
- this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
- this.button2.Cursor = System.Windows.Forms.Cursors.Hand;
- this.button2.FlatAppearance.BorderSize = 0;
- this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
- this.button2.ForeColor = System.Drawing.Color.White;
- this.button2.Name = "button2";
- this.button2.UseVisualStyleBackColor = false;
- this.button2.Click += new System.EventHandler(this.button2_Click);
+ resources.ApplyResources(this.startBtn, "startBtn");
+ this.startBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.startBtn.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.startBtn.FlatAppearance.BorderSize = 0;
+ this.startBtn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame;
+ this.startBtn.ForeColor = System.Drawing.Color.White;
+ this.startBtn.Name = "startBtn";
+ this.startBtn.UseVisualStyleBackColor = false;
+ this.startBtn.Click += new System.EventHandler(this.button2_Click);
//
// 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.numericUpDown3);
- this.panel15.Controls.Add(this.checkBox4);
+ this.panel15.Controls.Add(this.threadCountInput);
resources.ApplyResources(this.panel15, "panel15");
this.panel15.Name = "panel15";
//
+ // speedStatusLabel
+ //
+ resources.ApplyResources(this.speedStatusLabel, "speedStatusLabel");
+ this.speedStatusLabel.ForeColor = System.Drawing.Color.White;
+ this.speedStatusLabel.Name = "speedStatusLabel";
+ //
+ // combinationsStatusLabel
+ //
+ resources.ApplyResources(this.combinationsStatusLabel, "combinationsStatusLabel");
+ this.combinationsStatusLabel.ForeColor = System.Drawing.Color.White;
+ this.combinationsStatusLabel.Name = "combinationsStatusLabel";
+ //
+ // gpuSearch_btn
+ //
+ resources.ApplyResources(this.gpuSearch_btn, "gpuSearch_btn");
+ this.gpuSearch_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
+ this.gpuSearch_btn.FlatAppearance.BorderSize = 0;
+ this.gpuSearch_btn.ForeColor = System.Drawing.Color.White;
+ this.gpuSearch_btn.Name = "gpuSearch_btn";
+ this.gpuSearch_btn.UseVisualStyleBackColor = false;
+ this.gpuSearch_btn.Click += new System.EventHandler(this.gpuSearch_btn_Click);
+ //
// label10
//
resources.ApplyResources(this.label10, "label10");
this.label10.ForeColor = System.Drawing.Color.White;
this.label10.Name = "label10";
//
- // numericUpDown3
+ // threadCountInput
//
- this.numericUpDown3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
- this.numericUpDown3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- resources.ApplyResources(this.numericUpDown3, "numericUpDown3");
- this.numericUpDown3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
- this.numericUpDown3.Minimum = new decimal(new int[] {
- 2,
+ this.threadCountInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
+ this.threadCountInput.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.threadCountInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
+ resources.ApplyResources(this.threadCountInput, "threadCountInput");
+ this.threadCountInput.Maximum = new decimal(new int[] {
+ 1024,
+ 0,
+ 0,
+ 0});
+ this.threadCountInput.Minimum = new decimal(new int[] {
+ 1,
0,
0,
0});
- this.numericUpDown3.Name = "numericUpDown3";
- this.numericUpDown3.Value = new decimal(new int[] {
+ this.threadCountInput.Name = "threadCountInput";
+ this.threadCountInput.Value = new decimal(new int[] {
2,
0,
0,
0});
//
- // checkBox4
- //
- resources.ApplyResources(this.checkBox4, "checkBox4");
- this.checkBox4.ForeColor = System.Drawing.Color.White;
- this.checkBox4.Name = "checkBox4";
- this.checkBox4.UseVisualStyleBackColor = true;
- this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged);
- //
// panel2
//
this.panel2.Controls.Add(this.panel5);
@@ -657,15 +729,23 @@ private void InitializeComponent()
resources.ApplyResources(this.panel4, "panel4");
this.panel4.Name = "panel4";
//
+ // WorkStatusUpdater
+ //
+ this.WorkStatusUpdater.Enabled = true;
+ this.WorkStatusUpdater.Interval = 250;
+ this.WorkStatusUpdater.Tick += new System.EventHandler(this.timer2_Tick);
+ //
// FloatTool
//
+ 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.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(242)))), ((int)(((byte)(227)))));
this.ControlBox = false;
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel2);
+ this.DoubleBuffered = true;
this.ForeColor = System.Drawing.Color.Black;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "FloatTool";
this.Load += new System.EventHandler(this.Form1_Load);
this.panel1.ResumeLayout(false);
@@ -675,7 +755,6 @@ private void InitializeComponent()
this.panel11.PerformLayout();
this.panel7.ResumeLayout(false);
this.panel9.ResumeLayout(false);
- this.contextMenuStrip1.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
this.panel6.ResumeLayout(false);
@@ -683,12 +762,11 @@ private void InitializeComponent()
this.panel5.ResumeLayout(false);
this.panel16.ResumeLayout(false);
this.panel16.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
- this.panel14.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.quantityInput)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.skipValueInput)).EndInit();
this.panel15.ResumeLayout(false);
this.panel15.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.threadCountInput)).EndInit();
this.panel2.ResumeLayout(false);
this.panel4.ResumeLayout(false);
this.ResumeLayout(false);
@@ -696,60 +774,66 @@ private void InitializeComponent()
}
#endregion
- private System.Windows.Forms.TextBox textBox2;
- private System.Windows.Forms.Timer timer1;
+ private System.Windows.Forms.TextBox outputConsoleBox;
+ private System.Windows.Forms.Timer DiscordUpdater;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel6;
- private System.Windows.Forms.CheckBox checkBox1;
- private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button checkPossibilityBtn;
private System.Windows.Forms.Label label3;
- private System.Windows.Forms.ComboBox comboBox3;
+ private System.Windows.Forms.ComboBox weaponQualityBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label4;
- private System.Windows.Forms.ComboBox comboBox1;
+ private System.Windows.Forms.ComboBox weaponTypeBox;
private System.Windows.Forms.Label label2;
- private System.Windows.Forms.TextBox textBox1;
- private System.Windows.Forms.ComboBox comboBox2;
+ private System.Windows.Forms.TextBox fullSkinName;
+ private System.Windows.Forms.ComboBox weaponSkinBox;
private System.Windows.Forms.Panel panel5;
- private System.Windows.Forms.CheckBox checkBox3;
+ private System.Windows.Forms.CheckBox ascendingCheckBox;
private System.Windows.Forms.Label label6;
- private System.Windows.Forms.ProgressBar progressBar1;
- private System.Windows.Forms.CheckBox checkBox2;
- private System.Windows.Forms.Button button2;
- private System.Windows.Forms.TextBox textBox3;
+ private System.Windows.Forms.CheckBox sortCheckBox;
+ private System.Windows.Forms.Button startBtn;
+ private System.Windows.Forms.TextBox searchFloatInput;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label5;
- private System.Windows.Forms.NumericUpDown numericUpDown2;
- private System.Windows.Forms.NumericUpDown numericUpDown1;
+ private System.Windows.Forms.NumericUpDown skipValueInput;
+ private System.Windows.Forms.NumericUpDown quantityInput;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Panel panel9;
- private System.Windows.Forms.Button button6;
- private System.Windows.Forms.Button button8;
+ private System.Windows.Forms.Button minimizeBtn;
+ private System.Windows.Forms.Button closeBtn;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Panel panel13;
private System.Windows.Forms.Panel panel11;
private System.Windows.Forms.Panel panel12;
private System.Windows.Forms.Panel panel10;
- private System.Windows.Forms.Button button7;
- private System.Windows.Forms.Button button9;
- private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
- private System.Windows.Forms.Label label9;
- private System.Windows.Forms.Panel panel14;
- private System.Windows.Forms.Button button10;
+ private System.Windows.Forms.Button settingsButton;
+ private System.Windows.Forms.Label versionLabel;
private System.Windows.Forms.Panel panel16;
private System.Windows.Forms.Panel panel15;
- private System.Windows.Forms.CheckBox checkBox4;
private System.Windows.Forms.Label label10;
- private System.Windows.Forms.NumericUpDown numericUpDown3;
+ private System.Windows.Forms.NumericUpDown threadCountInput;
+ private System.Windows.Forms.Button gpuSearch_btn;
+ private System.Windows.Forms.Label combinationsStatusLabel;
+ private System.Windows.Forms.Timer WorkStatusUpdater;
+ private System.Windows.Forms.Label speedStatusLabel;
+ private System.Windows.Forms.Button searchmodeGreater_btn;
+ private System.Windows.Forms.Button searchmodeEqual_btn;
+ private System.Windows.Forms.Button searchmodeLess_btn;
+ private System.Windows.Forms.Label searchModeLabel;
+ private System.Windows.Forms.Button MaximizeButton;
+ private CustomProgressBar downloadProgressBar;
+ private System.Windows.Forms.ComboBox outcomeSelectorComboBox;
+ private System.Windows.Forms.Label label11;
+ private CustomControls.CustomToggleSwitch stattrackCheckBox;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.Button benchmarkButton;
}
}
diff --git a/FloatToolGUI/Main.cs b/FloatToolGUI/Main.cs
index 8ebf5de..3b99cc1 100644
--- a/FloatToolGUI/Main.cs
+++ b/FloatToolGUI/Main.cs
@@ -1,4 +1,6 @@
using DiscordRPC;
+using FloatToolGUI.Resources;
+using static FloatToolGUI.Utils;
using Newtonsoft.Json;
using System;
using System.Collections;
@@ -17,14 +19,35 @@
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
-
+using Microsoft.Win32;
+using System.Numerics;
namespace FloatToolGUI
{
+ public enum Quality
+ {
+ Consumer,
+ Industrial,
+ MilSpec,
+ Restricted,
+ Classified,
+ Covert
+ }
+
public partial class FloatTool : Form
{
Thread thread1;
public bool muteSound = false;
+ string newLine;
+ public StringBuilder ConsoleBuffer;
+ public enum SearchMode
+ {
+ Less,
+ Equal,
+ Greater
+ }
+
+ public SearchMode CurrentSearchMode = SearchMode.Equal;
public static string setprecission(double number, int figures)
{
@@ -76,17 +99,16 @@ static public decimal craft(double[] ingridients, float minFloat, float maxFloat
avgFloat /= 10;
return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat;
}
- static public string craftF(string[] ingridients, float minFloat, float maxFloat)
+ static public string craftF(double[] ingridients, float minFloat, float maxFloat)
{
float avgFloat = 0;
float[] arrInput = new float[10];
for (int i = 0; i < 10; i++)
{
- arrInput[i] = Convert.ToSingle(ingridients[i].Replace(".", ","));
+ arrInput[i] = Convert.ToSingle(ingridients[i]);
}
foreach (float f in arrInput)
{
-
avgFloat += Convert.ToSingle(f);
}
avgFloat /= 10;
@@ -140,40 +162,33 @@ static public string getSkinData(string name)
}
- public void parseCraft(double[] inputs, List outputs, string want, bool wasSort, bool asc)
+ public void parseCraft(double[] inputs, List outputs, string want)
{
- List results = new List();
+ //List results = new List();
+ decimal wantFloat;
+ decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat);
+
foreach (var item in outputs)
{
- //want = want.Replace(".", ",");
- float minWear = item["minWear"];
- float maxWear = item["maxWear"];
- decimal flotOrigin = Math.Round(craft(inputs.ToArray(), minWear, maxWear), 14);
-
- string[] inputStr = new string[10];
- for(int i = 0; i < 10; i++)
- {
- inputStr[i] = "" + inputs[i];
- }
-
- //string flot = craftF(inputStr, minWear, maxWear);
- //Console.WriteLine(flotOrigin + " | " + flot);
- //Debug.WriteLine("[DEBUG] flot = " + flot);
- // if (wasSort && ((!asc && (double.Parse(flot) > double.Parse(want))) || (asc && (double.Parse(flot) < double.Parse(want))))) {
- // okSort = true;
- //}
- if (/*flot.StartsWith(want.Replace(".", ",")) ||*/ ("" + flotOrigin).StartsWith(want.Replace(".", ",")))
+ decimal flotOrigin = Math.Round(craft(inputs.ToArray(), item.MinFloat, item.MaxFloat), 14);
+ string flot = craftF(inputs, item.MinFloat, item.MaxFloat);
+
+ if (
+ ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) ||
+ ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) ||
+ ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater)
+ )
{
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText("Коомбинация найдена!" + Environment.NewLine);
- textBox2.AppendText("Возможный флоат: " + flotOrigin + Environment.NewLine);
- //textBox2.AppendText("Проверочный флоат: " + flot + Environment.NewLine);
- textBox2.AppendText("Список флоатов: [");
+ ConsoleBuffer.Append($"[{DateTime.Now.ToString("HH:mm:ss")}] {strings.CombinationFound}{newLine}");
+ ConsoleBuffer.Append($"{strings.PossibleFloat}: {flotOrigin}{newLine}");
+ ConsoleBuffer.Append($"{strings.TestFloat}: {flot}{newLine}");
+ ConsoleBuffer.Append($"{strings.FloatList}: ");
if (!muteSound)
{
//play sound
- SoundPlayer player = new SoundPlayer();
+ SoundPlayer player = new SoundPlayer(Properties.Resources.notification);
player.Play();
}
client.SetPresence(new RichPresence()
@@ -186,22 +201,13 @@ public void parseCraft(double[] inputs, List outputs, string want, bool
LargeImageText = "FloatTool"
}
});
- for (int i = 0; i < 10; i++)
- {
- textBox2.AppendText(Math.Round(inputs[i], 14).ToString().Replace(",","."));
- if (i != 9)
- {
- textBox2.AppendText(", ");
- }
- else
- {
- textBox2.AppendText("]" + Environment.NewLine + "=====================================" + Environment.NewLine);
- }
- }
+ List floatStrings = new List();
+ foreach (var fl in inputs) floatStrings.Add(Math.Round(fl, 14).ToString().Replace(",", "."));
+ ConsoleBuffer.Append($"[{String.Join(", ", floatStrings)}]{newLine}====================================={newLine}");
}
));
- //textBox2.AppendText( "IEEE754: " + flot + Environment.NewLine;
+ //textBox2.AppendText( "IEEE754: " + flot + newLine;
return;
}
}
@@ -209,41 +215,115 @@ public void parseCraft(double[] inputs, List outputs, string want, bool
public void SwitchEnabled()
{
- comboBox1.Enabled = !comboBox1.Enabled;
- comboBox2.Enabled = !comboBox2.Enabled;
- textBox1.Enabled = !textBox1.Enabled;
- comboBox3.Enabled = !comboBox3.Enabled;
- textBox3.Enabled = !textBox3.Enabled;
- numericUpDown1.Enabled = !numericUpDown1.Enabled;
- numericUpDown2.Enabled = !numericUpDown2.Enabled;
- checkBox1.Enabled = !checkBox1.Enabled;
- checkBox2.Enabled = !checkBox2.Enabled;
- checkBox3.Enabled = !checkBox3.Enabled;
+ weaponTypeBox.Enabled = !weaponTypeBox.Enabled;
+ weaponSkinBox.Enabled = !weaponSkinBox.Enabled;
+ fullSkinName.Enabled = !fullSkinName.Enabled;
+ weaponQualityBox.Enabled = !weaponQualityBox.Enabled;
+ searchFloatInput.Enabled = !searchFloatInput.Enabled;
+ quantityInput.Enabled = !quantityInput.Enabled;
+ skipValueInput.Enabled = !skipValueInput.Enabled;
+ stattrackCheckBox.Enabled = !stattrackCheckBox.Enabled;
+ sortCheckBox.Enabled = !sortCheckBox.Enabled;
+ ascendingCheckBox.Enabled = !ascendingCheckBox.Enabled;
+ outcomeSelectorComboBox.Enabled = !outcomeSelectorComboBox.Enabled;
+ threadCountInput.Enabled = !threadCountInput.Enabled;
}
+
+ public void UpdateOutcomes()
+ {
+ string skin = $"{weaponTypeBox.Text} | {weaponSkinBox.Text}";
+ outcomeSelectorComboBox.Items.Clear();
+ List craftList = new List();
+ using (StreamReader r = new StreamReader("itemData.json"))
+ {
+ string json = r.ReadToEnd();
+ dynamic items = JsonConvert.DeserializeObject(json);
+ foreach (var skn in items)
+ {
+ if (skn["name"].ToString() == skin)
+ {
+ 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);
+ }
+ }
+ }
+ int totalSkins = 0;
+ foreach (var skinRange in GroupOutcomes(craftList))
+ totalSkins += skinRange.Count;
+ foreach (var skinRange in GroupOutcomes(craftList))
+ {
+ string tmp = (skinRange.Count > 1) ? $" + {(skinRange.Count - 1)}" : "";
+ outcomeSelectorComboBox.Items.Add($"{((float)skinRange.Count) / totalSkins * 100}% ({skinRange[0].Name}{tmp})");
+ }
+ outcomeSelectorComboBox.Items.Add("* Искать всё *");
+ outcomeSelectorComboBox.SelectedIndex = 0;
+ }
+ }
+
public void updateSearchStr()
{
string search = "";
- if (checkBox1.Checked)
+ if (stattrackCheckBox.Checked)
{
search += "StatTrak™ ";
}
- search += comboBox1.Text;
+ search += weaponTypeBox.Text;
search += " | ";
- search += comboBox2.Text;
- search += " (" + comboBox3.Text + ")";
- textBox1.Text = search;
+ search += weaponSkinBox.Text;
+ search += " (" + weaponQualityBox.Text + ")";
+ fullSkinName.Text = search;
+ UpdateOutcomes();
}
+
+ RegistryKey registryData;
public FloatTool()
{
InitializeComponent();
- this.SetStyle(ControlStyles.ResizeRedraw, true);
+ SetStyle(ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
+ ConsoleBuffer = new StringBuilder();
+ newLine = Environment.NewLine;
+ registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool");
+ 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.Close();
+ }
+ else
+ {
+ ChangeTheme(Convert.ToBoolean(registryData.GetValue("darkMode")));
+ muteSound = !Convert.ToBoolean(registryData.GetValue("sound"));
+ WorkStatusUpdater.Interval = (int)registryData.GetValue("bufferSpeed");
+ if (Convert.ToBoolean(registryData.GetValue("updateCheck")))
+ {
+ string ver = CheckUpdates();
+ 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");
+ }
+ }
+ }
}
public DiscordRpcClient client;
- private bool darkTheme = true;
private void Form1_Load(object sender, EventArgs e)
{
- comboBox2.Items.Clear();
+ weaponSkinBox.Items.Clear();
using (StreamReader r = new StreamReader("itemData.json"))
{
string json = r.ReadToEnd();
@@ -251,15 +331,17 @@ private void Form1_Load(object sender, EventArgs e)
foreach (var skin in items)
{
- if (skin["name"].ToString().Split('|')[0].TrimEnd() == comboBox1.Text)
+ if (skin["name"].ToString().Split('|')[0].TrimEnd() == weaponTypeBox.Text)
{
Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0, 1));
- comboBox2.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0, 1));
+ weaponSkinBox.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0, 1));
}
}
}
updateSearchStr();
- button10.Text = darkTheme ? "🌙" : "☀";
+
+ //dev = 824349399688937543
+ //main = 734042978246721537
client = new DiscordRpcClient("734042978246721537");
//Subscribe to events
@@ -288,12 +370,7 @@ private void Form1_Load(object sender, EventArgs e)
thread1 = new Thread(runCycle);
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
-
- }
-
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
-
+ this.threadCountInput.Value = Environment.ProcessorCount;
}
private void runCycle()
@@ -301,14 +378,9 @@ private void runCycle()
Console.WriteLine("Thread loaded!");
}
- private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
-
- }
-
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
- comboBox2.Items.Clear();
+ weaponSkinBox.Items.Clear();
using (StreamReader r = new StreamReader("itemData.json"))
{
string json = r.ReadToEnd();
@@ -316,10 +388,10 @@ private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
foreach (var skin in items)
{
- if (skin["name"].ToString().Split('|')[0].TrimEnd() == comboBox1.Text)
+ if (skin["name"].ToString().Split('|')[0].TrimEnd() == weaponTypeBox.Text)
{
- Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0,1));
- comboBox2.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0,1));
+ //Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0,1));
+ weaponSkinBox.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0,1));
}
}
}
@@ -390,20 +462,34 @@ private static IEnumerable Combinations(IEnumerable elements, int k, int s
} while (NextCombination(numbers, size, k));
}
- public void secndThread(List craftList, string wanted, double[] pool, int start, int skip)
+ public void secndThread(List craftList, string wanted, double[] pool, int start, int skip)
{
foreach (IEnumerable pair in Combinations(pool, 10, start, skip))
{
- parseCraft(pair.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked);
+ parseCraft(pair.ToArray(), craftList, wanted);
+ currComb++;
+ //Console.WriteLine(currComb);
}
}
+ public BigInteger Fact(int number)
+ {
+ if (number == 1)
+ return 1;
+ else
+ return number * Fact(number - 1);
+ }
+
public List t2 = new List();
+ BigInteger totalComb = 0;
+ BigInteger currComb = 0;
+ public bool Searching = false;
+
private void StartCalculation()
{
client.SetPresence(new RichPresence()
{
Details = "Начал поиск",
- State = "Ищу " + textBox3.Text,
+ State = "Ищу " + searchFloatInput.Text,
Timestamps = Timestamps.Now,
Assets = new Assets()
{
@@ -411,30 +497,34 @@ private void StartCalculation()
LargeImageText = "FloatTool"
}
});
+
+ totalComb = quantityInput.Value == 10 ? 1 : Fact((int)quantityInput.Value) / (Fact(10) * Fact((int)quantityInput.Value - 10));
+ currComb = 0;
this.Invoke((MethodInvoker)(() =>
{
- textBox2.Text = "Добро пожаловать в FloatTool!" + Environment.NewLine + "Инструмент для создания флоатов при помощи крафтов CS:GO" + Environment.NewLine;
- textBox2.AppendText( "Время начала процесса: " + DateTime.Now.ToString("HH:mm:ss tt") + Environment.NewLine);
- button2.Text = "Стоп";
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ outputConsoleBox.Text = "Добро пожаловать в FloatTool!" + newLine + "Инструмент для создания флоатов при помощи крафтов CS:GO" + newLine;
+ outputConsoleBox.AppendText( "Время начала процесса: " + DateTime.Now.ToString("HH:mm:ss tt") + newLine);
+ startBtn.Text = "Стоп";
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
}
));
- string count = "" + numericUpDown1.Value;
- string start = "" + numericUpDown2.Value;
- string wanted = textBox3.Text;
- string q = textBox1.Text;
+ string count = "" + quantityInput.Value;
+ string start = "" + skipValueInput.Value;
+ string wanted = searchFloatInput.Text;
+ string q = fullSkinName.Text;
string url = "https://steamcommunity.com/market/listings/730/" + q + "/render/?query=&language=russian&count=" + count + "&start=" + start + "¤cy=5";
Console.WriteLine(url);
+
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText( "Загрузка скинов с торговой площадки..." + Environment.NewLine);
- progressBar1.Maximum = int.Parse(count);
- progressBar1.Value = 0;
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
-
+ outputConsoleBox.AppendText( "Загрузка скинов с торговой площадки..." + newLine);
+ downloadProgressBar.Maximum = int.Parse(count);
+ downloadProgressBar.Value = 0;
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
+ combinationsStatusLabel.Text = $"Проверено комбинаций: 0 / {totalComb}";
}
));
@@ -446,9 +536,9 @@ private void StartCalculation()
dynamic r = JsonConvert.DeserializeObject(json);
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText( "Получение флоатов..." + Environment.NewLine);
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ outputConsoleBox.AppendText( "Получение флоатов..." + newLine);
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
}
));
int counter = 0;
@@ -475,15 +565,15 @@ private void StartCalculation()
}
this.Invoke((MethodInvoker)(() =>
{
- progressBar1.Value = counter;
+ downloadProgressBar.Value = counter;
}
));
}
}
- if (checkBox2.Checked)
+ if (sortCheckBox.Checked)
{
- if (checkBox3.Checked)
+ if (ascendingCheckBox.Checked)
{
floats.Sort((a, b) => a.CompareTo(b));
Console.WriteLine("Sorted ascending");
@@ -499,9 +589,15 @@ private void StartCalculation()
//}
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText( "Поиск ауткамов..." + Environment.NewLine);
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ outputConsoleBox.AppendText( "Поиск ауткамов..." + newLine);
+ outputConsoleBox.SelectionStart = fullSkinName.Text.Length;
+ /*string line = "[";
+ foreach(var i in floats)
+ line += $"{i.ToString().Replace(',','.')}, ";
+ line = line.Remove(line.Length - 2);
+ textBox2.AppendText("Список флоатов:" + newLine + line + "]" + newLine);*/
+ outputConsoleBox.ScrollToCaret();
+
}
));
string currData = getSkinData(q.Split('(')[0].TrimEnd());
@@ -523,54 +619,62 @@ private void StartCalculation()
}
}
}
+
+ int outcomeIndex = 0;
+ Invoke((MethodInvoker)(() => { outcomeIndex = outcomeSelectorComboBox.SelectedIndex; } ));
+
+ var allOutcomes = GroupOutcomes(craftList);
+ List outcomes = new List();
+
+ if(allOutcomes.Length > outcomeIndex) {
+ outcomes.Add(allOutcomes[outcomeIndex][0]);
+ }
+ else
+ {
+ foreach (var i in allOutcomes)
+ outcomes.Add(i[0]);
+ }
+
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText( "Ауткамы найдены! Начинаю подбор..." + Environment.NewLine + Environment.NewLine);
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ outputConsoleBox.AppendText( "Ауткамы найдены! Начинаю подбор..." + newLine + "Выбрано для поиска:" + newLine + String.Join(newLine, outcomes) + newLine + newLine);
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
+ downloadProgressBar.Value = 0;
+ downloadProgressBar.Maximum = 1000;
}
));
- //return;
+
double[] pool = floats.ToArray();
- //int n = floats.Count;
- //if (10 > n) { Console.WriteLine("At least 10!"); return; }
- //int[] indices = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
- //List first = new List();
- //foreach (int i in indices) { first.Add(pool[i]); }
- //Craft
- //parseCraft(first.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked);
- //
- //int iter = 2;
-
- var threads = 1;
- if (checkBox4.Checked)
- {
- threads = (int)numericUpDown3.Value;
- try
- {
- for (int i = 1; i < threads; i++)
- {
- Thread newThread = new Thread(() => secndThread(craftList, wanted, pool, i, threads));
- newThread.Start();
- t2.Add(newThread);
- }
- }
- catch (Exception ex)
+
+ Searching = true;
+
+ int threads = (int)threadCountInput.Value;
+ try
+ {
+ for (int i = 1; i < threads; i++)
{
+ Thread newThread = new Thread(() => secndThread(outcomes, wanted, pool, i, threads));
+ newThread.Start();
+ t2.Add(newThread);
}
}
-
-
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.Message);
+ }
foreach (IEnumerable pair in Combinations(pool, 10, 0, threads))
{
- parseCraft(pair.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked);
+ parseCraft(pair.ToArray(), outcomes, wanted);
+ currComb++;
}
Console.WriteLine("Next group");
while (true)
- {
+ {
bool okey = true;
+
foreach (Thread t in t2)
{
if (t.IsAlive)
@@ -581,68 +685,36 @@ private void StartCalculation()
}
if (okey) break;
}
-
-
-
-
-
- /*
- Parallel.For(2, 6, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (iter) => {
- while (true)
- {
- //var startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();
- //Debug.WriteLine("[DEBUG] start time = "+startTime);
- Console.WriteLine("iter = " + iter);
- int a = 9; bool run = true;
- for (int i = 9; i >= 0; i--) { a = i; if (indices[i] != i + n - 10) { run = false; break; } }
- if (run) { break; }
- indices[a]++;
- for (int j = a + 1; j < 10; j++) { indices[j] = indices[j - 1] + 1; }
- List current = new List();
- foreach (int i in indices) { current.Add(pool[i]); }
- //Craft
-
- //var endTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();
- //Debug.WriteLine("[DEBUG] end time = " + endTime);
- //Debug.WriteLine("[DEBUG] total time = " + (endTime - startTime));
- //
- iter++;
- }
- });
- */
+ Searching = false;
this.Invoke((MethodInvoker)(() =>
{
- textBox2.AppendText( "Программа завершила проверку всех комбинаций!" + Environment.NewLine);
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ outputConsoleBox.AppendText( "Программа завершила проверку всех комбинаций!" + newLine);
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
thread1.Abort();
- button2.Text = "Старт";
- progressBar1.Value = 0;
+ startBtn.Text = "Старт";
+ downloadProgressBar.Value = 0;
SwitchEnabled();
}
));
}
- private void parseCraft(List[] lists, List craftList, string wanted, bool checked1, bool checked2)
- {
- throw new NotImplementedException();
- }
-
private void button2_Click(object sender, EventArgs e)
{
- if(button2.Text == "Старт") {
+ if(startBtn.Text == "Старт") {
thread1.Abort();
thread1 = new Thread(StartCalculation);
thread1.Start();
}
else
{
+ Searching = false;
thread1.Abort();
- button2.Text = "Старт";
- progressBar1.Value = 0;
+ startBtn.Text = "Старт";
+ downloadProgressBar.Value = 0;
client.SetPresence(new RichPresence()
{
Details = "Настраиваю поиск",
@@ -665,17 +737,17 @@ private void button2_Click(object sender, EventArgs e)
private void textBox2_TextChanged(object sender, EventArgs e)
{
- textBox1.SelectionStart = textBox1.Text.Length;
- textBox2.ScrollToCaret();
+ fullSkinName.SelectionStart = fullSkinName.Text.Length;
+ outputConsoleBox.ScrollToCaret();
}
private void button1_Click(object sender, EventArgs e)
{
updateSearchStr();
string skin = "";
- skin += comboBox1.Text;
+ skin += weaponTypeBox.Text;
skin += " | ";
- skin += comboBox2.Text;
+ skin += weaponSkinBox.Text;
//search += " (" + comboBox3.Text + ")";
using (StreamReader r = new StreamReader("itemData.json"))
@@ -686,9 +758,30 @@ 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);
+ }
+
+
+ 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")
{
- if (floatRangeText(comboBox3.Text, skn["minWear"].ToString(), skn["maxWear"].ToString()))
+ if (floatRangeText(weaponQualityBox.Text, skn["minWear"].ToString(), skn["maxWear"].ToString()))
{
MessageBox.Show("Данный скин доступен к поиску!", "FloatTool", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
@@ -707,7 +800,6 @@ private void button1_Click(object sender, EventArgs e)
}
}
}
-
MessageBox.Show("Такого скина не существует! Перепроверьте настройки.", "FloatTool", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
@@ -719,6 +811,40 @@ bool testOverlap(float x1, float x2, float y1, float y2)
(y2 >= x1 && y2 <= x2);
}
+ private Quality FromString(string value)
+ {
+ if (value == "Consumer") return Quality.Consumer;
+ else if (value == "Industrial") return Quality.Industrial;
+ else if (value == "Mil-Spec") return Quality.MilSpec;
+ else if (value == "Restricted") return Quality.Restricted;
+ else if (value == "Classified") return Quality.Classified;
+ else return Quality.Covert;
+ }
+
+ private List[] GroupOutcomes(List skins)
+ {
+ var allList = new List>(); //List with all outcomes
+ float[] currIter = { 0f, 1f }; //Last iteration wear range
+ List floatRanges = new List(); //List of all ranges that has been parsed
+
+ foreach(var skin in skins)
+ {
+ float[] curr = { skin["maxWear"], skin["minWear"] };
+ List list = new List();
+ if (curr.SequenceEqual(currIter) || floatRanges.Any(x => (x.SequenceEqual(curr)))) continue; //If range already exists
+ else {
+ currIter = curr;
+ floatRanges.Add(currIter);
+ }
+ foreach (var skin1 in skins)
+ if ((skin["maxWear"] == skin1["maxWear"]) && (skin["minWear"] == skin1["minWear"]))
+ list.Add(new Skin(skin1["name"].ToString(), float.Parse(skin1["minWear"].ToString().Replace('.', ',')), float.Parse(skin1["maxWear"].ToString().Replace('.', ',')), FromString(skin1["rarity"].ToString().Split(' ')[0])));
+ allList.Add(list);
+ }
+
+ return allList.ToArray();
+ }
+
private bool floatRangeText(string text, string minVal, string maxVal)
{
Console.WriteLine(text + " in float range [" + minVal + ", " + maxVal + "]");
@@ -760,9 +886,15 @@ private void button8_Click(object sender, EventArgs e)
Application.Exit();
}
- private void button6_Click(object sender, EventArgs e)
+ private void MaximizeMinimizeButton(object sender, EventArgs e)
{
- this.WindowState = FormWindowState.Minimized;
+ var buttonText = ((System.Windows.Forms.Button)sender).Text;
+ if(buttonText == "_") WindowState = FormWindowState.Minimized;
+ else
+ {
+ WindowState = WindowState == FormWindowState.Maximized ? FormWindowState.Normal : FormWindowState.Maximized;
+ }
+
}
public const int WM_NCLBUTTONDOWN = 0xA1;
@@ -773,16 +905,51 @@ private void button6_Click(object sender, EventArgs e)
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool ReleaseCapture();
- private void panel3_MouseDown(object sender, MouseEventArgs e)
+
+ private const int
+ HTLEFT = 10,
+ HTRIGHT = 11,
+ HTTOP = 12,
+ HTTOPLEFT = 13,
+ HTTOPRIGHT = 14,
+ HTBOTTOM = 15,
+ HTBOTTOMLEFT = 16,
+ HTBOTTOMRIGHT = 17;
+
+ const int _ = 16;
+
+ Rectangle TopCursor { get { return new Rectangle(0, 0, this.ClientSize.Width, _); } }
+ 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 - _, _, _); } }
+
+
+ protected override void WndProc(ref Message message)
{
- if (e.Button == MouseButtons.Left)
+ base.WndProc(ref message);
+
+ if (message.Msg == 0x84) // WM_NCHITTEST
{
- ReleaseCapture();
- SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
+ var cursor = this.PointToClient(Cursor.Position);
+
+ if (TopLeft.Contains(cursor)) message.Result = (IntPtr)HTTOPLEFT;
+ else if (TopRight.Contains(cursor)) message.Result = (IntPtr)HTTOPRIGHT;
+ else if (BottomLeft.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMLEFT;
+ else if (BottomRight.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMRIGHT;
+
+ else if (TopCursor.Contains(cursor)) message.Result = (IntPtr)HTTOP;
+ else if (LeftCursor.Contains(cursor)) message.Result = (IntPtr)HTLEFT;
+ else if (RightCursor.Contains(cursor)) message.Result = (IntPtr)HTRIGHT;
+ else if (BottomCursor.Contains(cursor)) message.Result = (IntPtr)HTBOTTOM;
}
}
- private void panel9_MouseDown(object sender, MouseEventArgs e)
+ private void panel3_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
@@ -791,74 +958,49 @@ private void panel9_MouseDown(object sender, MouseEventArgs e)
}
}
- void updateMuteIcon()
+ private void panel9_MouseDown(object sender, MouseEventArgs e)
{
- if (!muteSound)
- {
- if (darkTheme)
- {
- button7.Image = FloatToolGUI.Properties.Resources.unmutedWhite;
- }
- else
- {
- button7.Image = FloatToolGUI.Properties.Resources.unmutedBlack;
- }
- }
- else
+ if (e.Button == MouseButtons.Left)
{
- if (darkTheme)
- {
- button7.Image = FloatToolGUI.Properties.Resources.mutedWhite;
- }
- else
- {
- button7.Image = FloatToolGUI.Properties.Resources.mutedBlack;
- }
+ ReleaseCapture();
+ SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
- private void button7_Click(object sender, EventArgs e)
+ private void settingsButton_Click(object sender, EventArgs e)
{
- if (muteSound)
+ SettingsForm settings = new SettingsForm();
+ settings.ShowDialog();
+ registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool");
+ if (registryData == null)
{
- muteSound = false;
- SoundPlayer player = new SoundPlayer();
- player.Play();
+ registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool");
+ registryData.SetValue("darkMode", true);
+ registryData.SetValue("sound", true);
+ registryData.SetValue("updateCheck", true);
+ registryData.SetValue("bufferSpeed", 250);
+ registryData.Close();
}
else
{
- muteSound = true;
+ ChangeTheme(Convert.ToBoolean(registryData.GetValue("darkMode")));
+ muteSound = !Convert.ToBoolean(registryData.GetValue("sound"));
+ WorkStatusUpdater.Interval = (int)registryData.GetValue("bufferSpeed");
}
- updateMuteIcon();
- }
-
- private void button9_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F");
- }
-
- private void toolStripMenuItem2_Click(object sender, EventArgs e)
- {
- System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/");
- }
-
- private void toolStripMenuItem3_Click(object sender, EventArgs e)
- {
- About aboutForm = new About();
- aboutForm.Show();
}
- private void panel14_Paint(object sender, PaintEventArgs e)
+ private void benchmarkButton_Click(object sender, EventArgs e)
{
-
+ Benchmark benchmark = new Benchmark(versionLabel.Text);
+ benchmark.ShowDialog();
}
- void changeTheme(bool dark)
+ void ChangeTheme(bool dark)
{
if (dark)
{
- textBox2.BackColor = Color.FromArgb(31, 31, 31);
- textBox2.ForeColor = Color.FromArgb(255, 255, 255);
+ outputConsoleBox.BackColor = Color.FromArgb(31, 31, 31);
+ outputConsoleBox.ForeColor = Color.FromArgb(255, 255, 255);
panel10.BackColor = Color.FromArgb(31, 31, 31);
panel12.BackColor = Color.FromArgb(31, 31, 31);
@@ -874,60 +1016,85 @@ void changeTheme(bool dark)
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);
- comboBox1.BackColor = Color.FromArgb(32, 32, 32);
- comboBox1.ForeColor = Color.FromArgb(150, 150, 150);
- comboBox2.BackColor = Color.FromArgb(32, 32, 32);
- comboBox2.ForeColor = Color.FromArgb(150, 150, 150);
- comboBox3.BackColor = Color.FromArgb(32, 32, 32);
- comboBox3.ForeColor = Color.FromArgb(150, 150, 150);
-
- button6.ForeColor = Color.FromArgb(255, 255, 255);
- updateMuteIcon();
- button8.ForeColor = Color.FromArgb(255, 255, 255);
- button9.ForeColor = Color.FromArgb(255, 255, 255);
- button10.ForeColor = Color.FromArgb(255, 255, 255);
-
- button6.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0);
- button7.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0);
- button8.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0);
- button9.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0);
- button10.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0);
-
- checkBox1.ForeColor = Color.FromArgb(255, 255, 255);
- checkBox2.ForeColor = Color.FromArgb(255, 255, 255);
- checkBox3.ForeColor = Color.FromArgb(255, 255, 255);
-
- button1.BackColor = Color.FromArgb(56, 56, 56);
- button2.BackColor = Color.FromArgb(56, 56, 56);
- button1.ForeColor = Color.FromArgb(255, 255, 255);
- button2.ForeColor = Color.FromArgb(255, 255, 255);
-
- button1.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame");
- button2.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame");
-
- textBox1.BackColor = Color.FromArgb(32, 32, 32);
- textBox1.ForeColor = Color.FromArgb(150, 150, 150);
- textBox3.BackColor = Color.FromArgb(32, 32, 32);
- textBox3.ForeColor = Color.FromArgb(150, 150, 150);
-
- numericUpDown1.BackColor = Color.FromArgb(32, 32, 32);
- numericUpDown1.ForeColor = Color.FromArgb(150, 150, 150);
- numericUpDown2.BackColor = Color.FromArgb(32, 32, 32);
- numericUpDown2.ForeColor = Color.FromArgb(150, 150, 150);
-
- checkBox4.ForeColor = Color.FromName("White");
+ 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");
- numericUpDown3.BackColor = Color.FromArgb(32, 32, 32);
- numericUpDown3.ForeColor = Color.FromArgb(150, 150, 150);
+ 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
{
- textBox2.BackColor = Color.FromArgb(255, 255, 255);
- textBox2.ForeColor = Color.FromArgb(0, 0, 0);
+ outputConsoleBox.BackColor = Color.FromArgb(255, 255, 255);
+ outputConsoleBox.ForeColor = Color.FromArgb(0, 0, 0);
panel10.BackColor = Color.FromArgb(255, 255, 255);
panel12.BackColor = Color.FromArgb(255, 255, 255);
@@ -943,68 +1110,171 @@ void changeTheme(bool dark)
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);
- comboBox1.BackColor = Color.FromArgb(255, 255, 255);
- comboBox1.ForeColor = Color.FromArgb(10, 10, 10);
- comboBox2.BackColor = Color.FromArgb(255, 255, 255);
- comboBox2.ForeColor = Color.FromArgb(10, 10, 10);
- comboBox3.BackColor = Color.FromArgb(255, 255, 255);
- comboBox3.ForeColor = Color.FromArgb(10, 10, 10);
-
- button6.ForeColor = Color.FromArgb(0, 0, 0);
- updateMuteIcon();
- button8.ForeColor = Color.FromArgb(0, 0, 0);
- button9.ForeColor = Color.FromArgb(0, 0, 0);
- button10.ForeColor = Color.FromArgb(0, 0, 0);
-
- button6.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230);
- button7.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230);
- button8.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230);
- button9.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230);
- button10.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230);
-
- checkBox1.ForeColor = Color.FromArgb(0, 0, 0);
- checkBox2.ForeColor = Color.FromArgb(0, 0, 0);
- checkBox3.ForeColor = Color.FromArgb(0, 0, 0);
-
- button1.BackColor = Color.FromArgb(249, 249, 249);
- button2.BackColor = Color.FromArgb(249, 249, 249);
- button1.ForeColor = Color.FromArgb(0, 0, 0);
- button2.ForeColor = Color.FromArgb(0, 0, 0);
-
- textBox1.BackColor = Color.FromArgb(255, 255, 255);
- textBox1.ForeColor = Color.FromArgb(10, 10, 10);
- textBox3.BackColor = Color.FromArgb(255, 255, 255);
- textBox3.ForeColor = Color.FromArgb(10, 10, 10);
-
- button1.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240);
- button2.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240);
-
- numericUpDown1.BackColor = Color.FromArgb(255, 255, 255);
- numericUpDown1.ForeColor = Color.FromArgb(10, 10, 10);
- numericUpDown2.BackColor = Color.FromArgb(255, 255, 255);
- numericUpDown2.ForeColor = Color.FromArgb(10, 10, 10);
-
- checkBox4.ForeColor = Color.FromName("Black");
+ 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");
- numericUpDown3.BackColor = Color.FromArgb(255, 255, 255);
- numericUpDown3.ForeColor = Color.FromArgb(10, 10, 10);
+ 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);
}
}
- private void button10_Click(object sender, EventArgs e)
+ private void gpuSearch_btn_Click(object sender, EventArgs e)
+ {
+ double[] floats = {
+ 0.246938750147820, 0.196652039885521,
+ 0.154839321970940, 0.333326697349548,
+ 0.163415759801865, 0.291821509599686,
+ 0.374309629201889, 0.378754675388336,
+ 0.231419935822487, 0.311867892742157,
+ 0.374067693948746, 0.377068012952805,
+ 0.244467452168465, 0.355135351419449,
+ 0.352264583110809, 0.227853879332542,
+ 0.340960860252380, 0.375657349824905,
+ 0.157685652375221, 0.217334255576134,
+ 0.323678821325302, 0.363768666982651,
+ 0.350994020700455, 0.369551151990891,
+ 0.350340574979782, 0.338801741600037,
+ 0.329752802848816, 0.369740217924118,
+ 0.370476812124252, 0.205233186483383,
+ 0.360520750284195, 0.373722523450851,
+ 0.161364838480949, 0.263432979583740,
+ 0.314681977033615, 0.310743361711502,
+ 0.349280923604965, 0.355936050415039,
+ 0.269742101430893, 0.199420168995857,
+ 0.364472836256027, 0.218964993953705,
+ 0.239638179540634, 0.325499594211578,
+ 0.228406846523285, 0.307701110839844,
+ 0.156294032931328, 0.179465100169182,
+ 0.327553898096085, 0.150170117616653
+ };
+
+ client.SetPresence(new RichPresence()
+ {
+ Details = "GPU Тест",
+ State = "Тестирование подбора на видеокарте",
+ Timestamps = Timestamps.Now,
+ Assets = new Assets()
+ {
+ LargeImageKey = "icon",
+ LargeImageText = "FloatTool"
+ }
+ });
+ SwitchEnabled();
+ }
+
+ BigInteger last = 0;
+ private void timer2_Tick(object sender, EventArgs e)
{
- darkTheme = !darkTheme;
- changeTheme(darkTheme);
- button10.Text = darkTheme ? "🌙" : "☀";
+ var hundrMilsCount = currComb - last;
+ var speed = (double)(hundrMilsCount) * 1000 / WorkStatusUpdater.Interval;
+ speedStatusLabel.Text = $"Текущая скорость: {speed} комбинаций/сек";
+ last = currComb;
+ combinationsStatusLabel.Text = $"Проверено комбинаций: {currComb} / {totalComb}";
+
+ if (ConsoleBuffer.Length > 0)
+ {
+ outputConsoleBox.Text += ConsoleBuffer.ToString();
+ ConsoleBuffer.Clear();
+ outputConsoleBox.ScrollToCaret();
+ }
+
+ if (totalComb != 0 && currComb < totalComb && Searching)
+ downloadProgressBar.Value = ((float)((double)(currComb) / (double)(totalComb) * 1000));
}
- private void checkBox4_CheckedChanged(object sender, EventArgs e)
+ private void changeSearchMode(object sender, EventArgs e)
{
- numericUpDown3.Enabled = checkBox4.Checked;
+ var selectedMode = ((System.Windows.Forms.Button)sender).Text;
+
+ if(selectedMode == "=")
+ {
+ searchmodeLess_btn.FlatAppearance.BorderSize = 0;
+ searchmodeEqual_btn.FlatAppearance.BorderSize = 1;
+ searchmodeGreater_btn.FlatAppearance.BorderSize = 0;
+ CurrentSearchMode = SearchMode.Equal;
+ }
+ else if(selectedMode == ">")
+ {
+ searchmodeLess_btn.FlatAppearance.BorderSize = 0;
+ searchmodeEqual_btn.FlatAppearance.BorderSize = 0;
+ searchmodeGreater_btn.FlatAppearance.BorderSize = 1;
+ CurrentSearchMode = SearchMode.Greater;
+ }
+ else if(selectedMode == "<")
+ {
+ searchmodeLess_btn.FlatAppearance.BorderSize = 1;
+ searchmodeEqual_btn.FlatAppearance.BorderSize = 0;
+ searchmodeGreater_btn.FlatAppearance.BorderSize = 0;
+ CurrentSearchMode = SearchMode.Less;
+ }
}
}
}
diff --git a/FloatToolGUI/Main.resx b/FloatToolGUI/Main.resx
index 523c54c..2d9767d 100644
--- a/FloatToolGUI/Main.resx
+++ b/FloatToolGUI/Main.resx
@@ -118,50 +118,50 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
Fill
-
+
Microsoft JhengHei UI Light, 10pt
-
+
0, 0
-
+
40, 40, 40, 40
-
+
True
-
+
Both
-
- 377, 334
+
+ 459, 408
-
+
0
-
+
Добро пожаловать в FloatTool!
Инструмент для создания флоатов при помощи крафтов CS:GO
-
- textBox2
+
+ outputConsoleBox
-
+
System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel11
-
+
0
-
- 132, 17
+
+ 65, 16
Fill
@@ -170,7 +170,7 @@
0, 10
- 377, 334
+ 459, 408
2
@@ -194,7 +194,7 @@
0, 0
- 377, 10
+ 459, 10
3
@@ -218,7 +218,7 @@
10, 0
- 377, 344
+ 459, 418
4
@@ -242,7 +242,7 @@
0, 0
- 10, 344
+ 10, 418
1
@@ -266,7 +266,7 @@
0, 40
- 387, 344
+ 469, 418
2
@@ -283,217 +283,190 @@
0
-
- Top, Right
+
+ Zoom
-
+
Flat
-
- Microsoft JhengHei Light, 16pt
+
+ Microsoft JhengHei Light, 40px
-
+
NoControl
-
- 219, 0
+
+ 40, 0
-
- 1, 1, 1, 1
+
+ 0, 0, 0, 0
-
- 40, 40
+
+ Yes
-
- 5
+
+ 40, 40
-
- O
+
+ 3
-
- button10
+
+ benchmarkButton
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel9
-
+
0
-
- Top, Right
-
-
- 219, 17
-
-
- 149, 22
+
+ Zoom
-
- GitHub
-
-
- Ссылка на репозиторий проекта
-
-
- 149, 22
-
-
- О программе
-
-
- Информация о разработчике
-
-
- 150, 48
-
-
- contextMenuStrip1
-
-
- System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
+
Flat
-
- Microsoft JhengHei Light, 16pt
+
+ Microsoft JhengHei Light, 40px
-
+
NoControl
-
- 265, 1
+
+ 0, 0
-
- 40, 40
+
+ 0, 0, 0, 0
-
- 4
+
+ Yes
-
- ?
+
+ 40, 40
+
+
+ 3
-
- button9
+
+ settingsButton
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel9
-
+
1
-
+
+ Top, Right
+
+
Flat
-
- Microsoft JhengHei Light, 40px
+
+ Microsoft JhengHei Light, 16pt
-
+
NoControl
-
- 0, 1
-
-
- 1, 1, 1, 1
+
+ 389, 1
-
- Yes
-
-
+
40, 40
-
- 3
+
+ 2
+
+
+ O
-
- button7
+
+ MaximizeButton
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel9
-
+
2
-
+
Top, Right
-
+
Flat
-
+
Microsoft JhengHei Light, 16pt
-
+
NoControl
-
- 305, 1
+
+ 349, 1
-
- 40, 40
+
+ 40, 39
-
+
2
-
+
_
-
- button6
+
+ minimizeBtn
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel9
-
+
3
-
+
Top, Right
-
+
Flat
-
+
Microsoft JhengHei Light, 16pt
-
+
NoControl
-
- 347, 1
+
+ 429, 1
-
+
40, 40
-
+
0
-
+
X
-
- button8
+
+ closeBtn
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel9
-
+
4
@@ -503,7 +476,7 @@
0, 0
- 387, 40
+ 469, 40
3
@@ -533,7 +506,7 @@
NoControl
- 297, 0
+ 379, 0
30, 26
@@ -569,7 +542,7 @@
NoControl
- 327, 0
+ 409, 0
30, 26
@@ -605,7 +578,7 @@
NoControl
- 357, 0
+ 439, 0
30, 26
@@ -635,7 +608,7 @@
0, 0
- 387, 40
+ 469, 40
1
@@ -659,7 +632,7 @@
0, 0
- 387, 384
+ 469, 458
7
@@ -676,34 +649,34 @@
0
-
+
True
-
+
NoControl
-
- 137, 20
+
+ 138, 20
-
- 38, 15
+
+ 36, 15
-
+
1
-
- v.0.4.2
+
+ v.0.5.1
-
- label9
+
+ versionLabel
-
+
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel3
-
+
0
@@ -716,7 +689,7 @@
NoControl
- 1, 2
+ 5, 2
140, 38
@@ -763,109 +736,61 @@
2
-
- None
-
-
- NoControl
-
-
- -1, 7
+
+ 79, 61
-
- 226, 27
+
+ 38, 24
-
- 1
-
-
- progressBar1
-
-
- System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- panel14
-
-
- 0
-
-
- None
-
-
- True
-
-
- Microsoft JhengHei Light, 10pt
-
-
- NoControl
-
-
- 167, 61
-
-
- Yes
-
-
- 88, 22
-
-
- 8
-
-
- :StatTrack
-
-
- MiddleCenter
+
+ 2
-
- checkBox1
+
+ stattrackCheckBox
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ FloatToolGUI.CustomControls.CustomToggleSwitch, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
+
panel6
-
+
0
-
+
Bottom, Right
-
+
Flat
-
+
Microsoft JhengHei Light, 10pt
-
+
NoControl
-
- 156, 90
+
+ 150, 90
-
- 265, 24
+
+ 267, 24
-
+
10
-
+
Проверить
-
- button1
+
+ checkPossibilityBtn
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel6
-
+
1
@@ -881,7 +806,7 @@
NoControl
- 285, 11
+ 285, 10
71, 18
@@ -904,54 +829,132 @@
2
-
+
+ None
+
+
+ Flat
+
+
+ Microsoft JhengHei Light, 9pt
+
+
+ 80% (AK-47 | Safari Mesh + 3)
+
+
+ 20% (Tec-9 | Varicamo)
+
+
+ * Искать всё *
+
+
+ 203, 61
+
+
+ 214, 24
+
+
+ 6
+
+
+ 80% (AK-47 | Safari Mesh + 3)
+
+
+ outcomeSelectorComboBox
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel6
+
+
+ 3
+
+
None
-
+
Flat
-
+
Microsoft JhengHei Light, 9pt
-
+
Factory New
-
+
Minimal Wear
-
+
Field-Tested
-
+
Well-Worn
-
+
Battle-Scarred
-
+
288, 31
-
- 130, 24
+
+ 129, 24
-
+
6
-
+
Field-Tested
-
- comboBox3
+
+ weaponQualityBox
-
+
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel6
-
+
+ 4
+
+
+ None
+
+
+ True
+
+
+ Microsoft JhengHei Light, 10pt
+
+
+ NoControl
+
+
+ 9, 64
+
+
+ 70, 18
+
+
3
+
+ StatTrack:
+
+
+ label12
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel6
+
+
+ 5
+
None
@@ -965,7 +968,7 @@
NoControl
- 9, 11
+ 9, 10
88, 18
@@ -986,7 +989,7 @@
panel6
- 4
+ 6
Bottom, Left
@@ -1001,7 +1004,7 @@
NoControl
- 14, 93
+ 9, 93
127, 18
@@ -1025,142 +1028,178 @@
panel6
- 5
+ 7
-
+
None
-
+
Flat
-
+
Microsoft JhengHei Light, 9pt
-
+
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-19 Bizon
-
+
R8 Revolver
-
+
Sawed-Off
-
+
SCAR-20
-
+
SG 553
-
+
SSG 08
-
+
Tec-9
-
+
UMP-45
-
+
USP-S
-
+
XM1014
-
+
12, 31
-
+
132, 24
-
+
2
-
+
Nova
-
- comboBox1
+
+ weaponTypeBox
-
+
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel6
-
- 6
+
+ 8
+
+
+ None
+
+
+ True
+
+
+ Microsoft JhengHei Light, 10pt
+
+
+ NoControl
+
+
+ 129, 64
+
+
+ 68, 18
+
+
+ 4
+
+
+ Ауткамы:
+
+
+ label11
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel6
+
+
+ 9
None
@@ -1175,7 +1214,7 @@
NoControl
- 147, 11
+ 147, 10
43, 18
@@ -1196,79 +1235,79 @@
panel6
- 7
+ 10
-
+
Bottom
-
+
Microsoft JhengHei Light, 12pt
-
+
0, 120
-
+
10, 12, 10, 12
-
+
2, 25
-
+
427, 25
-
+
0
-
+
Nova | Predator (Field-Tested)
-
+
Right
-
- textBox1
+
+ fullSkinName
-
+
System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel6
-
- 8
+
+ 11
-
+
None
-
+
Flat
-
+
Microsoft JhengHei Light, 9pt
-
+
150, 31
-
+
132, 24
-
+
5
-
+
Predator
-
- comboBox2
+
+ weaponSkinBox
-
+
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel6
-
- 9
+
+ 12
Top
@@ -1294,6 +1333,177 @@
1
+
+ None
+
+
+ 12, 160
+
+
+ 0, 0, 0, 0
+
+
+ 405, 24
+
+
+ 12
+
+
+ downloadProgressBar
+
+
+ FloatToolGUI.CustomProgressBar, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel16
+
+
+ 0
+
+
+ None
+
+
+ Flat
+
+
+ Microsoft JhengHei UI, 12.75pt, style=Bold
+
+
+ NoControl
+
+
+ 169, 32
+
+
+ 70, 32
+
+
+ 11
+
+
+ >
+
+
+ searchmodeGreater_btn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel16
+
+
+ 1
+
+
+ None
+
+
+ Flat
+
+
+ Microsoft JhengHei UI, 12.75pt, style=Bold
+
+
+ NoControl
+
+
+ 91, 32
+
+
+ 70, 32
+
+
+ 11
+
+
+ =
+
+
+ searchmodeEqual_btn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel16
+
+
+ 2
+
+
+ None
+
+
+ Flat
+
+
+ Microsoft JhengHei UI, 12.75pt, style=Bold
+
+
+ NoControl
+
+
+ 12, 32
+
+
+ 70, 32
+
+
+ 11
+
+
+ <
+
+
+ searchmodeLess_btn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel16
+
+
+ 3
+
+
+ None
+
+
+ True
+
+
+ Microsoft JhengHei Light, 10pt
+
+
+ NoControl
+
+
+ 9, 11
+
+
+ 105, 18
+
+
+ 5
+
+
+ Режим поиска:
+
+
+ searchModeLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel16
+
+
+ 4
+
None
@@ -1307,7 +1517,7 @@
NoControl
- 12, 12
+ 9, 70
108, 18
@@ -1328,118 +1538,94 @@
panel16
- 0
+ 5
-
+
None
-
+
Microsoft JhengHei Light, 10pt
-
- 125, 41
+
+ 122, 99
-
+
116, 21
-
+
3
-
- numericUpDown1
+
+ quantityInput
-
+
System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
panel16
-
- 1
-
-
- None
-
-
- 15, 99
-
-
- 225, 42
-
-
- 10
-
-
- panel14
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- panel16
-
-
- 2
+
+ 6
-
+
None
-
+
Microsoft JhengHei Light, 10pt
-
- 125, 72
+
+ 122, 130
-
- 116, 21
+
+ 117, 21
-
+
4
-
- numericUpDown2
+
+ skipValueInput
-
+