added new setting for 2009e

This commit is contained in:
Bitl 2020-07-17 13:33:00 -07:00
parent 98a4ea4d3b
commit 549a899a4d
6 changed files with 569 additions and 516 deletions

View File

@ -34,7 +34,8 @@ public class Settings
Client_2008AndUp_QualityLevel21 = 4, Client_2008AndUp_QualityLevel21 = 4,
Client_2008AndUp_NoGraphicsOptions = 5, Client_2008AndUp_NoGraphicsOptions = 5,
Client_2008AndUp_ForceAutomatic = 6, Client_2008AndUp_ForceAutomatic = 6,
Client_2008AndUp_ForceAutomaticQL21 = 7 Client_2008AndUp_ForceAutomaticQL21 = 7,
Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL = 8
} }
public static Mode GetModeForInt(int level) public static Mode GetModeForInt(int level)
@ -121,6 +122,8 @@ public class Settings
return ClientLoadOptions.Client_2008AndUp_ForceAutomatic; return ClientLoadOptions.Client_2008AndUp_ForceAutomatic;
case 7: case 7:
return ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21; return ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21;
case 8:
return ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL;
default: default:
return ClientLoadOptions.Client_2007_NoGraphicsOptions; return ClientLoadOptions.Client_2007_NoGraphicsOptions;
} }
@ -155,6 +158,8 @@ public class Settings
return 6; return 6;
case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
return 7; return 7;
case ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL:
return 8;
default: default:
return 0; return 0;
} }
@ -182,6 +187,7 @@ public class Settings
case ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: case ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions:
case ClientLoadOptions.Client_2008AndUp_ForceAutomatic: case ClientLoadOptions.Client_2008AndUp_ForceAutomatic:
case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
case ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL:
case ClientLoadOptions.Client_2008AndUp: case ClientLoadOptions.Client_2008AndUp:
return localAppdataRobloxPath; return localAppdataRobloxPath;
default: default:

View File

