diff --git a/CSView.lua b/CSView.lua index f019356..d304a64 100644 --- a/CSView.lua +++ b/CSView.lua @@ -152,7 +152,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -160,7 +160,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -168,7 +168,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else diff --git a/NovetusLauncher/NovetusLauncher/CharacterCustomization.Designer.cs b/NovetusLauncher/NovetusLauncher/CharacterCustomization.Designer.cs index a695717..1b7dc68 100644 --- a/NovetusLauncher/NovetusLauncher/CharacterCustomization.Designer.cs +++ b/NovetusLauncher/NovetusLauncher/CharacterCustomization.Designer.cs @@ -121,6 +121,9 @@ namespace NovetusLauncher this.pictureBox7 = new System.Windows.Forms.PictureBox(); this.listBox7 = new System.Windows.Forms.ListBox(); this.tabPage7 = new System.Windows.Forms.TabPage(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); this.button55 = new System.Windows.Forms.Button(); this.label5 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); @@ -1069,6 +1072,9 @@ namespace NovetusLauncher // // tabPage7 // + this.tabPage7.Controls.Add(this.textBox1); + this.tabPage7.Controls.Add(this.label7); + this.tabPage7.Controls.Add(this.label6); this.tabPage7.Controls.Add(this.button55); this.tabPage7.Controls.Add(this.label5); this.tabPage7.Controls.Add(this.label4); @@ -1080,14 +1086,41 @@ namespace NovetusLauncher this.tabPage7.Name = "tabPage7"; this.tabPage7.Size = new System.Drawing.Size(467, 241); this.tabPage7.TabIndex = 6; - this.tabPage7.Text = "ICON"; + this.tabPage7.Text = "OTHER"; this.tabPage7.UseVisualStyleBackColor = true; // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(113, 213); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(241, 20); + this.textBox1.TabIndex = 9; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.textBox1.TextChanged += new System.EventHandler(this.TextBox1TextChanged); + // + // label7 + // + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label7.Location = new System.Drawing.Point(3, 185); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(461, 2); + this.label7.TabIndex = 8; + this.label7.Text = "label7"; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(105, 191); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(257, 19); + this.label6.TabIndex = 7; + this.label6.Text = "Character Appearance URL (for clients that require it)"; + this.label6.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // // button55 // - this.button55.Location = new System.Drawing.Point(48, 149); + this.button55.Location = new System.Drawing.Point(113, 122); this.button55.Name = "button55"; - this.button55.Size = new System.Drawing.Size(357, 23); + this.button55.Size = new System.Drawing.Size(241, 23); this.button55.TabIndex = 6; this.button55.Text = "Disable Icon"; this.button55.UseVisualStyleBackColor = true; @@ -1096,7 +1129,7 @@ namespace NovetusLauncher // label5 // this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(256, 14); + this.label5.Location = new System.Drawing.Point(278, 9); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(67, 28); this.label5.TabIndex = 5; @@ -1104,11 +1137,11 @@ namespace NovetusLauncher // // label4 // - this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label4.ForeColor = System.Drawing.Color.Red; - this.label4.Location = new System.Drawing.Point(48, 175); + this.label4.Location = new System.Drawing.Point(66, 148); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(357, 52); + this.label4.Size = new System.Drawing.Size(328, 33); this.label4.TabIndex = 4; this.label4.Text = "NOTE: The icon will only function in a client with a custom scoreboard (I.E Early" + " 2011)"; @@ -1117,7 +1150,7 @@ namespace NovetusLauncher // label3 // this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(96, 14); + this.label3.Location = new System.Drawing.Point(118, 9); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(163, 28); this.label3.TabIndex = 3; @@ -1127,9 +1160,9 @@ namespace NovetusLauncher // this.button54.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button54.BackgroundImage"))); this.button54.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.button54.Location = new System.Drawing.Point(302, 45); + this.button54.Location = new System.Drawing.Point(278, 40); this.button54.Name = "button54"; - this.button54.Size = new System.Drawing.Size(103, 98); + this.button54.Size = new System.Drawing.Size(76, 76); this.button54.TabIndex = 2; this.button54.Text = "OBC"; this.button54.TextAlign = System.Drawing.ContentAlignment.BottomCenter; @@ -1140,9 +1173,9 @@ namespace NovetusLauncher // this.button53.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button53.BackgroundImage"))); this.button53.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.button53.Location = new System.Drawing.Point(173, 45); + this.button53.Location = new System.Drawing.Point(195, 40); this.button53.Name = "button53"; - this.button53.Size = new System.Drawing.Size(103, 98); + this.button53.Size = new System.Drawing.Size(76, 76); this.button53.TabIndex = 1; this.button53.Text = "TBC"; this.button53.TextAlign = System.Drawing.ContentAlignment.BottomCenter; @@ -1153,9 +1186,9 @@ namespace NovetusLauncher // this.button52.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button52.BackgroundImage"))); this.button52.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.button52.Location = new System.Drawing.Point(48, 45); + this.button52.Location = new System.Drawing.Point(113, 40); this.button52.Name = "button52"; - this.button52.Size = new System.Drawing.Size(103, 98); + this.button52.Size = new System.Drawing.Size(76, 76); this.button52.TabIndex = 0; this.button52.Text = "BC"; this.button52.TextAlign = System.Drawing.ContentAlignment.BottomCenter; @@ -1164,9 +1197,9 @@ namespace NovetusLauncher // // button43 // - this.button43.Location = new System.Drawing.Point(406, 10); + this.button43.Location = new System.Drawing.Point(415, 12); this.button43.Name = "button43"; - this.button43.Size = new System.Drawing.Size(75, 19); + this.button43.Size = new System.Drawing.Size(70, 19); this.button43.TabIndex = 1; this.button43.Text = "3D Preview"; this.button43.UseVisualStyleBackColor = true; @@ -1206,8 +1239,12 @@ namespace NovetusLauncher this.tabPage6.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit(); this.tabPage7.ResumeLayout(false); + this.tabPage7.PerformLayout(); this.ResumeLayout(false); } + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; private System.Windows.Forms.ListBox listBox8; private System.Windows.Forms.PictureBox pictureBox8; private System.Windows.Forms.Button button57; diff --git a/NovetusLauncher/NovetusLauncher/CharacterCustomization.cs b/NovetusLauncher/NovetusLauncher/CharacterCustomization.cs index 303ce52..f17b54c 100644 --- a/NovetusLauncher/NovetusLauncher/CharacterCustomization.cs +++ b/NovetusLauncher/NovetusLauncher/CharacterCustomization.cs @@ -96,6 +96,9 @@ namespace NovetusLauncher //icon label5.Text = GlobalVars.Custom_Icon_Offline; + + //charid + textBox1.Text = GlobalVars.CharacterID; //discord if (StartedVIAURI == false) @@ -957,6 +960,7 @@ namespace NovetusLauncher GlobalVars.RightArmColorID = 24; GlobalVars.LeftLegColorID = 119; GlobalVars.RightLegColorID = 119; + GlobalVars.CharacterID = ""; GlobalVars.ColorMenu_HeadColor = "Color [A=255, R=245, G=205, B=47]"; GlobalVars.ColorMenu_TorsoColor = "Color [A=255, R=13, G=105, B=172]"; GlobalVars.ColorMenu_LeftArmColor = "Color [A=255, R=245, G=205, B=47]"; @@ -981,23 +985,7 @@ namespace NovetusLauncher string mapfile = GlobalVars.BasePath + "\\charcustom\\preview\\content\\fonts\\3DView.rbxl"; string rbxexe = GlobalVars.BasePath + "\\charcustom\\preview\\3DView.exe"; string quote = "\""; - string args = ""; - if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == true) - { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CS3DView(" + GlobalVars.UserID + ",'" + GlobalVars.PlayerName + "','" + GlobalVars.loadtext + ");" + quote; - } - else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == true) - { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CS3DView(" + GlobalVars.UserID + ",'Player','" + GlobalVars.loadtext + ");" + quote; - } - else if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == false) - { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CS3DView(0,'" + GlobalVars.PlayerName + "','" + GlobalVars.loadtext + ");" + quote; - } - else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == false ) - { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CS3DView(0,'Player','" + GlobalVars.loadtext + ");" + quote; - } + string args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CS3DView(0,'Player','" + GlobalVars.loadtext + ");" + quote; try { Process client = new Process(); @@ -1035,5 +1023,10 @@ namespace NovetusLauncher GlobalVars.Custom_Icon_Offline = "NBC"; label5.Text = GlobalVars.Custom_Icon_Offline; } + + void TextBox1TextChanged(object sender, EventArgs e) + { + GlobalVars.CharacterID = textBox1.Text; + } } } diff --git a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.Designer.cs b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.Designer.cs index 790a749..6e6eb32 100644 --- a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.Designer.cs +++ b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.Designer.cs @@ -42,10 +42,6 @@ namespace NovetusLauncher this.textBox1 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.checkBox5 = new System.Windows.Forms.CheckBox(); - this.button3 = new System.Windows.Forms.Button(); this.checkBox3 = new System.Windows.Forms.CheckBox(); this.label3 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); @@ -55,13 +51,25 @@ namespace NovetusLauncher this.checkBox4 = new System.Windows.Forms.CheckBox(); this.checkBox6 = new System.Windows.Forms.CheckBox(); this.checkBox7 = new System.Windows.Forms.CheckBox(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox5 = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // checkBox1 // - this.checkBox1.Location = new System.Drawing.Point(9, 34); + this.checkBox1.Location = new System.Drawing.Point(12, 64); this.checkBox1.Name = "checkBox1"; - this.checkBox1.Size = new System.Drawing.Size(307, 24); + this.checkBox1.Size = new System.Drawing.Size(210, 24); this.checkBox1.TabIndex = 0; this.checkBox1.Text = "Allows players to set custom names"; this.checkBox1.UseVisualStyleBackColor = true; @@ -69,9 +77,9 @@ namespace NovetusLauncher // // checkBox2 // - this.checkBox2.Location = new System.Drawing.Point(9, 53); + this.checkBox2.Location = new System.Drawing.Point(12, 84); this.checkBox2.Name = "checkBox2"; - this.checkBox2.Size = new System.Drawing.Size(307, 20); + this.checkBox2.Size = new System.Drawing.Size(210, 20); this.checkBox2.TabIndex = 1; this.checkBox2.Text = "Allows the launcher to set custom IDs"; this.checkBox2.UseVisualStyleBackColor = true; @@ -79,16 +87,17 @@ namespace NovetusLauncher // // textBox1 // - this.textBox1.Location = new System.Drawing.Point(9, 280); + this.textBox1.Location = new System.Drawing.Point(10, 181); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(310, 128); + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox1.Size = new System.Drawing.Size(279, 60); this.textBox1.TabIndex = 4; this.textBox1.TextChanged += new System.EventHandler(this.TextBox1TextChanged); // // label1 // - this.label1.Location = new System.Drawing.Point(8, 261); + this.label1.Location = new System.Drawing.Point(10, 162); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(92, 16); this.label1.TabIndex = 5; @@ -96,57 +105,17 @@ namespace NovetusLauncher // // label2 // - this.label2.Location = new System.Drawing.Point(8, 9); + this.label2.Location = new System.Drawing.Point(10, 50); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(307, 30); + this.label2.Size = new System.Drawing.Size(80, 17); this.label2.TabIndex = 6; - this.label2.Text = "Check the checkboxes corresponding to what your client supports."; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(167, 443); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(154, 30); - this.button1.TabIndex = 7; - this.button1.Text = "Save"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.Button1Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(8, 443); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(150, 30); - this.button2.TabIndex = 10; - this.button2.Text = "Load"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.Button2Click); - // - // checkBox5 - // - this.checkBox5.Location = new System.Drawing.Point(9, 71); - this.checkBox5.Name = "checkBox5"; - this.checkBox5.Size = new System.Drawing.Size(310, 20); - this.checkBox5.TabIndex = 11; - this.checkBox5.Text = "Loads assets from servers online"; - this.checkBox5.UseVisualStyleBackColor = true; - this.checkBox5.CheckedChanged += new System.EventHandler(this.CheckBox5CheckedChanged); - // - // button3 - // - this.button3.Location = new System.Drawing.Point(9, 414); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(312, 23); - this.button3.TabIndex = 12; - this.button3.Text = "New clientinfo.txt"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.Button3Click); + this.label2.Text = "Client Options:"; // // checkBox3 // - this.checkBox3.Location = new System.Drawing.Point(9, 89); + this.checkBox3.Location = new System.Drawing.Point(12, 102); this.checkBox3.Name = "checkBox3"; - this.checkBox3.Size = new System.Drawing.Size(306, 20); + this.checkBox3.Size = new System.Drawing.Size(211, 20); this.checkBox3.TabIndex = 13; this.checkBox3.Text = "Client uses a single EXE to run"; this.checkBox3.UseVisualStyleBackColor = true; @@ -154,7 +123,7 @@ namespace NovetusLauncher // // label3 // - this.label3.Location = new System.Drawing.Point(8, 155); + this.label3.Location = new System.Drawing.Point(309, 52); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(92, 13); this.label3.TabIndex = 14; @@ -162,7 +131,7 @@ namespace NovetusLauncher // // textBox2 // - this.textBox2.Location = new System.Drawing.Point(10, 171); + this.textBox2.Location = new System.Drawing.Point(309, 68); this.textBox2.Name = "textBox2"; this.textBox2.ReadOnly = true; this.textBox2.Size = new System.Drawing.Size(311, 20); @@ -171,7 +140,7 @@ namespace NovetusLauncher // // textBox3 // - this.textBox3.Location = new System.Drawing.Point(8, 210); + this.textBox3.Location = new System.Drawing.Point(309, 107); this.textBox3.Name = "textBox3"; this.textBox3.ReadOnly = true; this.textBox3.Size = new System.Drawing.Size(312, 20); @@ -180,7 +149,7 @@ namespace NovetusLauncher // // label4 // - this.label4.Location = new System.Drawing.Point(8, 194); + this.label4.Location = new System.Drawing.Point(309, 91); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(92, 13); this.label4.TabIndex = 17; @@ -188,9 +157,9 @@ namespace NovetusLauncher // // button4 // - this.button4.Location = new System.Drawing.Point(8, 236); + this.button4.Location = new System.Drawing.Point(309, 140); this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(312, 22); + this.button4.Size = new System.Drawing.Size(312, 29); this.button4.TabIndex = 18; this.button4.Text = "Get MD5s from client directory"; this.button4.UseVisualStyleBackColor = true; @@ -198,7 +167,7 @@ namespace NovetusLauncher // // checkBox4 // - this.checkBox4.Location = new System.Drawing.Point(271, 34); + this.checkBox4.Location = new System.Drawing.Point(239, 64); this.checkBox4.Name = "checkBox4"; this.checkBox4.Size = new System.Drawing.Size(50, 24); this.checkBox4.TabIndex = 19; @@ -209,9 +178,9 @@ namespace NovetusLauncher // // checkBox6 // - this.checkBox6.Location = new System.Drawing.Point(9, 105); + this.checkBox6.Location = new System.Drawing.Point(12, 120); this.checkBox6.Name = "checkBox6"; - this.checkBox6.Size = new System.Drawing.Size(307, 26); + this.checkBox6.Size = new System.Drawing.Size(262, 21); this.checkBox6.TabIndex = 20; this.checkBox6.Text = "Fix Scripts and Map Loading for 2007-Early 2008"; this.checkBox6.UseVisualStyleBackColor = true; @@ -219,20 +188,123 @@ namespace NovetusLauncher // // checkBox7 // - this.checkBox7.Location = new System.Drawing.Point(9, 125); + this.checkBox7.Location = new System.Drawing.Point(12, 137); this.checkBox7.Name = "checkBox7"; - this.checkBox7.Size = new System.Drawing.Size(307, 24); + this.checkBox7.Size = new System.Drawing.Size(262, 22); this.checkBox7.TabIndex = 21; this.checkBox7.Text = "Already has security options"; this.checkBox7.UseVisualStyleBackColor = true; this.checkBox7.CheckedChanged += new System.EventHandler(this.CheckBox7CheckedChanged); // + // menuStrip1 + // + this.menuStrip1.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(632, 24); + this.menuStrip1.TabIndex = 22; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.loadToolStripMenuItem, + this.saveToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new System.Drawing.Size(100, 22); + this.newToolStripMenuItem.Text = "New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.NewToolStripMenuItemClick); + // + // loadToolStripMenuItem + // + this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; + this.loadToolStripMenuItem.Size = new System.Drawing.Size(100, 22); + this.loadToolStripMenuItem.Text = "Load"; + this.loadToolStripMenuItem.Click += new System.EventHandler(this.LoadToolStripMenuItemClick); + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.Size = new System.Drawing.Size(100, 22); + this.saveToolStripMenuItem.Text = "Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.SaveToolStripMenuItemClick); + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(309, 204); + this.textBox4.Multiline = true; + this.textBox4.Name = "textBox4"; + this.textBox4.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox4.Size = new System.Drawing.Size(311, 101); + this.textBox4.TabIndex = 23; + this.textBox4.TextChanged += new System.EventHandler(this.TextBox4TextChanged); + // + // label5 + // + this.label5.Location = new System.Drawing.Point(308, 185); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(143, 16); + this.label5.TabIndex = 24; + this.label5.Text = "Client Command Arguments"; + // + // label6 + // + this.label6.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label6.Location = new System.Drawing.Point(0, 28); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(632, 2); + this.label6.TabIndex = 25; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(309, 311); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(311, 21); + this.button1.TabIndex = 26; + this.button1.Text = "Documentation"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.Button1Click); + // + // textBox5 + // + this.textBox5.Location = new System.Drawing.Point(10, 263); + this.textBox5.Multiline = true; + this.textBox5.Name = "textBox5"; + this.textBox5.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox5.Size = new System.Drawing.Size(279, 60); + this.textBox5.TabIndex = 27; + this.textBox5.TextChanged += new System.EventHandler(this.TextBox5TextChanged); + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 244); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(100, 16); + this.label7.TabIndex = 28; + this.label7.Text = "Warning (if needed)"; + // // ClientinfoEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.ClientSize = new System.Drawing.Size(332, 485); + this.ClientSize = new System.Drawing.Size(632, 341); + this.Controls.Add(this.label7); + this.Controls.Add(this.textBox5); + this.Controls.Add(this.button1); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.textBox4); this.Controls.Add(this.checkBox7); this.Controls.Add(this.checkBox6); this.Controls.Add(this.checkBox4); @@ -242,24 +314,35 @@ namespace NovetusLauncher this.Controls.Add(this.textBox2); this.Controls.Add(this.label3); this.Controls.Add(this.checkBox3); - this.Controls.Add(this.button3); - this.Controls.Add(this.checkBox5); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); this.Controls.Add(this.checkBox2); this.Controls.Add(this.checkBox1); + this.Controls.Add(this.menuStrip1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; this.MaximizeBox = false; this.Name = "ClientinfoEditor"; this.Text = "Novetus Client SDK"; this.Load += new System.EventHandler(this.ClientinfoCreatorLoad); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox textBox5; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.CheckBox checkBox7; private System.Windows.Forms.CheckBox checkBox6; private System.Windows.Forms.CheckBox checkBox4; @@ -269,10 +352,6 @@ namespace NovetusLauncher private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Label label3; private System.Windows.Forms.CheckBox checkBox3; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.CheckBox checkBox5; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; diff --git a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.cs b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.cs index 2abc90f..1d5e156 100644 --- a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.cs +++ b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.cs @@ -23,7 +23,7 @@ namespace NovetusLauncher //clientinfocreator private bool UsesPlayerName = false; private bool UsesID = false; - private bool LoadsAssetsOnline = false; + private string Warning = ""; private string SelectedClientDesc = ""; private bool LegacyMode = false; private string SelectedClientMD5 = ""; @@ -32,6 +32,7 @@ namespace NovetusLauncher private bool Locked = false; private bool FixScriptMapMode = false; private bool AlreadyHasSecurity = false; + private string CustomArgs = ""; public ClientinfoEditor() { @@ -74,127 +75,6 @@ namespace NovetusLauncher SelectedClientDesc = textBox1.Text; } - void Button2Click(object sender, EventArgs e) - { - using (var ofd = new OpenFileDialog()) - { - ofd.Filter = "Text files (*.txt)|*.txt"; - ofd.FilterIndex = 2; - ofd.FileName = "clientinfo.txt"; - ofd.Title = "Load clientinfo.txt"; - if (ofd.ShowDialog() == DialogResult.OK) - { - string line1; - string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10; - - using(StreamReader reader = new StreamReader(ofd.FileName)) - { - SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName); - line1 = reader.ReadLine(); - } - - if (!SecurityFuncs.IsBase64String(line1)) - return; - - string ConvertedLine = SecurityFuncs.Base64Decode(line1); - string[] result = ConvertedLine.Split('|'); - Decryptline1 = SecurityFuncs.Base64Decode(result[0]); - Decryptline2 = SecurityFuncs.Base64Decode(result[1]); - Decryptline3 = SecurityFuncs.Base64Decode(result[2]); - Decryptline4 = SecurityFuncs.Base64Decode(result[3]); - Decryptline5 = SecurityFuncs.Base64Decode(result[4]); - Decryptline6 = SecurityFuncs.Base64Decode(result[5]); - Decryptline7 = SecurityFuncs.Base64Decode(result[6]); - Decryptline8 = SecurityFuncs.Base64Decode(result[7]); - Decryptline9 = SecurityFuncs.Base64Decode(result[8]); - Decryptline10 = SecurityFuncs.Base64Decode(result[9]); - - if (GlobalVars.AdminMode != true) - { - Boolean bline8 = Convert.ToBoolean(Decryptline8); - if (bline8 == true) - { - MessageBox.Show("This client is locked and therefore it cannot be loaded.","Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - else - { - Locked = bline8; - checkBox4.Checked = false; - } - } - else - { - Boolean bline8 = Convert.ToBoolean(Decryptline8); - Locked = bline8; - checkBox4.Checked = false; - } - - Boolean bline1 = Convert.ToBoolean(Decryptline1); - UsesPlayerName = bline1; - - Boolean bline2 = Convert.ToBoolean(Decryptline2); - UsesID = bline2; - - Boolean bline3 = Convert.ToBoolean(Decryptline3); - LoadsAssetsOnline = bline3; - - Boolean bline4 = Convert.ToBoolean(Decryptline4); - LegacyMode = bline4; - - SelectedClientMD5 = Decryptline5; - - SelectedClientScriptMD5 = Decryptline6; - - SelectedClientDesc = Decryptline7; - - bool bline9 = Convert.ToBoolean(Decryptline9); - FixScriptMapMode = bline9; - - bool bline10 = Convert.ToBoolean(Decryptline10); - AlreadyHasSecurity = bline10; - - checkBox1.Checked = UsesPlayerName; - checkBox2.Checked = UsesID; - checkBox5.Checked = LoadsAssetsOnline; - checkBox3.Checked = LegacyMode; - checkBox6.Checked = FixScriptMapMode; - checkBox7.Checked = AlreadyHasSecurity; - textBox3.Text = SelectedClientScriptMD5.ToUpper(); - textBox2.Text = SelectedClientMD5.ToUpper(); - textBox1.Text = SelectedClientDesc; - } - } - } - - void Button1Click(object sender, EventArgs e) - { - using (var sfd = new SaveFileDialog()) - { - sfd.Filter = "Text files (*.txt)|*.txt"; - sfd.FilterIndex = 2; - sfd.FileName = "clientinfo.txt"; - sfd.Title = "Save clientinfo.txt"; - - if (sfd.ShowDialog() == DialogResult.OK) - { - string[] lines = { - SecurityFuncs.Base64Encode(UsesPlayerName.ToString()), - SecurityFuncs.Base64Encode(UsesID.ToString()), - SecurityFuncs.Base64Encode(LoadsAssetsOnline.ToString()), - SecurityFuncs.Base64Encode(LegacyMode.ToString()), - SecurityFuncs.Base64Encode(SelectedClientMD5.ToString()), - SecurityFuncs.Base64Encode(SelectedClientScriptMD5.ToString()), - SecurityFuncs.Base64Encode(SelectedClientDesc.ToString()), - SecurityFuncs.Base64Encode(Locked.ToString()), - SecurityFuncs.Base64Encode(FixScriptMapMode.ToString()), - SecurityFuncs.Base64Encode(AlreadyHasSecurity.ToString()) - }; - File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|",lines))); - } - } - } - void ClientinfoCreatorLoad(object sender, EventArgs e) { if (GlobalVars.AdminMode == true) @@ -207,40 +87,6 @@ namespace NovetusLauncher } } - void CheckBox5CheckedChanged(object sender, EventArgs e) - { - if (checkBox5.Checked == true) - { - LoadsAssetsOnline = true; - } - else if (checkBox5.Checked == false) - { - LoadsAssetsOnline = false; - } - } - - void Button3Click(object sender, EventArgs e) - { - UsesPlayerName = false; - UsesID = false; - LoadsAssetsOnline = false; - LegacyMode = false; - FixScriptMapMode = false; - AlreadyHasSecurity = false; - SelectedClientDesc = ""; - SelectedClientMD5 = ""; - SelectedClientScriptMD5 = ""; - checkBox1.Checked = UsesPlayerName; - checkBox2.Checked = UsesID; - checkBox5.Checked = LoadsAssetsOnline; - checkBox3.Checked = LegacyMode; - checkBox6.Checked = FixScriptMapMode; - checkBox7.Checked = AlreadyHasSecurity; - textBox3.Text = SelectedClientScriptMD5.ToUpper(); - textBox2.Text = SelectedClientMD5.ToUpper(); - textBox1.Text = SelectedClientDesc; - } - void CheckBox3CheckedChanged(object sender, EventArgs e) { if (checkBox3.Checked == true) @@ -267,6 +113,15 @@ namespace NovetusLauncher void Button4Click(object sender, EventArgs e) { + if (string.IsNullOrWhiteSpace(SelectedClientInfoPath)) + { + FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog(); + if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) + { + SelectedClientInfoPath = folderBrowserDialog1.SelectedPath; + } + } + string ClientName = ""; if (!LegacyMode) @@ -340,5 +195,171 @@ namespace NovetusLauncher AlreadyHasSecurity = false; } } + + void NewToolStripMenuItemClick(object sender, EventArgs e) + { + UsesPlayerName = false; + UsesID = false; + Warning = ""; + LegacyMode = false; + FixScriptMapMode = false; + AlreadyHasSecurity = false; + SelectedClientDesc = ""; + SelectedClientMD5 = ""; + SelectedClientScriptMD5 = ""; + SelectedClientInfoPath = ""; + CustomArgs = ""; + checkBox1.Checked = UsesPlayerName; + checkBox2.Checked = UsesID; + checkBox3.Checked = LegacyMode; + checkBox6.Checked = FixScriptMapMode; + checkBox7.Checked = AlreadyHasSecurity; + textBox3.Text = SelectedClientScriptMD5.ToUpper(); + textBox2.Text = SelectedClientMD5.ToUpper(); + textBox1.Text = SelectedClientDesc; + textBox4.Text = CustomArgs; + textBox5.Text = Warning; + } + + void LoadToolStripMenuItemClick(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + ofd.Filter = "Text files (*.txt)|*.txt"; + ofd.FilterIndex = 2; + ofd.FileName = "clientinfo.txt"; + ofd.Title = "Load clientinfo.txt"; + if (ofd.ShowDialog() == DialogResult.OK) + { + string line1; + string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10, Decryptline11; + + using(StreamReader reader = new StreamReader(ofd.FileName)) + { + SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName); + line1 = reader.ReadLine(); + } + + if (!SecurityFuncs.IsBase64String(line1)) + return; + + string ConvertedLine = SecurityFuncs.Base64Decode(line1); + string[] result = ConvertedLine.Split('|'); + Decryptline1 = SecurityFuncs.Base64Decode(result[0]); + Decryptline2 = SecurityFuncs.Base64Decode(result[1]); + Decryptline3 = SecurityFuncs.Base64Decode(result[2]); + Decryptline4 = SecurityFuncs.Base64Decode(result[3]); + Decryptline5 = SecurityFuncs.Base64Decode(result[4]); + Decryptline6 = SecurityFuncs.Base64Decode(result[5]); + Decryptline7 = SecurityFuncs.Base64Decode(result[6]); + Decryptline8 = SecurityFuncs.Base64Decode(result[7]); + Decryptline9 = SecurityFuncs.Base64Decode(result[8]); + Decryptline10 = SecurityFuncs.Base64Decode(result[9]); + Decryptline11 = SecurityFuncs.Base64Decode(result[10]); + + if (GlobalVars.AdminMode != true) + { + Boolean bline8 = Convert.ToBoolean(Decryptline8); + if (bline8 == true) + { + MessageBox.Show("This client is locked and therefore it cannot be loaded.","Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + else + { + Locked = bline8; + checkBox4.Checked = Locked; + } + } + else + { + Boolean bline8 = Convert.ToBoolean(Decryptline8); + Locked = bline8; + checkBox4.Checked = Locked; + } + + Boolean bline1 = Convert.ToBoolean(Decryptline1); + UsesPlayerName = bline1; + + Boolean bline2 = Convert.ToBoolean(Decryptline2); + UsesID = bline2; + + Warning = Decryptline3; + + Boolean bline4 = Convert.ToBoolean(Decryptline4); + LegacyMode = bline4; + + SelectedClientMD5 = Decryptline5; + + SelectedClientScriptMD5 = Decryptline6; + + SelectedClientDesc = Decryptline7; + + bool bline9 = Convert.ToBoolean(Decryptline9); + FixScriptMapMode = bline9; + + bool bline10 = Convert.ToBoolean(Decryptline10); + AlreadyHasSecurity = bline10; + + CustomArgs = Decryptline11; + + checkBox1.Checked = UsesPlayerName; + checkBox2.Checked = UsesID; + checkBox3.Checked = LegacyMode; + checkBox6.Checked = FixScriptMapMode; + checkBox7.Checked = AlreadyHasSecurity; + textBox3.Text = SelectedClientScriptMD5.ToUpper(); + textBox2.Text = SelectedClientMD5.ToUpper(); + textBox1.Text = SelectedClientDesc; + textBox4.Text = CustomArgs; + textBox5.Text = Warning; + } + } + } + + void SaveToolStripMenuItemClick(object sender, EventArgs e) + { + using (var sfd = new SaveFileDialog()) + { + sfd.Filter = "Text files (*.txt)|*.txt"; + sfd.FilterIndex = 2; + sfd.FileName = "clientinfo.txt"; + sfd.Title = "Save clientinfo.txt"; + + if (sfd.ShowDialog() == DialogResult.OK) + { + string[] lines = { + SecurityFuncs.Base64Encode(UsesPlayerName.ToString()), + SecurityFuncs.Base64Encode(UsesID.ToString()), + SecurityFuncs.Base64Encode(Warning.ToString()), + SecurityFuncs.Base64Encode(LegacyMode.ToString()), + SecurityFuncs.Base64Encode(SelectedClientMD5.ToString()), + SecurityFuncs.Base64Encode(SelectedClientScriptMD5.ToString()), + SecurityFuncs.Base64Encode(SelectedClientDesc.ToString()), + SecurityFuncs.Base64Encode(Locked.ToString()), + SecurityFuncs.Base64Encode(FixScriptMapMode.ToString()), + SecurityFuncs.Base64Encode(AlreadyHasSecurity.ToString()), + SecurityFuncs.Base64Encode(CustomArgs.ToString()) + }; + File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|",lines))); + SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName); + } + } + } + + void TextBox4TextChanged(object sender, EventArgs e) + { + CustomArgs = textBox4.Text; + } + + void Button1Click(object sender, EventArgs e) + { + MessageBox.Show(File.ReadAllText("documentation.txt"), "Novetus Client SDK | Documentation", MessageBoxButtons.OK); + } + + void TextBox5TextChanged(object sender, EventArgs e) + { + Warning = textBox5.Text; + } } } diff --git a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.resx b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.resx index dc6496e..385513c 100644 --- a/NovetusLauncher/NovetusLauncher/ClientinfoCreator.resx +++ b/NovetusLauncher/NovetusLauncher/ClientinfoCreator.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + diff --git a/NovetusLauncher/NovetusLauncher/LauncherFuncs.cs b/NovetusLauncher/NovetusLauncher/LauncherFuncs.cs index 6abb79c..40774cd 100644 --- a/NovetusLauncher/NovetusLauncher/LauncherFuncs.cs +++ b/NovetusLauncher/NovetusLauncher/LauncherFuncs.cs @@ -20,6 +20,8 @@ using System.Text.RegularExpressions; using Microsoft.Win32; using System.Runtime.InteropServices; using System.Security.Principal; +using System.Linq; +using System.ComponentModel; namespace NovetusLauncher { @@ -112,7 +114,7 @@ namespace NovetusLauncher public static void ReadCustomizationValues(string cfgpath) { string line1; - string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10, Decryptline11, Decryptline12, Decryptline13, Decryptline14, Decryptline15, Decryptline16, Decryptline17, Decryptline18, Decryptline19, Decryptline20, Decryptline21; + string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10, Decryptline11, Decryptline12, Decryptline13, Decryptline14, Decryptline15, Decryptline16, Decryptline17, Decryptline18, Decryptline19, Decryptline20, Decryptline21, Decryptline22; using(StreamReader reader = new StreamReader(cfgpath)) { @@ -145,6 +147,7 @@ namespace NovetusLauncher Decryptline19 = SecurityFuncs.Base64Decode(result[18]); Decryptline20 = SecurityFuncs.Base64Decode(result[19]); Decryptline21 = SecurityFuncs.Base64Decode(result[20]); + Decryptline22 = SecurityFuncs.Base64Decode(result[21]); GlobalVars.Custom_Hat1ID_Offline = Decryptline1; GlobalVars.Custom_Hat2ID_Offline = Decryptline2; @@ -182,6 +185,8 @@ namespace NovetusLauncher GlobalVars.Custom_Pants_Offline = Decryptline20; GlobalVars.Custom_Icon_Offline = Decryptline21; + GlobalVars.CharacterID = Decryptline22; + ReloadLoadtextValue(); } @@ -208,7 +213,8 @@ namespace NovetusLauncher SecurityFuncs.Base64Encode(GlobalVars.Custom_T_Shirt_Offline.ToString()), SecurityFuncs.Base64Encode(GlobalVars.Custom_Shirt_Offline.ToString()), SecurityFuncs.Base64Encode(GlobalVars.Custom_Pants_Offline.ToString()), - SecurityFuncs.Base64Encode(GlobalVars.Custom_Icon_Offline.ToString()) + SecurityFuncs.Base64Encode(GlobalVars.Custom_Icon_Offline.ToString()), + SecurityFuncs.Base64Encode(GlobalVars.CharacterID.ToString()) }; File.WriteAllText(cfgpath, SecurityFuncs.Base64Encode(string.Join("|",lines))); @@ -232,6 +238,7 @@ namespace NovetusLauncher GlobalVars.RightArmColorID = 24; GlobalVars.LeftLegColorID = 119; GlobalVars.RightLegColorID = 119; + GlobalVars.CharacterID = ""; GlobalVars.ColorMenu_HeadColor = "Color [A=255, R=245, G=205, B=47]"; GlobalVars.ColorMenu_TorsoColor = "Color [A=255, R=13, G=105, B=172]"; GlobalVars.ColorMenu_LeftArmColor = "Color [A=255, R=245, G=205, B=47]"; @@ -263,7 +270,7 @@ namespace NovetusLauncher public static void ReadClientValues(string clientpath) { string line1; - string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline9, Decryptline10;; + string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline9, Decryptline10, Decryptline11; using(StreamReader reader = new StreamReader(clientpath)) { @@ -284,6 +291,7 @@ namespace NovetusLauncher Decryptline7 = SecurityFuncs.Base64Decode(result[6]); Decryptline9 = SecurityFuncs.Base64Decode(result[8]); Decryptline10 = SecurityFuncs.Base64Decode(result[9]); + Decryptline11 = SecurityFuncs.Base64Decode(result[10]); bool bline1 = Convert.ToBoolean(Decryptline1); GlobalVars.UsesPlayerName = bline1; @@ -291,8 +299,7 @@ namespace NovetusLauncher bool bline2 = Convert.ToBoolean(Decryptline2); GlobalVars.UsesID = bline2; - bool bline3 = Convert.ToBoolean(Decryptline3); - GlobalVars.LoadsAssetsOnline = bline3; + GlobalVars.Warning = Decryptline3; bool bline4 = Convert.ToBoolean(Decryptline4); GlobalVars.LegacyMode = bline4; @@ -308,6 +315,8 @@ namespace NovetusLauncher bool bline10 = Convert.ToBoolean(Decryptline10); GlobalVars.AlreadyHasSecurity = bline10; + + GlobalVars.CustomArgs = Decryptline11; } public static void GeneratePlayerID() @@ -528,6 +537,9 @@ namespace NovetusLauncher /// public class SecurityFuncs { + [DllImport("user32.dll")] + static extern int SetWindowText(IntPtr hWnd, string text); + public SecurityFuncs() { } @@ -568,7 +580,7 @@ namespace NovetusLauncher public static bool checkClientMD5(string client) { - if (GlobalVars.AdminMode != true) + if (GlobalVars.AdminMode != true || GlobalVars.AlreadyHasSecurity != true) { string rbxexe = ""; if (GlobalVars.LegacyMode == true) @@ -604,7 +616,7 @@ namespace NovetusLauncher public static bool checkScriptMD5(string client) { - if (GlobalVars.AdminMode != true) + if (GlobalVars.AdminMode != true|| GlobalVars.AlreadyHasSecurity != true) { string rbxscript = GlobalVars.BasePath + "\\clients\\" + client + "\\content\\scripts\\" + GlobalVars.ScriptName + ".lua"; using (var md5 = MD5.Create()) @@ -648,6 +660,38 @@ namespace NovetusLauncher return WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid); } } + + public static string RandomString(int length) + { + CryptoRandom random = new CryptoRandom(); + const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray()); + } + + public static void RenameWindow(Process exe, ScriptGenerator.ScriptType type) + { + int time = 1000; + BackgroundWorker worker = new BackgroundWorker(); + worker.DoWork += (obj, e) => WorkerDoWork(exe, type, time); + worker.RunWorkerAsync(); + } + + private static void WorkerDoWork(Process exe, ScriptGenerator.ScriptType type, int time) + { + if (exe.IsRunning() == true) + { + while (exe.IsRunning() == true) + { + SetWindowText(exe.MainWindowHandle, "Novetus - " + GlobalVars.SelectedClient + " " + ScriptGenerator.GetNameForType(type) + " [" + RandomString(12) + "]"); + Thread.Sleep(time); + } + } + else + { + Thread.Sleep(time); + RenameWindow(exe, type); + } + } } public static class RichTextBoxExtensions @@ -663,6 +707,17 @@ namespace NovetusLauncher } } + public static class ProcessExtensions + { + public static bool IsRunning(this Process process) + { + try {Process.GetProcessById(process.Id);} + catch (InvalidOperationException) { return false; } + catch (ArgumentException){return false;} + return true; + } + } + public class CryptoRandom : RandomNumberGenerator { private static RandomNumberGenerator r; @@ -730,7 +785,8 @@ namespace NovetusLauncher Client = 0, Server = 1, Solo = 2, - Studio = 3 + Studio = 3, + None = 4 } public static string GetScriptFuncForType(ScriptType type, string client) @@ -809,6 +865,30 @@ namespace NovetusLauncher } } + public static string GetNameForType(ScriptType type) + { + if (type == ScriptType.Client) + { + return "Client"; + } + else if (type == ScriptType.Server) + { + return "Server"; + } + else if (type == ScriptType.Solo) + { + return "Play Solo"; + } + else if (type == ScriptType.Studio) + { + return "Studio"; + } + else + { + return ""; + } + } + /* public static string[] GetScriptContents(string scriptPath) { @@ -956,13 +1036,131 @@ namespace NovetusLauncher } } + public class ClientScript + { + private static string hatdir = "rbxasset://../../../charcustom/hats/"; + private static string facedir = "rbxasset://../../../charcustom/faces/"; + private static string headdir = "rbxasset://../../../charcustom/heads/"; + private static string tshirtdir = "rbxasset://../../../charcustom/tshirts/"; + private static string shirtdir = "rbxasset://../../../charcustom/shirts/"; + private static string pantsdir = "rbxasset://../../../charcustom/pants/"; + + public static string GetArgsFromTag(string code, string tag, string endtag) + { + int pFrom = code.IndexOf(tag) + tag.Length; + int pTo = code.LastIndexOf(endtag); + + string result = code.Substring(pFrom, pTo - pFrom); + + return result; + } + + public static ScriptGenerator.ScriptType GetTypeFromTag(string tag, string endtag) + { + if (tag.Contains("client") && endtag.Contains("client")) + { + return ScriptGenerator.ScriptType.Client; + } + else if (tag.Contains("server") && endtag.Contains("server") || tag.Contains("no3d") && endtag.Contains("no3d")) + { + return ScriptGenerator.ScriptType.Server; + } + else if (tag.Contains("solo") && endtag.Contains("solo")) + { + return ScriptGenerator.ScriptType.Solo; + } + else if (tag.Contains("studio") && endtag.Contains("studio")) + { + return ScriptGenerator.ScriptType.Studio; + } + else + { + return ScriptGenerator.ScriptType.None; + } + } + + public static int ConvertIconStringToInt() + { + if (GlobalVars.Custom_Icon_Offline == "BC") + { + return 1; + } + else if (GlobalVars.Custom_Icon_Offline == "TBC") + { + return 2; + } + else if (GlobalVars.Custom_Icon_Offline == "OBC") + { + return 3; + } + else if (GlobalVars.Custom_Icon_Offline == "NBC") + { + return 0; + } + + return 0; + } + + public static string CompileScript(string code, string tag, string endtag, string mapfile, string luafile, string rbxexe) + { + if (GlobalVars.FixScriptMapMode) + { + ScriptGenerator.GenerateScriptForClient(GetTypeFromTag(tag, endtag), GlobalVars.SelectedClient); + } + + string extractedCode = GetArgsFromTag(code, tag, endtag); + + string md5dir = GlobalVars.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(Assembly.GetExecutingAssembly().Location) : ""; + string md5script = GlobalVars.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptName + ".lua") : ""; + string md5exe = GlobalVars.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(rbxexe) : ""; + string compiled = extractedCode.Replace("%mapfile%",mapfile) + .Replace("%luafile%",luafile) + .Replace("%charapp%",GlobalVars.CharacterID) + .Replace("%ip%",GlobalVars.IP) + .Replace("%port%",GlobalVars.RobloxPort.ToString()) + .Replace("%name%",GlobalVars.PlayerName) + .Replace("%icone%",ConvertIconStringToInt().ToString()) + .Replace("%icon%",GlobalVars.Custom_Icon_Offline) + .Replace("%id%",GlobalVars.UserID.ToString()) + .Replace("%face%",GlobalVars.Custom_Face_Offline) + .Replace("%head%",GlobalVars.Custom_Head_Offline) + .Replace("%tshirt%",GlobalVars.Custom_T_Shirt_Offline) + .Replace("%shirt%",GlobalVars.Custom_Shirt_Offline) + .Replace("%pants%",GlobalVars.Custom_Pants_Offline) + .Replace("%hat1%",GlobalVars.Custom_Hat1ID_Offline) + .Replace("%hat2%",GlobalVars.Custom_Hat2ID_Offline) + .Replace("%hat3%",GlobalVars.Custom_Hat3ID_Offline) + .Replace("%faced%",facedir + GlobalVars.Custom_Face_Offline) + .Replace("%headd%",headdir + GlobalVars.Custom_Head_Offline) + .Replace("%tshirtd%",tshirtdir + GlobalVars.Custom_T_Shirt_Offline) + .Replace("%shirtd%",shirtdir + GlobalVars.Custom_Shirt_Offline) + .Replace("%pantsd%",pantsdir + GlobalVars.Custom_Pants_Offline) + .Replace("%hat1d%",hatdir + GlobalVars.Custom_Hat1ID_Offline) + .Replace("%hat2d%",hatdir + GlobalVars.Custom_Hat2ID_Offline) + .Replace("%hat3d%",hatdir + GlobalVars.Custom_Hat3ID_Offline) + .Replace("%headcolor%",GlobalVars.HeadColorID.ToString()) + .Replace("%torsocolor%",GlobalVars.TorsoColorID.ToString()) + .Replace("%larmcolor%",GlobalVars.LeftArmColorID.ToString()) + .Replace("%llegcolor%",GlobalVars.LeftLegColorID.ToString()) + .Replace("%rarmcolor%",GlobalVars.RightArmColorID.ToString()) + .Replace("%rlegcolor%",GlobalVars.RightLegColorID.ToString()) + .Replace("%rlegcolor%",GlobalVars.SelectedClientMD5) + .Replace("%md5launcher%",md5dir) + .Replace("%md5script%",GlobalVars.SelectedClientMD5) + .Replace("%md5exe%",GlobalVars.SelectedClientScriptMD5) + .Replace("%md5scriptd%",md5script) + .Replace("%md5exed%",md5exe) + .Replace("%limit%",GlobalVars.PlayerLimit.ToString()); + return compiled; + } + } + public static class GlobalVars { public static string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); public static string ClientDir = (BasePath + "\\clients").Replace(@"\",@"\\"); public static string MapsDir = (BasePath + "\\maps").Replace(@"\",@"\\"); public static string CustomPlayerDir = (BasePath + "\\charcustom").Replace(@"\",@"\\"); - public static string AddonDir = (BasePath + "\\addons").Replace(@"\",@"\\"); public static string IP = "localhost"; public static string Version = ""; public static string SharedArgs = ""; @@ -989,12 +1187,13 @@ namespace NovetusLauncher public static bool UsesPlayerName = false; public static bool UsesID = true; public static string SelectedClientDesc = ""; - public static bool LoadsAssetsOnline = false; + public static string Warning = ""; public static bool LegacyMode = false; public static string SelectedClientMD5 = ""; public static string SelectedClientScriptMD5 = ""; public static bool FixScriptMapMode = false; public static bool AlreadyHasSecurity = false; + public static string CustomArgs = ""; //charcustom public static string Custom_Hat1ID_Offline = "NoHat.rbxm"; public static string Custom_Hat2ID_Offline = "NoHat.rbxm"; @@ -1012,6 +1211,7 @@ namespace NovetusLauncher public static int LeftLegColorID = 119; public static int RightLegColorID = 119; public static string loadtext = ""; + public static string CharacterID =""; //color menu. public static string ColorMenu_HeadColor = "Color [A=255, R=245, G=205, B=47]"; public static string ColorMenu_TorsoColor = "Color [A=255, R=13, G=105, B=172]"; diff --git a/NovetusLauncher/NovetusLauncher/LoaderForm.cs b/NovetusLauncher/NovetusLauncher/LoaderForm.cs index e81e36c..35a4154 100644 --- a/NovetusLauncher/NovetusLauncher/LoaderForm.cs +++ b/NovetusLauncher/NovetusLauncher/LoaderForm.cs @@ -77,25 +77,31 @@ namespace NovetusLauncher } string quote = "\""; string args = ""; - if (!GlobalVars.FixScriptMapMode) + if (GlobalVars.CustomArgs.Equals("%args%")) { - args = "-script " + quote + "dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Client, client) + quote; + if (!GlobalVars.FixScriptMapMode) + { + args = "-script " + quote + "dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Client, client) + quote; + } + else + { + ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Client, client); + args = "-script " + quote + luafile + quote; + } } else { - ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Client, client); - args = "-script " + quote + luafile + quote; + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", "", luafile, rbxexe); } try { - if (!GlobalVars.AlreadyHasSecurity) + if (!GlobalVars.AdminMode || !GlobalVars.AlreadyHasSecurity) { if (SecurityFuncs.checkClientMD5(client) == true) { if (SecurityFuncs.checkScriptMD5(client) == true) { - Process.Start(rbxexe, args); - this.Close(); + LaunchClient(rbxexe,args); } else { @@ -109,8 +115,7 @@ namespace NovetusLauncher } else { - Process.Start(rbxexe, args); - this.Close(); + LaunchClient(rbxexe,args); } } catch (Exception) @@ -119,6 +124,35 @@ namespace NovetusLauncher } } + private void LaunchClient(string rbxexe, string args) + { + Process clientproc = new Process(); + clientproc.StartInfo.FileName = rbxexe; + clientproc.StartInfo.Arguments = args; + clientproc.EnableRaisingEvents = true; + clientproc.Exited += new EventHandler(ClientExited); + clientproc.Start(); + SecurityFuncs.RenameWindow(clientproc, ScriptGenerator.ScriptType.Client); + GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; + GlobalVars.presence.details = ""; + GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Game"; + GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); + GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In " + GlobalVars.SelectedClient + " Game"; + DiscordRpc.UpdatePresence(ref GlobalVars.presence); + this.Visible = false; + } + + void ClientExited(object sender, EventArgs e) + { + GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; + GlobalVars.presence.state = "In Launcher"; + GlobalVars.presence.details = "Selected " + GlobalVars.SelectedClient; + GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); + GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In Launcher"; + DiscordRpc.UpdatePresence(ref GlobalVars.presence); + this.Close(); + } + private void CheckIfFinished(object state) { if (GlobalVars.ReadyToLaunch == false) diff --git a/NovetusLauncher/NovetusLauncher/MainForm.Designer.cs b/NovetusLauncher/NovetusLauncher/MainForm.Designer.cs index 972b44f..8bfab6a 100644 --- a/NovetusLauncher/NovetusLauncher/MainForm.Designer.cs +++ b/NovetusLauncher/NovetusLauncher/MainForm.Designer.cs @@ -583,7 +583,6 @@ namespace NovetusLauncher this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(378, 51); this.label30.TabIndex = 3; - this.label30.Text = resources.GetString("label30.Text"); this.label30.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.label30.Visible = false; // diff --git a/NovetusLauncher/NovetusLauncher/MainForm.cs b/NovetusLauncher/NovetusLauncher/MainForm.cs index c9727a3..ca13efb 100644 --- a/NovetusLauncher/NovetusLauncher/MainForm.cs +++ b/NovetusLauncher/NovetusLauncher/MainForm.cs @@ -144,7 +144,7 @@ namespace NovetusLauncher if (GlobalVars.CloseOnLaunch == true) { - this.Close(); + this.Visible = false; } } @@ -155,7 +155,7 @@ namespace NovetusLauncher if (GlobalVars.CloseOnLaunch == true) { - this.Close(); + this.Visible = false; } } @@ -169,7 +169,7 @@ namespace NovetusLauncher StartStudio(); if (GlobalVars.CloseOnLaunch == true) { - this.Close(); + this.Visible = false; } } @@ -325,14 +325,15 @@ namespace NovetusLauncher GlobalVars.LocalPlayMode = false; } - if (GlobalVars.LoadsAssetsOnline == false) + if (!string.IsNullOrWhiteSpace(GlobalVars.Warning)) + { + label30.Text = GlobalVars.Warning; + label30.Visible = true; + } + else { label30.Visible = false; } - else if (GlobalVars.LoadsAssetsOnline == true) - { - label30.Visible = true; - } textBox6.Text = GlobalVars.SelectedClientDesc; label26.Text = GlobalVars.SelectedClient; @@ -524,7 +525,7 @@ namespace NovetusLauncher if (GlobalVars.CloseOnLaunch == true) { - this.Close(); + this.Visible = false; } } @@ -535,7 +536,7 @@ namespace NovetusLauncher if (GlobalVars.CloseOnLaunch == true) { - this.Close(); + this.Visible = false; } } @@ -636,55 +637,38 @@ namespace NovetusLauncher } string quote = "\""; string args = ""; - if (!GlobalVars.FixScriptMapMode) + if (GlobalVars.CustomArgs.Equals("%args%")) { - args = "-script " + quote + "dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Client, GlobalVars.SelectedClient) + quote; + if (!GlobalVars.FixScriptMapMode) + { + args = "-script " + quote + "dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Client, GlobalVars.SelectedClient) + quote; + } + else + { + ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Client, GlobalVars.SelectedClient); + args = "-script " + quote + luafile + quote; + } } else { - ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Client, GlobalVars.SelectedClient); - args = "-script " + quote + luafile + quote; + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", "", luafile, rbxexe); } try { ConsolePrint("Client Loaded.", 4); - if (!GlobalVars.AlreadyHasSecurity) + if (!GlobalVars.AdminMode || !GlobalVars.AlreadyHasSecurity) { if (SecurityFuncs.checkClientMD5(GlobalVars.SelectedClient) == true) { if (SecurityFuncs.checkScriptMD5(GlobalVars.SelectedClient) == true) { - Process client = new Process(); - client.StartInfo.FileName = rbxexe; - client.StartInfo.Arguments = args; - client.EnableRaisingEvents = true; - ReadClientValues(GlobalVars.SelectedClient); - client.Exited += new EventHandler(ClientExited); - client.Start(); - GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; - GlobalVars.presence.details = ""; - GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Game"; - GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); - GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In " + GlobalVars.SelectedClient + " Game"; - DiscordRpc.UpdatePresence(ref GlobalVars.presence); + OpenClient(rbxexe,args); } } } else { - Process client = new Process(); - client.StartInfo.FileName = rbxexe; - client.StartInfo.Arguments = args; - client.EnableRaisingEvents = true; - ReadClientValues(GlobalVars.SelectedClient); - client.Exited += new EventHandler(ClientExited); - client.Start(); - GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; - GlobalVars.presence.details = ""; - GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Game"; - GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); - GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In " + GlobalVars.SelectedClient + " Game"; - DiscordRpc.UpdatePresence(ref GlobalVars.presence); + OpenClient(rbxexe,args); } } catch (Exception ex) @@ -694,6 +678,24 @@ namespace NovetusLauncher } } + void OpenClient(string rbxexe, string args) + { + Process client = new Process(); + client.StartInfo.FileName = rbxexe; + client.StartInfo.Arguments = args; + client.EnableRaisingEvents = true; + ReadClientValues(GlobalVars.SelectedClient); + client.Exited += new EventHandler(ClientExited); + client.Start(); + SecurityFuncs.RenameWindow(client, ScriptGenerator.ScriptType.Client); + GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; + GlobalVars.presence.details = ""; + GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Game"; + GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); + GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In " + GlobalVars.SelectedClient + " Game"; + DiscordRpc.UpdatePresence(ref GlobalVars.presence); + } + void ClientExited(object sender, EventArgs e) { GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; @@ -702,6 +704,10 @@ namespace NovetusLauncher GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In Launcher"; DiscordRpc.UpdatePresence(ref GlobalVars.presence); + if (GlobalVars.CloseOnLaunch == true) + { + this.Visible = true; + } } void StartSolo() @@ -727,14 +733,21 @@ namespace NovetusLauncher } string quote = "\""; string args = ""; - if (!GlobalVars.FixScriptMapMode) + if (GlobalVars.CustomArgs.Equals("%args%")) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Solo, GlobalVars.SelectedClient) + quote; + if (!GlobalVars.FixScriptMapMode) + { + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Solo, GlobalVars.SelectedClient) + quote; + } + else + { + ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Solo, GlobalVars.SelectedClient); + args = "-script " + quote + luafile + quote + " " + quote + mapfile + quote; + } } else { - ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Solo, GlobalVars.SelectedClient); - args = "-script " + quote + luafile + quote + " " + quote + mapfile + quote; + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", mapfile, luafile, rbxexe); } try { @@ -746,6 +759,7 @@ namespace NovetusLauncher ReadClientValues(GlobalVars.SelectedClient); client.Exited += new EventHandler(StudioExited); client.Start(); + SecurityFuncs.RenameWindow(client, ScriptGenerator.ScriptType.Solo); GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; GlobalVars.presence.details = GlobalVars.Map; GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Solo Game"; @@ -783,20 +797,41 @@ namespace NovetusLauncher } string quote = "\""; string args = ""; - if (!GlobalVars.FixScriptMapMode) + if (GlobalVars.CustomArgs.Equals("%args%")) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Server, GlobalVars.SelectedClient) + quote + (no3d ? " -no3d" : ""); + if (!GlobalVars.FixScriptMapMode) + { + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Server, GlobalVars.SelectedClient) + quote + (no3d ? " -no3d" : ""); + } + else + { + ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Server, GlobalVars.SelectedClient); + args = "-script " + quote + luafile + quote + (no3d ? " -no3d" : "") + " " + quote + mapfile + quote; + } } else { - ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Server, GlobalVars.SelectedClient); - args = "-script " + quote + luafile + quote + (no3d ? " -no3d" : "") + " " + quote + mapfile + quote; + if (!no3d) + { + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", mapfile, luafile, rbxexe); + } + else + { + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", mapfile, luafile, rbxexe); + } } try { //when we add upnp, change this ConsolePrint("Server Loaded.", 4); - Process.Start(rbxexe, args); + Process client = new Process(); + client.StartInfo.FileName = rbxexe; + client.StartInfo.Arguments = args; + client.EnableRaisingEvents = true; + ReadClientValues(GlobalVars.SelectedClient); + client.Exited += new EventHandler(ServerExited); + client.Start(); + SecurityFuncs.RenameWindow(client, ScriptGenerator.ScriptType.Server); } catch (Exception ex) { @@ -805,6 +840,14 @@ namespace NovetusLauncher } } + void ServerExited(object sender, EventArgs e) + { + if (GlobalVars.CloseOnLaunch == true) + { + this.Visible = true; + } + } + void StartStudio() { string luafile = ""; @@ -828,14 +871,21 @@ namespace NovetusLauncher } string quote = "\""; string args = ""; - if (!GlobalVars.FixScriptMapMode) + if (GlobalVars.CustomArgs.Equals("%args%")) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Studio, GlobalVars.SelectedClient) + quote; + if (!GlobalVars.FixScriptMapMode) + { + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); " + ScriptGenerator.GetScriptFuncForType(ScriptGenerator.ScriptType.Studio, GlobalVars.SelectedClient) + quote; + } + else + { + ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Studio, GlobalVars.SelectedClient); + args = "-script " + quote + luafile + quote + " " + quote + mapfile + quote; + } } else { - ScriptGenerator.GenerateScriptForClient(ScriptGenerator.ScriptType.Studio, GlobalVars.SelectedClient); - args = "-script " + quote + luafile + quote + " " + quote + mapfile + quote; + args = ClientScript.CompileScript(GlobalVars.CustomArgs, "", "", mapfile, luafile, rbxexe); } try { @@ -847,6 +897,7 @@ namespace NovetusLauncher ReadClientValues(GlobalVars.SelectedClient); client.Exited += new EventHandler(StudioExited); client.Start(); + SecurityFuncs.RenameWindow(client, ScriptGenerator.ScriptType.Studio); GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large; GlobalVars.presence.details = GlobalVars.Map; GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Studio"; @@ -869,6 +920,10 @@ namespace NovetusLauncher GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow(); GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | In Launcher"; DiscordRpc.UpdatePresence(ref GlobalVars.presence); + if (GlobalVars.CloseOnLaunch == true) + { + this.Visible = true; + } } void ConsoleProcessCommands(string command) diff --git a/NovetusLauncher/NovetusLauncher/MainForm.resx b/NovetusLauncher/NovetusLauncher/MainForm.resx index 73b7815..ba42c57 100644 --- a/NovetusLauncher/NovetusLauncher/MainForm.resx +++ b/NovetusLauncher/NovetusLauncher/MainForm.resx @@ -45800,9 +45800,6 @@ - If you tried to connect to the server and you get an error, REJOIN THE SERVER. - - WARNING: This client loads assets directly from a server. This means that you may not be able to play it over a LAN or local connection without internet access. This may also mean that some things won't load (i.e the healthbar) - iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAYAAACaOMR5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 diff --git a/NovetusLauncher/NovetusLauncher/ServerInfo.cs b/NovetusLauncher/NovetusLauncher/ServerInfo.cs index 271fe02..2abb906 100644 --- a/NovetusLauncher/NovetusLauncher/ServerInfo.cs +++ b/NovetusLauncher/NovetusLauncher/ServerInfo.cs @@ -72,7 +72,7 @@ namespace NovetusLauncher { try { - ipAddress = wc.DownloadString("http://icanhazip.com/"); + ipAddress = wc.DownloadString("http://ipv4.icanhazip.com/"); } catch (Exception) { diff --git a/clients/2006S/content/scripts/CSMPFunctions.lua b/clients/2006S/content/scripts/CSMPFunctions.lua index 9519e7e..bf218b4 100644 --- a/clients/2006S/content/scripts/CSMPFunctions.lua +++ b/clients/2006S/content/scripts/CSMPFunctions.lua @@ -106,112 +106,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso end end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2006S" + newName.Name = "Name" end rbxversion = version() @@ -223,44 +183,47 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Remo Server:start(Port, 20) RunService:run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService = game:GetService("Players") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) + end) + + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + local ch = Player.Character + if (ch ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - while true do - wait(0.001) - if (Player.Character ~= nil) then - if (Player.Character.Humanoid.Health == 0) then - wait(5) - Player:LoadCharacter() - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - elseif (Player.Character.Parent == nil) then - wait(5) - Player:LoadCharacter() -- to make sure nobody is deleted. - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - end + + while true do + wait(0.001) + local ch = Player.Character + if (ch ~= nil) then + if (ch.Humanoid.Health == 0) then + wait(5) + Player:LoadCharacter() + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) + elseif (ch.Parent == nil) then + wait(5) + Player:LoadCharacter() -- to make sure nobody is deleted. + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + end + end) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() pcall(function() game.Close:connect(function() Server:Stop() end) end) InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) Server.IncommingConnection:connect(IncommingConnection) end diff --git a/clients/2007M/content/scripts/CSMPFunctions.lua b/clients/2007M/content/scripts/CSMPFunctions.lua index 7bcedf1..5304c00 100644 --- a/clients/2007M/content/scripts/CSMPFunctions.lua +++ b/clients/2007M/content/scripts/CSMPFunctions.lua @@ -134,7 +134,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -142,7 +142,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -150,7 +150,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else @@ -178,112 +178,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Value = 3 end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2007M" + newName.Name = "Name" end print("ROBLOX Client version '0.3.512.0' loaded.") @@ -291,49 +251,52 @@ print("ROBLOX Client version '0.3.512.0' loaded.") function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,RemoveTeapotTurret) Server = game:GetService("NetworkServer") RunService = game:GetService("RunService") + PlayerService = game:GetService("Players") Server:start(Port, 20) RunService:run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + local ch = Player.Character + if (ch ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - coroutine.resume(coroutine.create(function() - while Player ~= nil do - wait(0.1) - if (Player.Character ~= nil) then - if (Player.Character.Humanoid.Health == 0) then - wait(5) - Player:LoadCharacter() - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - elseif (Player.Character.Parent == nil) then - wait(5) - Player:LoadCharacter() - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - end + + coroutine.resume(coroutine.create(function() + while Player ~= nil do + wait(0.1) + local ch = Player.Character + if (ch ~= nil) then + if (ch.Humanoid.Health == 0) then + wait(5) + Player:LoadCharacter() + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) + elseif (ch.Parent == nil) then + wait(5) + Player:LoadCharacter() + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - end)) + end + end)) + + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + end) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() pcall(function() game.Close:connect(function() Server:Stop() end) end) InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) Server.IncommingConnection:connect(IncommingConnection) end diff --git a/clients/2008M/content/scripts/CSMPFunctions.lua b/clients/2008M/content/scripts/CSMPFunctions.lua index 34b819e..683b3f3 100644 --- a/clients/2008M/content/scripts/CSMPFunctions.lua +++ b/clients/2008M/content/scripts/CSMPFunctions.lua @@ -160,7 +160,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -168,7 +168,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -176,7 +176,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else @@ -230,112 +230,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Value = 5 end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2008M" + newName.Name = "Name" end rbxversion = version() @@ -347,44 +307,47 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Remo Server:start(Port, 20) RunService:run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService = game:GetService("Players") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) + end) + + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + local ch = Player.Character + if (ch ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - while true do - wait(0.001) - if (Player.Character ~= nil) then - if (Player.Character.Humanoid.Health == 0) then - wait(5) - Player:LoadCharacter() - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - elseif (Player.Character.Parent == nil) then - wait(5) - Player:LoadCharacter() -- to make sure nobody is deleted. - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - end + + while true do + wait(0.001) + local ch = Player.Character + if (ch ~= nil) then + if (ch.Humanoid.Health == 0) then + wait(5) + Player:LoadCharacter() + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) + elseif (ch.Parent == nil) then + wait(5) + Player:LoadCharacter() -- to make sure nobody is deleted. + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + end + end) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() pcall(function() game.Close:connect(function() Server:Stop() end) end) InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) Server.IncommingConnection:connect(IncommingConnection) end diff --git a/clients/2009E/content/scripts/CSMPFunctions.lua b/clients/2009E/content/scripts/CSMPFunctions.lua index 7204964..68ea595 100644 --- a/clients/2009E/content/scripts/CSMPFunctions.lua +++ b/clients/2009E/content/scripts/CSMPFunctions.lua @@ -182,7 +182,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -190,7 +190,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -198,7 +198,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else @@ -278,112 +278,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Value = 7 end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2009E" + newName.Name = "Name" end rbxversion = version() @@ -395,47 +355,49 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Remo Server:start(Port, 20) RunService:run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService = game:GetService("Players") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + local ch = Player.Character + if (ch ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end - while true do - wait(0.001) - if (Player.Character ~= nil) then - if (Player.Character.Humanoid.Health == 0) then - wait(5) - Player:LoadCharacter() - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - elseif (Player.Character.Parent == nil) then - wait(5) - Player:LoadCharacter() -- to make sure nobody is deleted. - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) - end + + while true do + wait(0.001) + local ch = Player.Character + if (ch ~= nil) then + if (ch.Humanoid.Health == 0) then + wait(5) + Player:LoadCharacter() + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) + elseif (ch.Parent == nil) then + wait(5) + Player:LoadCharacter() -- to make sure nobody is deleted. + LoadCharacterNew(newWaitForChild(Player,"Appearance"),ch,RemoveTeapotTurret) end end + end + + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + end) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() pcall(function() game.Close:connect(function() Server:Stop() end) end) InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) Server.IncommingConnection:connect(IncommingConnection) end - function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Ticket) pcall(function() game:SetPlaceID(-1, false) end) pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end) diff --git a/clients/2010L/content/fonts/libraries.rbxm b/clients/2010L/content/fonts/libraries.rbxm index 2024a3d..a36feb1 100644 --- a/clients/2010L/content/fonts/libraries.rbxm +++ b/clients/2010L/content/fonts/libraries.rbxm @@ -110,6 +110,7 @@ script:remove() 0 0 + 0 true 1 true @@ -135,6 +136,7 @@ script:remove() 0 0 + 0 true 2 true @@ -176,6 +178,7 @@ end) 0 0 + 0 true 1 true @@ -188,7 +191,7 @@ end) 1 4279970357 1 - rbxasset://textures/health.png + rbxasset://../../../shareddata/textures/health.png ImageLabel 0 diff --git a/clients/2010L/content/scripts/CSMPFunctions.lua b/clients/2010L/content/scripts/CSMPFunctions.lua index edfa771..bce8a6d 100644 --- a/clients/2010L/content/scripts/CSMPFunctions.lua +++ b/clients/2010L/content/scripts/CSMPFunctions.lua @@ -184,7 +184,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -192,7 +192,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -200,7 +200,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else @@ -280,112 +280,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Value = 7 end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2010L" + newName.Name = "Name" end rbxversion = version() @@ -394,27 +354,26 @@ print("ROBLOX Client version '" .. rbxversion .. "' loaded.") function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,RemoveTeapotTurret) assert((type(Port)~="number" or tonumber(Port)~=nil or Port==nil),"CSRun Error: Port must be nil or a number.") local NetworkServer=game:GetService("NetworkServer") + local RunService = game:GetService("RunService") + local PlayerService = game:GetService("Players") pcall(NetworkServer.Stop,NetworkServer) NetworkServer:Start(Port) - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() end + Player.CharacterAdded:connect(function(char) LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + if (char ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),char,RemoveTeapotTurret) end end) + Player.Changed:connect(function(Property) if (Property=="Character") and (Player.Character~=nil) then local Character=Player.Character @@ -424,13 +383,18 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Remo end end end) + + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) + end) end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() + RunService:Run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) pcall(function() game.Close:connect(function() NetworkServer:Stop() end) end) NetworkServer.IncommingConnection:connect(IncommingConnection) end diff --git a/clients/2011E/content/fonts/libraries.rbxm b/clients/2011E/content/fonts/libraries.rbxm index ceb164d..f9b47a0 100644 --- a/clients/2011E/content/fonts/libraries.rbxm +++ b/clients/2011E/content/fonts/libraries.rbxm @@ -96,6 +96,7 @@ game.Players.ChildAdded:connect(onPlayerEntered) 18 2 + 0 true 1 true @@ -107,7 +108,7 @@ game.Players.ChildAdded:connect(onPlayerEntered) 1 4279970357 1 - rbxasset://textures/healthgui/bkg.png + rbxasset://../../../shareddata/textures/healthgui/bkg.png bkg 0 @@ -134,7 +135,7 @@ game.Players.ChildAdded:connect(onPlayerEntered) 1 4279970357 1 - rbxasset://textures/healthgui/BarRed.png + rbxasset://../../../shareddata/textures/healthgui/BarRed.png barRed 0.0189999994 @@ -175,6 +176,7 @@ game.Players.ChildAdded:connect(onPlayerEntered) 0 0 + 0 true 1 true @@ -313,7 +315,7 @@ h.Changed:connect(function() 1 4279970357 1 - rbxasset://textures/healthgui/Bar.png + rbxasset://../../../shareddata/textures/healthgui/Bar.png bar 0.0189999994 @@ -340,7 +342,7 @@ h.Changed:connect(function() 1 4279970357 0 - rbxasset://textures/healthgui/label.png + rbxasset://../../../shareddata/textures/healthgui/label.png label 0.680000007 @@ -368,7 +370,7 @@ h.Changed:connect(function() 1 4279970357 1 - rbxasset://textures/healthgui/HurtOverlay.png + rbxasset://../../../shareddata/textures/healthgui/HurtOverlay.png hurtOverlay 2 @@ -415,6 +417,7 @@ h.Changed:connect(function() 0 0 + 0 true 1 true @@ -440,6 +443,7 @@ h.Changed:connect(function() 46 0 + 0 true 1 true @@ -5062,23 +5066,6 @@ t.Help = local RbxGui -local ADMINS = -{ -iagoMAO = "rbxasset://textures/ui/admins/iagoMAO.png", -winsupermario1234 = "rbxasset://textures/ui/admins/winsupermario1234.png", -Carrot = "rbxasset://textures/ui/admins/carrot.png", -coke = "rbxasset://textures/ui/admins/coke.png", -khanglegos = "rbxasset://textures/ui/admins/khanglegos.png", -QuackIAttack = "rbxasset://textures/ui/admins/QuackIAttack.png", -romulo27 = "rbxasset://textures/ui/admins/romulo27.png", -TheLivingBee = "rbxasset://textures/ui/admins/TheLivingBee.png", -OliverA = 1, -kinery = 1, -Peridorky =1, -Bitl = "rbxasset://textures/ui/admins/bitl.png", -Raymonf = "rbxasset://textures/ui/admins/Raymonf.png", -} - local localTesting = true local screen = script.Parent @@ -5885,14 +5872,8 @@ if UserSettings and LoadLibrary then end local function getMembershipTypeIcon(membershipType, playerName) - if ADMINS[playerName]~=nil then - if ADMINS[playerName] == 1 then - return "rbxasset://textures/ui/admins/default.png" - else - return ADMINS[playerName] - end - elseif membershipType == Enum.MembershipType.None then - return "" + if membershipType == Enum.MembershipType.None then + return "rbxasset://../../../charcustom/icons/"..playerName..".png" elseif membershipType == Enum.MembershipType.BuildersClub then return "rbxasset://textures/ui/TinyBcIcon.png" elseif membershipType == Enum.MembershipType.TurboBuildersClub then diff --git a/clients/2011E/content/scripts/CSMPFunctions.lua b/clients/2011E/content/scripts/CSMPFunctions.lua index fb536e4..52bc580 100644 --- a/clients/2011E/content/scripts/CSMPFunctions.lua +++ b/clients/2011E/content/scripts/CSMPFunctions.lua @@ -199,7 +199,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp) if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID newHat.Name = Hat1ID else @@ -207,7 +207,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID newHat.Name = Hat2ID else @@ -215,7 +215,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm" end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID newHat.Name = Hat3ID else @@ -295,112 +295,72 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Value = 7 end +function KickPlayer(Player,reason) + local message = Instance.new("Message") + message.Text = "You were kicked. Reason: "..reason + message.Parent = Player + wait(2) + Player:remove() + print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: "..reason) +end + function LoadSecurity(playerApp,Player,ServerSecurityLocation) + local function kick() + KickPlayer(Player, "Modified Client") + end + if (playerApp==nil) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - else - if ((playerApp:GetChildren() ~= 0) or (playerApp:GetChildren() ~= nil)) then - for _,newVal in pairs(playerApp:GetChildren()) do - if (playerApp:FindFirstChild("ClientEXEMD5")) then - if ((newVal.Name == "ClientEXEMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("LauncherMD5")) then - if ((newVal.Name == "LauncherMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - - if (playerApp:FindFirstChild("ClientScriptMD5")) then - if ((newVal.Name == "ClientScriptMD5")) then - if ((newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) or (newVal.Value == nil) or (newVal.Value == "")) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end - end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") - end + kick() + return + end + + if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then + kick() + return + end + + for _,newVal in pairs(playerApp:GetChildren()) do + if (newVal.Name == "ClientEXEMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value) then + kick() + end + end + + if (newVal.Name == "LauncherMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value) then + kick() + end + end + + if (newVal.Name == "ClientScriptMD5") then + if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value) then + kick() end - else - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Modified Client" - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Modified Client") end end end function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5) - local newCharApp = Instance.new("IntValue",Location) - newCharApp.Name = "Security" - local newClientMD5 = Instance.new("StringValue",newCharApp) - if (ClientEXEMD5 ~= nil) then - newClientMD5.Value = ClientEXEMD5 - else - newClientMD5.Value = "" - end - newClientMD5.Name = "ClientEXEMD5" - local newLauncherMD5 = Instance.new("StringValue",newCharApp) - if (LauncherMD5 ~= nil) then - newLauncherMD5.Value = LauncherMD5 - else - newLauncherMD5.Value = "" - end - newLauncherMD5.Name = "LauncherMD5" - local newClientScriptMD5 = Instance.new("StringValue",newCharApp) - if (ClientScriptMD5 ~= nil) then - newClientScriptMD5.Value = ClientScriptMD5 - else - newClientScriptMD5.Value = "" - end - newClientScriptMD5.Name = "ClientScriptMD5" + Location = Instance.new("IntValue", Location) + Location.Name = "Security" + + local clientValue = Instance.new("StringValue", Location) + clientValue.Value = ClientEXEMD5 or "" + clientValue.Name = "ClientEXEMD5" + + local launcherValue = Instance.new("StringValue", Location) + launcherValue.Value = LauncherMD5 or "" + launcherValue.Name = "LauncherMD5" + + local scriptValue = Instance.new("StringValue", Location) + scriptValue.Value = ClientScriptMD5 or "" + scriptValue.Name = "ClientScriptMD5" +end + +function InitalizeClientName(Location) + local newName = Instance.new("StringValue",Location) + newName.Value = "2011E" + newName.Name = "Name" end rbxversion = version() @@ -409,27 +369,26 @@ print("ROBLOX Client version '" .. rbxversion .. "' loaded.") function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,RemoveTeapotTurret) assert((type(Port)~="number" or tonumber(Port)~=nil or Port==nil),"CSRun Error: Port must be nil or a number.") local NetworkServer=game:GetService("NetworkServer") + local RunService = game:GetService("RunService") + local PlayerService = game:GetService("Players") pcall(NetworkServer.Stop,NetworkServer) NetworkServer:Start(Port) - game:GetService("Players").MaxPlayers = PlayerLimit - game:GetService("Players").PlayerAdded:connect(function(Player) - if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then - local message = Instance.new("Message") - message.Text = "You were kicked. Reason: Too many players on server." - message.Parent = Player - wait(2) - Player:remove() - print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.") + PlayerService.MaxPlayers = PlayerLimit + PlayerService.PlayerAdded:connect(function(Player) + if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then + KickPlayer(Player, "Too many players on server.") else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") Player:LoadCharacter() end + Player.CharacterAdded:connect(function(char) LoadSecurity(newWaitForChild(Player,"Security"),Player,game.Lighting) - if (Player.Character ~= nil) then - LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,RemoveTeapotTurret) + if (char ~= nil) then + LoadCharacterNew(newWaitForChild(Player,"Appearance"),char,RemoveTeapotTurret) end end) + Player.Changed:connect(function(Property) if (Property=="Character") and (Player.Character~=nil) then local Character=Player.Character @@ -439,13 +398,18 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Remo end end end) + + Player.Chatted:connect(function(msg) + print(Player.Name.."; "..msg) + end) end) - game:GetService("Players").PlayerRemoving:connect(function(Player) + PlayerService.PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) - game:GetService("RunService"):Run() + RunService:Run() game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") InitalizeSecurityValues(game.Lighting,LauncherMD5,ClientEXEMD5,ClientScriptMD5) + InitalizeClientName(game.Lighting) pcall(function() game.Close:connect(function() NetworkServer:Stop() end) end) NetworkServer.IncommingConnection:connect(IncommingConnection) end diff --git a/shareddata/textures/health.png b/shareddata/textures/health.png new file mode 100644 index 0000000..fbdc5ec Binary files /dev/null and b/shareddata/textures/health.png differ diff --git a/healthgui/Bar.png b/shareddata/textures/healthgui/Bar.png similarity index 100% rename from healthgui/Bar.png rename to shareddata/textures/healthgui/Bar.png diff --git a/healthgui/BarRed.png b/shareddata/textures/healthgui/BarRed.png similarity index 100% rename from healthgui/BarRed.png rename to shareddata/textures/healthgui/BarRed.png diff --git a/healthgui/HurtOverlay.png b/shareddata/textures/healthgui/HurtOverlay.png similarity index 100% rename from healthgui/HurtOverlay.png rename to shareddata/textures/healthgui/HurtOverlay.png diff --git a/healthgui/bkg.png b/shareddata/textures/healthgui/bkg.png similarity index 100% rename from healthgui/bkg.png rename to shareddata/textures/healthgui/bkg.png diff --git a/healthgui/label.png b/shareddata/textures/healthgui/label.png similarity index 100% rename from healthgui/label.png rename to shareddata/textures/healthgui/label.png