1.1 Beta
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,6 +117,9 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
|
|
|
|||
|
|
@ -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
|
|||
/// </summary>
|
||||
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]";
|
||||
|
|
|
|||
|
|
@ -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, "<client>", "</client>", "", 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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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, "<client>", "</client>", "", 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, "<solo>", "</solo>", 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, "<server>", "</server>", mapfile, luafile, rbxexe);
|
||||
}
|
||||
else
|
||||
{
|
||||
args = ClientScript.CompileScript(GlobalVars.CustomArgs, "<no3d>", "</no3d>", 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, "<studio>", "</studio>", 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)
|
||||
|
|
|
|||
|
|
@ -45800,9 +45800,6 @@
|
|||
- If you tried to connect to the server and you get an error, REJOIN THE SERVER.
|
||||
</value>
|
||||
</data>
|
||||
<data name="label30.Text" xml:space="preserve">
|
||||
<value>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)</value>
|
||||
</data>
|
||||
<data name="pictureBox2.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAYAAACaOMR5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
try
|
||||
{
|
||||
ipAddress = wc.DownloadString("http://icanhazip.com/");
|
||||
ipAddress = wc.DownloadString("http://ipv4.icanhazip.com/");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ script:remove()</ProtectedString>
|
|||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -135,6 +136,7 @@ script:remove()</ProtectedString>
|
|||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">2</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -176,6 +178,7 @@ end)
|
|||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -188,7 +191,7 @@ end)
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<Content name="Image"><url>rbxasset://textures/health.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/health.png</url></Content>
|
||||
<string name="Name">ImageLabel</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ game.Players.ChildAdded:connect(onPlayerEntered)</ProtectedString>
|
|||
<YO>18</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">2</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -107,7 +108,7 @@ game.Players.ChildAdded:connect(onPlayerEntered)</ProtectedString>
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<Content name="Image"><url>rbxasset://textures/healthgui/bkg.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/healthgui/bkg.png</url></Content>
|
||||
<string name="Name">bkg</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
|
|
@ -134,7 +135,7 @@ game.Players.ChildAdded:connect(onPlayerEntered)</ProtectedString>
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<Content name="Image"><url>rbxasset://textures/healthgui/BarRed.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/healthgui/BarRed.png</url></Content>
|
||||
<string name="Name">barRed</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>0.0189999994</XS>
|
||||
|
|
@ -175,6 +176,7 @@ game.Players.ChildAdded:connect(onPlayerEntered)</ProtectedString>
|
|||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -313,7 +315,7 @@ h.Changed:connect(function()
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<Content name="Image"><url>rbxasset://textures/healthgui/Bar.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/healthgui/Bar.png</url></Content>
|
||||
<string name="Name">bar</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>0.0189999994</XS>
|
||||
|
|
@ -340,7 +342,7 @@ h.Changed:connect(function()
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<Content name="Image"><url>rbxasset://textures/healthgui/label.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/healthgui/label.png</url></Content>
|
||||
<string name="Name">label</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>0.680000007</XS>
|
||||
|
|
@ -368,7 +370,7 @@ h.Changed:connect(function()
|
|||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<Content name="Image"><url>rbxasset://textures/healthgui/HurtOverlay.png</url></Content>
|
||||
<Content name="Image"><url>rbxasset://../../../shareddata/textures/healthgui/HurtOverlay.png</url></Content>
|
||||
<string name="Name">hurtOverlay</string>
|
||||
<UDim2 name="Position">
|
||||
<XS>2</XS>
|
||||
|
|
@ -415,6 +417,7 @@ h.Changed:connect(function()
|
|||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -440,6 +443,7 @@ h.Changed:connect(function()
|
|||
<YO>46</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
<bool name="archivable">true</bool>
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 952 B After Width: | Height: | Size: 952 B |
|
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 988 B After Width: | Height: | Size: 988 B |