@ -148,6 +148,7 @@ partial class ClientinfoEditor
this.label8 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label();
this.comboBox1 = new System.Windows.Forms.ComboBox(); this.comboBox1 = new System.Windows.Forms.ComboBox();
this.label10 = new System.Windows.Forms.Label();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -155,19 +156,19 @@ partial class ClientinfoEditor
// //
this.checkBox1.Location = new System.Drawing.Point(10, 50); this.checkBox1.Location = new System.Drawing.Point(10, 50);
this.checkBox1.Name = "checkBox1"; this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(210, 24); this.checkBox1.Size = new System.Drawing.Size(98, 24);
this.checkBox1.TabIndex = 0; this.checkBox1.TabIndex = 0;
this.checkBox1.Text = "Allows players to set custom names"; this.checkBox1.Text = "Custom Names";
this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.UseVisualStyleBackColor = true;
this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged); this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged);
// //
// checkBox2 // checkBox2
// //
this.checkBox2.Location = new System.Drawing.Point(10, 70); this.checkBox2.Location = new System.Drawing.Point(114, 52);
this.checkBox2.Name = "checkBox2"; this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(210, 20); this.checkBox2.Size = new System.Drawing.Size(117, 20);
this.checkBox2.TabIndex = 1; this.checkBox2.TabIndex = 1;
this.checkBox2.Text = "Allows the launcher to set custom IDs"; this.checkBox2.Text = "Custom Player IDs";
this.checkBox2.UseVisualStyleBackColor = true; this.checkBox2.UseVisualStyleBackColor = true;
this.checkBox2.CheckedChanged += new System.EventHandler(this.CheckBox2CheckedChanged); this.checkBox2.CheckedChanged += new System.EventHandler(this.CheckBox2CheckedChanged);
// //
@ -183,11 +184,12 @@ partial class ClientinfoEditor
// //
// label1 // label1
// //
this.label1.Location = new System.Drawing.Point(10, 168); this.label1.Location = new System.Drawing.Point(8, 168);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(92, 16); this.label1.Size = new System.Drawing.Size(281, 16);
this.label1.TabIndex = 5; this.label1.TabIndex = 5;
this.label1.Text = "Client Description"; this.label1.Text = "Client Description";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// label2 // label2
// //
@ -199,11 +201,11 @@ partial class ClientinfoEditor
// //
// checkBox3 // checkBox3
// //
this.checkBox3.Location = new System.Drawing.Point(10, 88); this.checkBox3.Location = new System.Drawing.Point(10, 70);
this.checkBox3.Name = "checkBox3"; this.checkBox3.Name = "checkBox3";
this.checkBox3.Size = new System.Drawing.Size(211, 20); this.checkBox3.Size = new System.Drawing.Size(262, 20);
this.checkBox3.TabIndex = 13; this.checkBox3.TabIndex = 13;
this.checkBox3.Text = "Client uses a single EXE to run"; this.checkBox3.Text = "Legacy Mode (uses one EXE file, RobloxApp.exe)";
this.checkBox3.UseVisualStyleBackColor = true; this.checkBox3.UseVisualStyleBackColor = true;
this.checkBox3.CheckedChanged += new System.EventHandler(this.CheckBox3CheckedChanged); this.checkBox3.CheckedChanged += new System.EventHandler(this.CheckBox3CheckedChanged);
// //
@ -211,9 +213,10 @@ partial class ClientinfoEditor
// //
this.label3.Location = new System.Drawing.Point(309, 34); this.label3.Location = new System.Drawing.Point(309, 34);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(92, 13); this.label3.Size = new System.Drawing.Size(311, 13);
this.label3.TabIndex = 14; this.label3.TabIndex = 14;
this.label3.Text = "Client EXE MD5"; this.label3.Text = "Client EXE MD5";
this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// textBox2 // textBox2
// //
@ -238,44 +241,47 @@ partial class ClientinfoEditor
// //
this.label4.Location = new System.Drawing.Point(309, 73); this.label4.Location = new System.Drawing.Point(309, 73);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(92, 13); this.label4.Size = new System.Drawing.Size(311, 13);
this.label4.TabIndex = 17; this.label4.TabIndex = 17;
this.label4.Text = "Client Script MD5"; this.label4.Text = "Client Script MD5";
this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// button4 // button4
// //
this.button4.Location = new System.Drawing.Point(309, 122); this.button4.Location = new System.Drawing.Point(383, 115);
this.button4.Name = "button4"; this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(312, 29); this.button4.Size = new System.Drawing.Size(168, 29);
this.button4.TabIndex = 18; this.button4.TabIndex = 18;
this.button4.Text = "Get MD5s from client directory"; this.button4.Text = "Load MD5s from client directory";
this.button4.UseVisualStyleBackColor = true; this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.Button4Click); this.button4.Click += new System.EventHandler(this.Button4Click);
// //
// checkBox4 // checkBox4
// //
this.checkBox4.Location = new System.Drawing.Point(237, 50); this.checkBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBox4.ForeColor = System.Drawing.Color.Red;
this.checkBox4.Location = new System.Drawing.Point(445, 330);
this.checkBox4.Name = "checkBox4"; this.checkBox4.Name = "checkBox4";
this.checkBox4.Size = new System.Drawing.Size(50, 24); this.checkBox4.Size = new System.Drawing.Size(187, 19);
this.checkBox4.TabIndex = 19; this.checkBox4.TabIndex = 19;
this.checkBox4.Text = "Lock"; this.checkBox4.Text = "Lock Client (prevent editing)";
this.checkBox4.UseVisualStyleBackColor = true; this.checkBox4.UseVisualStyleBackColor = true;
this.checkBox4.Visible = false; this.checkBox4.Visible = false;
this.checkBox4.CheckedChanged += new System.EventHandler(this.CheckBox4CheckedChanged); this.checkBox4.CheckedChanged += new System.EventHandler(this.CheckBox4CheckedChanged);
// //
// checkBox6 // checkBox6
// //
this.checkBox6.Location = new System.Drawing.Point(10, 106); this.checkBox6.Location = new System.Drawing.Point(10, 88);
this.checkBox6.Name = "checkBox6"; this.checkBox6.Name = "checkBox6";
this.checkBox6.Size = new System.Drawing.Size(262, 21); this.checkBox6.Size = new System.Drawing.Size(262, 21);
this.checkBox6.TabIndex = 20; this.checkBox6.TabIndex = 20;
this.checkBox6.Text = "Fix Scripts and Map Loading for 2007-Early 2008"; this.checkBox6.Text = "Fix scripts and map loading for 2007-Early 2008";
this.checkBox6.UseVisualStyleBackColor = true; this.checkBox6.UseVisualStyleBackColor = true;
this.checkBox6.CheckedChanged += new System.EventHandler(this.CheckBox6CheckedChanged); this.checkBox6.CheckedChanged += new System.EventHandler(this.CheckBox6CheckedChanged);
// //
// checkBox7 // checkBox7
// //
this.checkBox7.Location = new System.Drawing.Point(10, 123); this.checkBox7.Location = new System.Drawing.Point(10, 106);
this.checkBox7.Name = "checkBox7"; this.checkBox7.Name = "checkBox7";
this.checkBox7.Size = new System.Drawing.Size(262, 22); this.checkBox7.Size = new System.Drawing.Size(262, 22);
this.checkBox7.TabIndex = 21; this.checkBox7.TabIndex = 21;
@ -291,7 +297,7 @@ partial class ClientinfoEditor
this.addToolStripMenuItem}); this.addToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(632, 24); this.menuStrip1.Size = new System.Drawing.Size(632, 22);
this.menuStrip1.TabIndex = 22; this.menuStrip1.TabIndex = 22;
this.menuStrip1.Text = "menuStrip1"; this.menuStrip1.Text = "menuStrip1";
// //
@ -1011,9 +1017,10 @@ partial class ClientinfoEditor
// //
this.label5.Location = new System.Drawing.Point(309, 154); this.label5.Location = new System.Drawing.Point(309, 154);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(229, 16); this.label5.Size = new System.Drawing.Size(311, 16);
this.label5.TabIndex = 24; this.label5.TabIndex = 24;
this.label5.Text = "Client Command Arguments (Uses ClientScript)"; this.label5.Text = "Client Command Arguments (Uses ClientScript)";
this.label5.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// label6 // label6
// //
@ -1026,6 +1033,8 @@ partial class ClientinfoEditor
// //
// textBox5 // textBox5
// //
this.textBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBox5.ForeColor = System.Drawing.Color.Red;
this.textBox5.Location = new System.Drawing.Point(10, 269); this.textBox5.Location = new System.Drawing.Point(10, 269);
this.textBox5.Multiline = true; this.textBox5.Multiline = true;
this.textBox5.Name = "textBox5"; this.textBox5.Name = "textBox5";
@ -1036,16 +1045,19 @@ partial class ClientinfoEditor
// //
// label7 // label7
// //
this.label7.Location = new System.Drawing.Point(10, 250); this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label7.ForeColor = System.Drawing.Color.Red;
this.label7.Location = new System.Drawing.Point(7, 250);
this.label7.Name = "label7"; this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(100, 16); this.label7.Size = new System.Drawing.Size(282, 16);
this.label7.TabIndex = 28; this.label7.TabIndex = 28;
this.label7.Text = "Warning (if needed)"; this.label7.Text = "Warning (If needed. Displays in bold red)";
this.label7.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// label8 // label8
// //
this.label8.AutoSize = true; this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(466, 5); this.label8.Location = new System.Drawing.Point(8, 332);
this.label8.Name = "label8"; this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(92, 13); this.label8.Size = new System.Drawing.Size(92, 13);
this.label8.TabIndex = 29; this.label8.TabIndex = 29;
@ -1054,7 +1066,7 @@ partial class ClientinfoEditor
// label9 // label9
// //
this.label9.AutoSize = true; this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(559, 5); this.label9.Location = new System.Drawing.Point(101, 332);
this.label9.Name = "label9"; this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(63, 13); this.label9.Size = new System.Drawing.Size(63, 13);
this.label9.TabIndex = 30; this.label9.TabIndex = 30;
@ -1062,29 +1074,44 @@ partial class ClientinfoEditor
// //
// comboBox1 // comboBox1
// //
this.comboBox1.DropDownWidth = 350; this.comboBox1.DropDownWidth = 650;
this.comboBox1.FormattingEnabled = true; this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] { this.comboBox1.Items.AddRange(new object[] {
"No Graphics Mode (2007 Only)", "Don\'t use the graphics mode option. (2007 Only)",
"Use Graphics Mode (2007-Early 2008 Only)", "Use the graphics mode option. (2007-Early 2008 Only)",
"Use Graphics Mode (Mid 2008+ Only)", "Use the graphics mode option. (Mid 2008+ Only)",
"Use Graphics Mode (Mid 2008+ Only, Force Legacy OpenGL)", "Use the graphics mode option. Force OpenGL Legacy to be enabled. (Mid 2008+ Only)" +
"Use Graphics Mode (Mid 2008+ Only, Uses Quality Level 21)", "",
"No Graphics Mode (Mid 2008+ Only)", "Use the graphics mode option. Use quality level 21 as the maximum quality level. " +
"Force Automatic Graphics Mode (Mid 2008+ Only)", "(Mid 2008+ Only)",
"Force Automatic Graphics Mode (Mid 2008+ Only, Uses Quality Level 21)"}); "Don\'t use the graphics mode option. (Mid 2008+ Only)",
"Force the Automatic graphics mode option. (Mid 2008+ Only)",
"Force the Automatic graphics mode option. Use quality level 21 as the maximum qua" +
"lity level. (Mid 2008+ Only)",
"Use the graphics mode option. Force OpenGL Legacy to be enabled. Use character-on" +
"ly shadows when possible. (Mid 2008+ Only)"});
this.comboBox1.Location = new System.Drawing.Point(10, 144); this.comboBox1.Location = new System.Drawing.Point(10, 144);
this.comboBox1.Name = "comboBox1"; this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(279, 21); this.comboBox1.Size = new System.Drawing.Size(279, 21);
this.comboBox1.TabIndex = 32; this.comboBox1.TabIndex = 32;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
// //
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(8, 128);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(138, 13);
this.label10.TabIndex = 33;
this.label10.Text = "When applying the settings:";
//
// ClientinfoEditor // ClientinfoEditor
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLightLight; this.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.ClientSize = new System.Drawing.Size(632, 336); this.ClientSize = new System.Drawing.Size(632, 351);
this.Controls.Add(this.label10);
this.Controls.Add(this.comboBox1); this.Controls.Add(this.comboBox1);
this.Controls.Add(this.label9); this.Controls.Add(this.label9);
this.Controls.Add(this.label8); this.Controls.Add(this.label8);
@ -1232,4 +1259,5 @@ partial class ClientinfoEditor
private System.Windows.Forms.ToolStripMenuItem sharedToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem sharedToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem versionToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem versionToolStripMenuItem;
private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Label label10;
} }

View File

@ -6,520 +6,531 @@ using System.Globalization;
#endregion #endregion
#region Client SDK #region Client SDK
public partial class ClientinfoEditor : Form public partial class ClientinfoEditor : Form
{
#region Private Variables
private FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo();
private string SelectedClientInfoPath = "";
private bool Locked = false;
#endregion
#region Constructor
public ClientinfoEditor()
{ {
#region Private Variables InitializeComponent();
private FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo(); }
private string SelectedClientInfoPath = ""; #endregion
private bool Locked = false;
#endregion
#region Constructor #region Form Events
public ClientinfoEditor() void CheckBox1CheckedChanged(object sender, EventArgs e)
{ {
InitializeComponent(); SelectedClientInfo.UsesPlayerName = checkBox1.Checked;
} }
#endregion
#region Form Events void CheckBox2CheckedChanged(object sender, EventArgs e)
void CheckBox1CheckedChanged(object sender, EventArgs e) {
SelectedClientInfo.UsesID = checkBox2.Checked;
}
void TextBox1TextChanged(object sender, EventArgs e)
{
SelectedClientInfo.Description = textBox1.Text;
}
void ClientinfoCreatorLoad(object sender, EventArgs e)
{
checkBox4.Visible = GlobalVars.AdminMode;
NewClientInfo();
}
void CheckBox3CheckedChanged(object sender, EventArgs e)
{
SelectedClientInfo.LegacyMode = checkBox3.Checked;
}
void TextBox2TextChanged(object sender, EventArgs e)
{
textBox2.Text = textBox2.Text.ToUpper(CultureInfo.InvariantCulture);
SelectedClientInfo.ClientMD5 = textBox2.Text.ToUpper(CultureInfo.InvariantCulture);
}
void TextBox3TextChanged(object sender, EventArgs e)
{
textBox3.Text = textBox3.Text.ToUpper(CultureInfo.InvariantCulture);
SelectedClientInfo.ScriptMD5 = textBox3.Text.ToUpper(CultureInfo.InvariantCulture);
}
void Button4Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(SelectedClientInfoPath))
{ {
SelectedClientInfo.UsesPlayerName = checkBox1.Checked; FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
SelectedClientInfoPath = folderBrowserDialog1.SelectedPath;
}
} }
void CheckBox2CheckedChanged(object sender, EventArgs e) string ClientName = "";
{
SelectedClientInfo.UsesID = checkBox2.Checked;
}
void TextBox1TextChanged(object sender, EventArgs e) if (!SelectedClientInfo.LegacyMode)
{ {
SelectedClientInfo.Description = textBox1.Text; ClientName = "\\RobloxApp_client.exe";
} }
else
{
ClientName = "\\RobloxApp.exe";
}
void ClientinfoCreatorLoad(object sender, EventArgs e) string ClientMD5 = File.Exists(SelectedClientInfoPath + ClientName) ? SecurityFuncs.GenerateMD5(SelectedClientInfoPath + ClientName) : "";
{
checkBox4.Visible = GlobalVars.AdminMode;
NewClientInfo();
}
void CheckBox3CheckedChanged(object sender, EventArgs e) if (!string.IsNullOrWhiteSpace(ClientMD5))
{ {
SelectedClientInfo.LegacyMode = checkBox3.Checked; textBox2.Text = ClientMD5.ToUpper(CultureInfo.InvariantCulture);
} textBox2.BackColor = System.Drawing.Color.Lime;
void TextBox2TextChanged(object sender, EventArgs e)
{
textBox2.Text = textBox2.Text.ToUpper(CultureInfo.InvariantCulture);
SelectedClientInfo.ClientMD5 = textBox2.Text.ToUpper(CultureInfo.InvariantCulture); SelectedClientInfo.ClientMD5 = textBox2.Text.ToUpper(CultureInfo.InvariantCulture);
} }
else
{
MessageBox.Show("Cannot load '" + ClientName.Trim('/') + "'. Please make sure you selected the directory","Novetus Launcher - Error while generating MD5 for client", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
void TextBox3TextChanged(object sender, EventArgs e) string ClientScriptMD5 = File.Exists(SelectedClientInfoPath + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") ? SecurityFuncs.GenerateMD5(SelectedClientInfoPath + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") : "";
{
textBox3.Text = textBox3.Text.ToUpper(CultureInfo.InvariantCulture); if (!string.IsNullOrWhiteSpace(ClientScriptMD5))
{
textBox3.Text = ClientScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox3.BackColor = System.Drawing.Color.Lime;
SelectedClientInfo.ScriptMD5 = textBox3.Text.ToUpper(CultureInfo.InvariantCulture); SelectedClientInfo.ScriptMD5 = textBox3.Text.ToUpper(CultureInfo.InvariantCulture);
} }
else
{
MessageBox.Show("Cannot load '" + GlobalPaths.ScriptName + ".lua'. Please make sure you selected the directory","Novetus Launcher - Error while generating MD5 for script", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
void Button4Click(object sender, EventArgs e) MessageBox.Show("MD5s generated.","Novetus Launcher - Novetus Client SDK", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void CheckBox4CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked == true)
{ {
if (string.IsNullOrWhiteSpace(SelectedClientInfoPath)) Locked = true;
}
else if (checkBox4.Checked == false && Locked == true)
{
Locked = true;
}
}
void CheckBox6CheckedChanged(object sender, EventArgs e)
{
SelectedClientInfo.Fix2007 = checkBox6.Checked;
}
void CheckBox7CheckedChanged(object sender, EventArgs e)
{
SelectedClientInfo.AlreadyHasSecurity = checkBox7.Checked;
}
void NewToolStripMenuItemClick(object sender, EventArgs e)
{
label9.Text = "Not Loaded";
NewClientInfo();
}
void LoadToolStripMenuItemClick(object sender, EventArgs e)
{
bool IsVersion2 = false;
using (var ofd = new OpenFileDialog())
{
ofd.Filter = "Novetus Clientinfo files (*.nov)|*.nov";
ofd.FilterIndex = 1;
ofd.FileName = "clientinfo.nov";
ofd.Title = "Load clientinfo.nov";
if (ofd.ShowDialog() == DialogResult.OK)
{ {
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog(); string file, usesplayername, usesid, warning, legacymode, clientmd5,
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) scriptmd5, desc, locked, fix2007, alreadyhassecurity,
cmdargsorclientoptions, commandargsver2;
using (StreamReader reader = new StreamReader(ofd.FileName))
{ {
SelectedClientInfoPath = folderBrowserDialog1.SelectedPath; file = reader.ReadLine();
} }
}
string ClientName = ""; string ConvertedLine = "";
if (!SelectedClientInfo.LegacyMode) try
{
ClientName = "\\RobloxApp_client.exe";
}
else
{
ClientName = "\\RobloxApp.exe";
}
string ClientMD5 = File.Exists(SelectedClientInfoPath + ClientName) ? SecurityFuncs.GenerateMD5(SelectedClientInfoPath + ClientName) : "";
if (!string.IsNullOrWhiteSpace(ClientMD5))
{
textBox2.Text = ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.BackColor = System.Drawing.Color.Lime;
SelectedClientInfo.ClientMD5 = textBox2.Text.ToUpper(CultureInfo.InvariantCulture);
}
else
{
MessageBox.Show("Cannot load '" + ClientName.Trim('/') + "'. Please make sure you selected the directory","Novetus Launcher - Error while generating MD5 for client", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
string ClientScriptMD5 = File.Exists(SelectedClientInfoPath + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") ? SecurityFuncs.GenerateMD5(SelectedClientInfoPath + "\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") : "";
if (!string.IsNullOrWhiteSpace(ClientScriptMD5))
{
textBox3.Text = ClientScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox3.BackColor = System.Drawing.Color.Lime;
SelectedClientInfo.ScriptMD5 = textBox3.Text.ToUpper(CultureInfo.InvariantCulture);
}
else
{
MessageBox.Show("Cannot load '" + GlobalPaths.ScriptName + ".lua'. Please make sure you selected the directory","Novetus Launcher - Error while generating MD5 for script", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show("MD5s generated.","Novetus Launcher - Novetus Client SDK", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void CheckBox4CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked == true)
{
Locked = true;
}
else if (checkBox4.Checked == false && Locked == true)
{
Locked = true;
}
}
void CheckBox6CheckedChanged(object sender, EventArgs e)
{
SelectedClientInfo.Fix2007 = checkBox6.Checked;
}
void CheckBox7CheckedChanged(object sender, EventArgs e)
{
SelectedClientInfo.AlreadyHasSecurity = checkBox7.Checked;
}
void NewToolStripMenuItemClick(object sender, EventArgs e)
{
label9.Text = "Not Loaded";
NewClientInfo();
}
void LoadToolStripMenuItemClick(object sender, EventArgs e)
{
bool IsVersion2 = false;
using (var ofd = new OpenFileDialog())
{
ofd.Filter = "Novetus Clientinfo files (*.nov)|*.nov";
ofd.FilterIndex = 1;
ofd.FileName = "clientinfo.nov";
ofd.Title = "Load clientinfo.nov";
if (ofd.ShowDialog() == DialogResult.OK)
{ {
string file, usesplayername, usesid, warning, legacymode, clientmd5, IsVersion2 = true;
scriptmd5, desc, locked, fix2007, alreadyhassecurity, label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")";
cmdargsorclientoptions, commandargsver2; ConvertedLine = SecurityFuncs.Base64DecodeNew(file);
}
catch (Exception)
{
label9.Text = "v1 (v1.1)";
ConvertedLine = SecurityFuncs.Base64DecodeOld(file);
}
using (StreamReader reader = new StreamReader(ofd.FileName)) string[] result = ConvertedLine.Split('|');
usesplayername = SecurityFuncs.Base64Decode(result[0]);
usesid = SecurityFuncs.Base64Decode(result[1]);
warning = SecurityFuncs.Base64Decode(result[2]);
legacymode = SecurityFuncs.Base64Decode(result[3]);
clientmd5 = SecurityFuncs.Base64Decode(result[4]);
scriptmd5 = SecurityFuncs.Base64Decode(result[5]);
desc = SecurityFuncs.Base64Decode(result[6]);
locked = SecurityFuncs.Base64Decode(result[7]);
fix2007 = SecurityFuncs.Base64Decode(result[8]);
alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]);
cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]);
commandargsver2 = "";
try
{
if (IsVersion2)
{ {
file = reader.ReadLine(); commandargsver2 = SecurityFuncs.Base64Decode(result[11]);
} }
}
catch (Exception)
{
if (!label9.Text.Equals("v1 (v1.1)"))
{
label9.Text = "v2 (v1.2 Snapshot 7440)";
IsVersion2 = false;
}
}
string ConvertedLine = ""; if (!GlobalVars.AdminMode)
{
try bool lockcheck = Convert.ToBoolean(locked);
if (lockcheck)
{ {
IsVersion2 = true; NewClientInfo();
label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")"; MessageBox.Show("This client is locked and therefore it cannot be loaded.", "Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
ConvertedLine = SecurityFuncs.Base64DecodeNew(file); return;
}
catch (Exception)
{
label9.Text = "v1 (v1.1)";
ConvertedLine = SecurityFuncs.Base64DecodeOld(file);
}
string[] result = ConvertedLine.Split('|');
usesplayername = SecurityFuncs.Base64Decode(result[0]);
usesid = SecurityFuncs.Base64Decode(result[1]);
warning = SecurityFuncs.Base64Decode(result[2]);
legacymode = SecurityFuncs.Base64Decode(result[3]);
clientmd5 = SecurityFuncs.Base64Decode(result[4]);
scriptmd5 = SecurityFuncs.Base64Decode(result[5]);
desc = SecurityFuncs.Base64Decode(result[6]);
locked = SecurityFuncs.Base64Decode(result[7]);
fix2007 = SecurityFuncs.Base64Decode(result[8]);
alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]);
cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]);
commandargsver2 = "";
try
{
if (IsVersion2)
{
commandargsver2 = SecurityFuncs.Base64Decode(result[11]);
}
}
catch (Exception)
{
if (!label9.Text.Equals("v1 (v1.1)"))
{
label9.Text = "v2 (v1.2 Snapshot 7440)";
IsVersion2 = false;
}
}
if (!GlobalVars.AdminMode)
{
bool lockcheck = Convert.ToBoolean(locked);
if (lockcheck)
{
NewClientInfo();
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 = lockcheck;
checkBox4.Checked = Locked;
}
} }
else else
{ {
Locked = Convert.ToBoolean(locked); Locked = lockcheck;
checkBox4.Checked = Locked; checkBox4.Checked = Locked;
} }
}
else
{
Locked = Convert.ToBoolean(locked);
checkBox4.Checked = Locked;
}
SelectedClientInfo.UsesPlayerName = Convert.ToBoolean(usesplayername); SelectedClientInfo.UsesPlayerName = Convert.ToBoolean(usesplayername);
SelectedClientInfo.UsesID = Convert.ToBoolean(usesid); SelectedClientInfo.UsesID = Convert.ToBoolean(usesid);
SelectedClientInfo.Warning = warning; SelectedClientInfo.Warning = warning;
SelectedClientInfo.LegacyMode = Convert.ToBoolean(legacymode); SelectedClientInfo.LegacyMode = Convert.ToBoolean(legacymode);
SelectedClientInfo.ClientMD5 = clientmd5; SelectedClientInfo.ClientMD5 = clientmd5;
SelectedClientInfo.ScriptMD5 = scriptmd5; SelectedClientInfo.ScriptMD5 = scriptmd5;
SelectedClientInfo.Description = desc; SelectedClientInfo.Description = desc;
SelectedClientInfo.Fix2007 = Convert.ToBoolean(fix2007); SelectedClientInfo.Fix2007 = Convert.ToBoolean(fix2007);
SelectedClientInfo.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity); SelectedClientInfo.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity);
try try
{
if (IsVersion2)
{ {
if (IsVersion2) if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False"))
{ {
if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False")) label9.Text = "v2 (v1.2.3)";
{ SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForBool(Convert.ToBoolean(cmdargsorclientoptions));
label9.Text = "v2 (v1.2.3)";
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForBool(Convert.ToBoolean(cmdargsorclientoptions));
}
else
{
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForInt(Convert.ToInt32(cmdargsorclientoptions));
}
SelectedClientInfo.CommandLineArgs = commandargsver2;
} }
} else
catch (Exception) {
{ SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForInt(Convert.ToInt32(cmdargsorclientoptions));
//Again, fake it. }
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; SelectedClientInfo.CommandLineArgs = commandargsver2;
SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions;
} }
} }
catch (Exception)
SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName);
}
checkBox1.Checked = SelectedClientInfo.UsesPlayerName;
checkBox2.Checked = SelectedClientInfo.UsesID;
checkBox3.Checked = SelectedClientInfo.LegacyMode;
checkBox6.Checked = SelectedClientInfo.Fix2007;
checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity;
switch (SelectedClientInfo.ClientLoadOptions)
{
case Settings.GraphicsOptions.ClientLoadOptions.Client_2007:
comboBox1.SelectedIndex = 1;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp:
comboBox1.SelectedIndex = 2;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL:
comboBox1.SelectedIndex = 3;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21:
comboBox1.SelectedIndex = 4;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions:
comboBox1.SelectedIndex = 5;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic:
comboBox1.SelectedIndex = 6;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
comboBox1.SelectedIndex = 7;
break;
default:
comboBox1.SelectedIndex = 0;
break;
}
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox1.Text = SelectedClientInfo.Description;
textBox4.Text = SelectedClientInfo.CommandLineArgs;
textBox5.Text = SelectedClientInfo.Warning;
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
}
void SaveToolStripMenuItemClick(object sender, EventArgs e)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Novetus Clientinfo files (*.nov)|*.nov";
sfd.FilterIndex = 1;
string filename = "clientinfo.nov";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{ {
string[] lines = { //Again, fake it.
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesPlayerName.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesID.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Warning.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.LegacyMode.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ClientMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ScriptMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Description.ToString()),
SecurityFuncs.Base64Encode(Locked.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Fix2007.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()),
SecurityFuncs.Base64Encode(Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.CommandLineArgs.ToString())
};
File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|", lines)));
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
}
}
label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")";
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
}
private void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Text file (*.txt)|*.txt";
sfd.FilterIndex = 1;
string filename = "clientinfo.txt";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SelectedClientInfo.UsesPlayerName.ToString(),
SelectedClientInfo.UsesID.ToString(),
SelectedClientInfo.Warning.ToString(),
SelectedClientInfo.LegacyMode.ToString(),
SelectedClientInfo.ClientMD5.ToString(),
SelectedClientInfo.ScriptMD5.ToString(),
SelectedClientInfo.Description.ToString(),
Locked.ToString(),
SelectedClientInfo.Fix2007.ToString(),
SelectedClientInfo.AlreadyHasSecurity.ToString(),
Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString(),
SelectedClientInfo.CommandLineArgs.ToString()
};
File.WriteAllLines(sfd.FileName, lines);
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
}
}
}
void TextBox4TextChanged(object sender, EventArgs e)
{
SelectedClientInfo.CommandLineArgs = textBox4.Text;
}
void TextBox5TextChanged(object sender, EventArgs e)
{
SelectedClientInfo.Warning = textBox5.Text;
}
private void documentationToolStripMenuItem_Click(object sender, EventArgs e)
{
ClientScriptDocumentation csd = new ClientScriptDocumentation();
csd.Show();
}
//tags
private void clientToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<client></client>");
}
private void serverToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<server></server>");
}
private void soloToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<solo></solo>");
}
private void studioToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<studio></studio>");
}
private void no3dToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<no3d></no3d>");
}
private void sharedToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<shared></shared>");
}
private void variableToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem senderitem = (ToolStripMenuItem)sender;
AddClientinfoText(senderitem.Text);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1.SelectedIndex)
{
case 1:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007;
break;
case 2:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp;
break; SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions;
case 3: }
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL; }
break;
case 4: SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName);
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21; }
break;
case 5: checkBox1.Checked = SelectedClientInfo.UsesPlayerName;
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions; checkBox2.Checked = SelectedClientInfo.UsesID;
break; checkBox3.Checked = SelectedClientInfo.LegacyMode;
case 6: checkBox6.Checked = SelectedClientInfo.Fix2007;
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic; checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity;
break;
case 7: switch (SelectedClientInfo.ClientLoadOptions)
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21; {
break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2007:
default: comboBox1.SelectedIndex = 1;
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007_NoGraphicsOptions; break;
break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp:
comboBox1.SelectedIndex = 2;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL:
comboBox1.SelectedIndex = 3;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21:
comboBox1.SelectedIndex = 4;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions:
comboBox1.SelectedIndex = 5;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic:
comboBox1.SelectedIndex = 6;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
comboBox1.SelectedIndex = 7;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL:
comboBox1.SelectedIndex = 8;
break;
default:
comboBox1.SelectedIndex = 0;
break;
}
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox1.Text = SelectedClientInfo.Description;
textBox4.Text = SelectedClientInfo.CommandLineArgs;
textBox5.Text = SelectedClientInfo.Warning;
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
}
void SaveToolStripMenuItemClick(object sender, EventArgs e)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Novetus Clientinfo files (*.nov)|*.nov";
sfd.FilterIndex = 1;
string filename = "clientinfo.nov";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesPlayerName.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesID.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Warning.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.LegacyMode.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ClientMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ScriptMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Description.ToString()),
SecurityFuncs.Base64Encode(Locked.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Fix2007.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()),
SecurityFuncs.Base64Encode(Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.CommandLineArgs.ToString())
};
File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|", lines)));
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
} }
} }
#endregion
label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")";
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
}
private void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Text file (*.txt)|*.txt";
sfd.FilterIndex = 1;
string filename = "clientinfo.txt";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SelectedClientInfo.UsesPlayerName.ToString(),
SelectedClientInfo.UsesID.ToString(),
SelectedClientInfo.Warning.ToString(),
SelectedClientInfo.LegacyMode.ToString(),
SelectedClientInfo.ClientMD5.ToString(),
SelectedClientInfo.ScriptMD5.ToString(),
SelectedClientInfo.Description.ToString(),
Locked.ToString(),
SelectedClientInfo.Fix2007.ToString(),
SelectedClientInfo.AlreadyHasSecurity.ToString(),
Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString(),
SelectedClientInfo.CommandLineArgs.ToString()
};
File.WriteAllLines(sfd.FileName, lines);
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
}
}
}
void TextBox4TextChanged(object sender, EventArgs e)
{
SelectedClientInfo.CommandLineArgs = textBox4.Text;
}
void TextBox5TextChanged(object sender, EventArgs e)
{
SelectedClientInfo.Warning = textBox5.Text;
}
private void documentationToolStripMenuItem_Click(object sender, EventArgs e)
{
ClientScriptDocumentation csd = new ClientScriptDocumentation();
csd.Show();
}
//tags
private void clientToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<client></client>");
}
private void serverToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<server></server>");
}
private void soloToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<solo></solo>");
}
private void studioToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<studio></studio>");
}
private void no3dToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<no3d></no3d>");
}
private void sharedToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<shared></shared>");
}
private void variableToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem senderitem = (ToolStripMenuItem)sender;
AddClientinfoText(senderitem.Text);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1.SelectedIndex)
{
case 1:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007;
break;
case 2:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp;
break;
case 3:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL;
break;
case 4:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21;
break;
case 5:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions;
break;
case 6:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic;
break;
case 7:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21;
break;
case 8:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL;
break;
default:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007_NoGraphicsOptions;
break;
}
BeginInvoke(new Action(() => { comboBox1.Select(0, 0); }));
}
#endregion
#region Functions #region Functions
private void AddClientinfoText(string text) private void AddClientinfoText(string text)
{ {
textBox4.Paste(text); textBox4.Paste(text);
} }
void NewClientInfo() void NewClientInfo()
{
label9.Text = "Not Loaded";
SelectedClientInfo.UsesPlayerName = false;
SelectedClientInfo.UsesID = false;
SelectedClientInfo.Warning = "";
SelectedClientInfo.LegacyMode = false;
SelectedClientInfo.Fix2007 = false;
SelectedClientInfo.AlreadyHasSecurity = false;
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp;
SelectedClientInfo.Description = "";
SelectedClientInfo.ClientMD5 = "";
SelectedClientInfo.ScriptMD5 = "";
SelectedClientInfo.CommandLineArgs = "";
Locked = false;
SelectedClientInfoPath = "";
checkBox1.Checked = SelectedClientInfo.UsesPlayerName;
checkBox2.Checked = SelectedClientInfo.UsesID;
checkBox3.Checked = SelectedClientInfo.LegacyMode;
checkBox4.Checked = Locked;
checkBox6.Checked = SelectedClientInfo.Fix2007;
checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity;
switch (SelectedClientInfo.ClientLoadOptions)
{ {
label9.Text = "Not Loaded"; case Settings.GraphicsOptions.ClientLoadOptions.Client_2007:
SelectedClientInfo.UsesPlayerName = false; comboBox1.SelectedIndex = 1;
SelectedClientInfo.UsesID = false; break;
SelectedClientInfo.Warning = ""; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp:
SelectedClientInfo.LegacyMode = false; comboBox1.SelectedIndex = 2;
SelectedClientInfo.Fix2007 = false; break;
SelectedClientInfo.AlreadyHasSecurity = false; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL:
SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; comboBox1.SelectedIndex = 3;
SelectedClientInfo.Description = ""; break;
SelectedClientInfo.ClientMD5 = ""; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21:
SelectedClientInfo.ScriptMD5 = ""; comboBox1.SelectedIndex = 4;
SelectedClientInfo.CommandLineArgs = ""; break;
Locked = false; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions:
SelectedClientInfoPath = ""; comboBox1.SelectedIndex = 5;
checkBox1.Checked = SelectedClientInfo.UsesPlayerName; break;
checkBox2.Checked = SelectedClientInfo.UsesID; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic:
checkBox3.Checked = SelectedClientInfo.LegacyMode; comboBox1.SelectedIndex = 6;
checkBox4.Checked = Locked; break;
checkBox6.Checked = SelectedClientInfo.Fix2007; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity; comboBox1.SelectedIndex = 7;
switch (SelectedClientInfo.ClientLoadOptions) break;
{ case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL:
case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: comboBox1.SelectedIndex = 8;
comboBox1.SelectedIndex = 1; break;
break; default:
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: comboBox1.SelectedIndex = 0;
comboBox1.SelectedIndex = 2; break;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL:
comboBox1.SelectedIndex = 3;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21:
comboBox1.SelectedIndex = 4;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions:
comboBox1.SelectedIndex = 5;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic:
comboBox1.SelectedIndex = 6;
break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21:
comboBox1.SelectedIndex = 7;
break;
default:
comboBox1.SelectedIndex = 0;
break;
}
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox1.Text = SelectedClientInfo.Description;
textBox4.Text = SelectedClientInfo.CommandLineArgs;
textBox5.Text = SelectedClientInfo.Warning;
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
} }
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox1.Text = SelectedClientInfo.Description;
textBox4.Text = SelectedClientInfo.CommandLineArgs;
textBox5.Text = SelectedClientInfo.Warning;
textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control;
}
#endregion #endregion
} }
#endregion #endregion

View File

@ -920,6 +920,7 @@ public class GlobalFuncs
{ {
case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: case Settings.GraphicsOptions.ClientLoadOptions.Client_2007:
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL:
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL:
GraphicsMode = 2; GraphicsMode = 2;
break; break;
case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp:
@ -989,12 +990,19 @@ public class GlobalFuncs
Shadows_2007 = false; Shadows_2007 = false;
break; break;
case Settings.GraphicsOptions.Level.Medium: case Settings.GraphicsOptions.Level.Medium:
MeshDetail = 50; MeshDetail = 75;
ShadingQuality = 50; ShadingQuality = 75;
GFXQualityLevel = 10; GFXQualityLevel = 10;
MaterialQuality = 2; MaterialQuality = 2;
AASamples = 4; AASamples = 4;
Bevels = 2; Bevels = 2;
if (info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic ||
info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 ||
info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21 ||
info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL)
{
Shadows_2008 = 3;
}
Shadows_2007 = false; Shadows_2007 = false;
break; break;
case Settings.GraphicsOptions.Level.High: case Settings.GraphicsOptions.Level.High:

View File

@ -403,13 +403,13 @@ namespace NovetusLauncher
GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\changelog.txt not found.", 2, richTextBox1); GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\changelog.txt not found.", 2, richTextBox1);
} }
if (File.Exists(GlobalPaths.RootPath + "\\credits.txt")) if (File.Exists(GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT"))
{ {
richTextBox3.Text = File.ReadAllText(GlobalPaths.RootPath + "\\credits.txt"); richTextBox3.Text = File.ReadAllText(GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT");
} }
else else
{ {
GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\credits.txt not found.", 2, richTextBox1); GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT not found.", 2, richTextBox1);
} }
if (!File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName)) if (!File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName))

View File

@ -407,13 +407,13 @@ namespace NovetusLauncher
GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\changelog.txt not found.", 2, richTextBox1); GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\changelog.txt not found.", 2, richTextBox1);
} }
if (File.Exists(GlobalPaths.RootPath + "\\credits.txt")) if (File.Exists(GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT"))
{ {
richTextBox3.Text = File.ReadAllText(GlobalPaths.RootPath + "\\credits.txt"); richTextBox3.Text = File.ReadAllText(GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT");
} }
else else
{ {
GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\credits.txt not found.", 2, richTextBox1); GlobalFuncs.ConsolePrint("ERROR - " + GlobalPaths.RootPath + "\\README-AND-CREDITS.TXT not found.", 2, richTextBox1);
} }
if (!File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName)) if (!File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName))