add <validate>

This commit is contained in:
Bitl 2021-11-02 18:17:54 -07:00
parent ca96aa32a4
commit 889ba4a72e
13 changed files with 2777 additions and 103 deletions

View File

@ -1837,7 +1837,7 @@ public class GlobalFuncs
else if (GlobalVars.UserConfiguration.FirstServerLaunch) else if (GlobalVars.UserConfiguration.FirstServerLaunch)
{ {
#if LAUNCHER #if LAUNCHER
MessageBox.Show("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.", "Novetus - Hosting Tips", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.", "Novetus - Hosting Tips", MessageBoxButtons.OK, MessageBoxIcon.Information);
#elif CMD #elif CMD
ConsolePrint("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.\nPress any key to continue...", 4); ConsolePrint("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.\nPress any key to continue...", 4);
Console.ReadKey(); Console.ReadKey();
@ -1878,8 +1878,69 @@ public class GlobalFuncs
FileFormat.ClientInfo info = GetClientInfoValues(ClientName); FileFormat.ClientInfo info = GetClientInfoValues(ClientName);
string quote = "\""; string quote = "\"";
string args = ""; string args = "";
GlobalVars.ValidatedExtraFiles = 0;
if (info.CommandLineArgs.Equals("%args%")) if (!info.AlreadyHasSecurity)
{
string validstart = "<validate>";
string validend = "</validate>";
foreach (string line in info.CommandLineArgs.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
{
if (line.Contains(validstart) && line.Contains(validend))
{
string extractedFile = ScriptFuncs.ClientScript.GetArgsFromTag(line, validstart, validend);
if (!string.IsNullOrWhiteSpace(extractedFile))
{
try
{
string[] parsedFileParams = extractedFile.Split('|');
string filePath = parsedFileParams[0];
string fileMD5 = parsedFileParams[1];
string fullFilePath = GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\" + filePath;
if (!SecurityFuncs.CheckMD5(fileMD5, fullFilePath))
{
#if URI
if (label != null)
{
label.Text = "The client has been detected as modified.";
}
#elif LAUNCHER
if (box != null)
{
ConsolePrint("ERROR - Failed to launch Novetus. (The client has been detected as modified.)", 2, box);
}
#elif CMD
ConsolePrint("ERROR - Failed to launch Novetus. (The client has been detected as modified.)", 2);
#endif
#if URI || LAUNCHER
MessageBox.Show("Failed to launch Novetus. (Error: The client has been detected as modified.)", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
#endif
return;
}
else
{
GlobalVars.ValidatedExtraFiles += 1;
}
}
#if URI || LAUNCHER || CMD
catch (Exception ex)
{
LogExceptions(ex);
#else
catch (Exception)
{
#endif
continue;
}
}
}
}
}
if (info.CommandLineArgs.Contains("%args%"))
{ {
if (!info.Fix2007) if (!info.Fix2007)
{ {
@ -1997,6 +2058,8 @@ public class GlobalFuncs
GlobalVars.GameOpened = GlobalVars.OpenedGame.Client; GlobalVars.GameOpened = GlobalVars.OpenedGame.Client;
break; break;
} }
GlobalVars.ValidatedExtraFiles = 0;
} }
#if URI || LAUNCHER || CMD #if URI || LAUNCHER || CMD
catch (Exception ex) catch (Exception ex)

View File

@ -66,13 +66,6 @@ public static class GlobalVars
public static string soloLoadout = ""; public static string soloLoadout = "";
#endregion #endregion
#region Booleans
public static bool ExtendedVersionNumber = false;
public static bool LocalPlayMode = false;
public static bool AdminMode = false;
public static bool ColorsLoaded = false;
#endregion
#region Discord Variables #region Discord Variables
//discord //discord
public static DiscordRPC.RichPresence presence; public static DiscordRPC.RichPresence presence;
@ -83,5 +76,13 @@ public static class GlobalVars
public static string image_instudio = "instudio_small"; public static string image_instudio = "instudio_small";
public static string image_incustomization = "incustomization_small"; public static string image_incustomization = "incustomization_small";
#endregion #endregion
#region Other
public static bool ExtendedVersionNumber = false;
public static bool LocalPlayMode = false;
public static bool AdminMode = false;
public static bool ColorsLoaded = false;
public static int ValidatedExtraFiles = 0;
#endregion
} }
#endregion #endregion

View File

@ -67,13 +67,15 @@ public class ScriptFuncs
+ (info.UsesPlayerName ? GlobalVars.UserConfiguration.PlayerName : "Player") + "'," + (info.UsesPlayerName ? GlobalVars.UserConfiguration.PlayerName : "Player") + "',"
+ GlobalVars.Loadout + "," + GlobalVars.Loadout + ","
+ md5s + ",'" + md5s + ",'"
+ GlobalVars.UserConfiguration.PlayerTripcode + "');"; + GlobalVars.UserConfiguration.PlayerTripcode
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "'," + GlobalVars.ValidatedExtraFiles.ToString() + ");" : "');");
case ScriptType.Server: case ScriptType.Server:
return "_G.CSServer(" return "_G.CSServer("
+ GlobalVars.UserConfiguration.RobloxPort + "," + GlobalVars.UserConfiguration.RobloxPort + ","
+ GlobalVars.UserConfiguration.PlayerLimit + "," + GlobalVars.UserConfiguration.PlayerLimit + ","
+ md5s + "," + md5s + ","
+ GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower() + ");"; + GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower()
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "," + GlobalVars.ValidatedExtraFiles.ToString() : "") + ");";
case ScriptType.Solo: case ScriptType.Solo:
case ScriptType.EasterEgg: case ScriptType.EasterEgg:
return "_G.CSSolo(" return "_G.CSSolo("
@ -203,11 +205,6 @@ public class ScriptFuncs
} }
} }
public static string GetRawArgsForType(ScriptType type, string ClientName, string luafile)
{
return "dofile('" + luafile + "'); " + Generator.GetScriptFuncForType(ClientName, type);
}
public static int ConvertIconStringToInt() public static int ConvertIconStringToInt()
{ {
switch (GlobalVars.UserCustomization.Icon) switch (GlobalVars.UserCustomization.Icon)
@ -256,6 +253,20 @@ public class ScriptFuncs
return GetFolderAndMapName(source, " -"); return GetFolderAndMapName(source, " -");
} }
public static string GetRawArgsForType(ScriptType type, string ClientName, string luafile)
{
FileFormat.ClientInfo info = GlobalFuncs.GetClientInfoValues(ClientName);
if (!info.Fix2007)
{
return Generator.GetScriptFuncForType(ClientName, type);
}
else
{
return luafile;
}
}
public static string CompileScript(string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true) public static string CompileScript(string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true)
{ {
return CompileScript(GlobalVars.UserConfiguration.SelectedClient, code, tag, endtag, mapfile, luafile, rbxexe, usesharedtags); return CompileScript(GlobalVars.UserConfiguration.SelectedClient, code, tag, endtag, mapfile, luafile, rbxexe, usesharedtags);
@ -310,43 +321,43 @@ public class ScriptFuncs
string md5sd = "'" + md5exe + "','" + md5dir + "','" + md5script + "'"; string md5sd = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
string md5s = "'" + info.ClientMD5 + "','" + md5dir + "','" + info.ScriptMD5 + "'"; string md5s = "'" + info.ClientMD5 + "','" + md5dir + "','" + info.ScriptMD5 + "'";
string compiled = extractedCode.Replace("%version%", GlobalVars.ProgramInformation.Version) string compiled = extractedCode.Replace("%version%", GlobalVars.ProgramInformation.Version)
.Replace("%mapfile%", mapfile) .Replace("%mapfile%", mapfile)
.Replace("%luafile%", luafile) .Replace("%luafile%", luafile)
.Replace("%charapp%", GlobalVars.UserCustomization.CharacterID) .Replace("%charapp%", GlobalVars.UserCustomization.CharacterID)
.Replace("%ip%", GlobalVars.IP) .Replace("%ip%", GlobalVars.IP)
.Replace("%port%", GlobalVars.UserConfiguration.RobloxPort.ToString()) .Replace("%port%", GlobalVars.UserConfiguration.RobloxPort.ToString())
.Replace("%joinport%", GlobalVars.JoinPort.ToString()) .Replace("%joinport%", GlobalVars.JoinPort.ToString())
.Replace("%name%", GlobalVars.UserConfiguration.PlayerName) .Replace("%name%", GlobalVars.UserConfiguration.PlayerName)
.Replace("%icone%", ConvertIconStringToInt().ToString()) .Replace("%icone%", ConvertIconStringToInt().ToString())
.Replace("%icon%", GlobalVars.UserCustomization.Icon) .Replace("%icon%", GlobalVars.UserCustomization.Icon)
.Replace("%id%", GlobalVars.UserConfiguration.UserID.ToString()) .Replace("%id%", GlobalVars.UserConfiguration.UserID.ToString())
.Replace("%face%", GlobalVars.UserCustomization.Face) .Replace("%face%", GlobalVars.UserCustomization.Face)
.Replace("%head%", GlobalVars.UserCustomization.Head) .Replace("%head%", GlobalVars.UserCustomization.Head)
.Replace("%tshirt%", GlobalVars.UserCustomization.TShirt) .Replace("%tshirt%", GlobalVars.UserCustomization.TShirt)
.Replace("%shirt%", GlobalVars.UserCustomization.Shirt) .Replace("%shirt%", GlobalVars.UserCustomization.Shirt)
.Replace("%pants%", GlobalVars.UserCustomization.Pants) .Replace("%pants%", GlobalVars.UserCustomization.Pants)
.Replace("%hat1%", GlobalVars.UserCustomization.Hat1) .Replace("%hat1%", GlobalVars.UserCustomization.Hat1)
.Replace("%hat2%", GlobalVars.UserCustomization.Hat2) .Replace("%hat2%", GlobalVars.UserCustomization.Hat2)
.Replace("%hat3%", GlobalVars.UserCustomization.Hat3) .Replace("%hat3%", GlobalVars.UserCustomization.Hat3)
.Replace("%faced%", GlobalVars.UserCustomization.Face.Contains("http://") ? GlobalVars.UserCustomization.Face : GlobalPaths.faceGameDir + GlobalVars.UserCustomization.Face) .Replace("%faced%", GlobalVars.UserCustomization.Face.Contains("http://") ? GlobalVars.UserCustomization.Face : GlobalPaths.faceGameDir + GlobalVars.UserCustomization.Face)
.Replace("%headd%", GlobalPaths.headGameDir + GlobalVars.UserCustomization.Head) .Replace("%headd%", GlobalPaths.headGameDir + GlobalVars.UserCustomization.Head)
.Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalPaths.tshirtGameDir + GlobalVars.UserCustomization.TShirt) .Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalPaths.tshirtGameDir + GlobalVars.UserCustomization.TShirt)
.Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalPaths.shirtGameDir + GlobalVars.UserCustomization.Shirt) .Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalPaths.shirtGameDir + GlobalVars.UserCustomization.Shirt)
.Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalPaths.pantsGameDir + GlobalVars.UserCustomization.Pants) .Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalPaths.pantsGameDir + GlobalVars.UserCustomization.Pants)
.Replace("%hat1d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat1) .Replace("%hat1d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat1)
.Replace("%hat2d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat2) .Replace("%hat2d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat2)
.Replace("%hat3d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat3) .Replace("%hat3d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat3)
.Replace("%headcolor%", GlobalVars.UserCustomization.HeadColorID.ToString()) .Replace("%headcolor%", GlobalVars.UserCustomization.HeadColorID.ToString())
.Replace("%torsocolor%", GlobalVars.UserCustomization.TorsoColorID.ToString()) .Replace("%torsocolor%", GlobalVars.UserCustomization.TorsoColorID.ToString())
.Replace("%larmcolor%", GlobalVars.UserCustomization.LeftArmColorID.ToString()) .Replace("%larmcolor%", GlobalVars.UserCustomization.LeftArmColorID.ToString())
.Replace("%llegcolor%", GlobalVars.UserCustomization.LeftLegColorID.ToString()) .Replace("%llegcolor%", GlobalVars.UserCustomization.LeftLegColorID.ToString())
.Replace("%rarmcolor%", GlobalVars.UserCustomization.RightArmColorID.ToString()) .Replace("%rarmcolor%", GlobalVars.UserCustomization.RightArmColorID.ToString())
.Replace("%rlegcolor%", GlobalVars.UserCustomization.RightLegColorID.ToString()) .Replace("%rlegcolor%", GlobalVars.UserCustomization.RightLegColorID.ToString())
.Replace("%md5launcher%", md5dir) .Replace("%md5launcher%", md5dir)
.Replace("%md5script%", info.ScriptMD5) .Replace("%md5script%", info.ScriptMD5)
.Replace("%md5exe%", info.ClientMD5) .Replace("%md5exe%", info.ClientMD5)
.Replace("%md5scriptd%", md5script) .Replace("%md5scriptd%", md5script)
.Replace("%md5exed%", md5exe) .Replace("%md5exed%", md5exe)
.Replace("%md5s%", md5s) .Replace("%md5s%", md5s)
.Replace("%md5sd%", md5sd) .Replace("%md5sd%", md5sd)
.Replace("%limit%", GlobalVars.UserConfiguration.PlayerLimit.ToString()) .Replace("%limit%", GlobalVars.UserConfiguration.PlayerLimit.ToString())
@ -354,7 +365,6 @@ public class ScriptFuncs
.Replace("%hat4%", GlobalVars.UserCustomization.Extra) .Replace("%hat4%", GlobalVars.UserCustomization.Extra)
.Replace("%extrad%", GlobalPaths.extraGameDir + GlobalVars.UserCustomization.Extra) .Replace("%extrad%", GlobalPaths.extraGameDir + GlobalVars.UserCustomization.Extra)
.Replace("%hat4d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Extra) .Replace("%hat4d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Extra)
.Replace("%args%", GetRawArgsForType(type, ClientName, luafile))
.Replace("%mapfiled%", GlobalPaths.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\").Replace(@"/", @"\")) .Replace("%mapfiled%", GlobalPaths.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\").Replace(@"/", @"\"))
.Replace("%mapfilec%", extractedCode.Contains("%mapfilec%") ? GlobalFuncs.CopyMapToRBXAsset() : "") .Replace("%mapfilec%", extractedCode.Contains("%mapfilec%") ? GlobalFuncs.CopyMapToRBXAsset() : "")
.Replace("%tripcode%", GlobalVars.UserConfiguration.PlayerTripcode) .Replace("%tripcode%", GlobalVars.UserConfiguration.PlayerTripcode)
@ -362,7 +372,9 @@ public class ScriptFuncs
.Replace("%addonscriptpath%", GlobalPaths.AddonScriptPath) .Replace("%addonscriptpath%", GlobalPaths.AddonScriptPath)
.Replace("%notifications%", GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower()) .Replace("%notifications%", GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower())
.Replace("%loadout%", code.Contains("<solo>") ? GlobalVars.soloLoadout : GlobalVars.Loadout) .Replace("%loadout%", code.Contains("<solo>") ? GlobalVars.soloLoadout : GlobalVars.Loadout)
.Replace("%doublequote%", "\""); .Replace("%doublequote%", "\"")
.Replace("%validatedextrafiles%", GlobalVars.ValidatedExtraFiles.ToString())
.Replace("%argstring%", GetRawArgsForType(type, ClientName, luafile));
if (compiled.Contains("%disabled%")) if (compiled.Contains("%disabled%"))
{ {

View File

@ -135,6 +135,9 @@ public class SecurityFuncs
public static bool CheckMD5(string MD5Hash, string path) public static bool CheckMD5(string MD5Hash, string path)
{ {
if (!File.Exists(path))
return false;
using (var md5 = MD5.Create()) using (var md5 = MD5.Create())
{ {
using (var stream = File.OpenRead(path)) using (var stream = File.OpenRead(path))

View File

@ -144,6 +144,10 @@ partial class ClientinfoEditor
this.comboBox1 = new System.Windows.Forms.ComboBox(); this.comboBox1 = new System.Windows.Forms.ComboBox();
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
this.checkBox5 = new System.Windows.Forms.CheckBox(); this.checkBox5 = new System.Windows.Forms.CheckBox();
this.validatedextrafilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.validateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.argstringToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addValidateTagsForRelativePathToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -326,50 +330,51 @@ partial class ClientinfoEditor
this.soloToolStripMenuItem, this.soloToolStripMenuItem,
this.studioToolStripMenuItem, this.studioToolStripMenuItem,
this.no3dToolStripMenuItem, this.no3dToolStripMenuItem,
this.sharedToolStripMenuItem}); this.sharedToolStripMenuItem,
this.validateToolStripMenuItem});
this.tagsToolStripMenuItem.Name = "tagsToolStripMenuItem"; this.tagsToolStripMenuItem.Name = "tagsToolStripMenuItem";
this.tagsToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.tagsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.tagsToolStripMenuItem.Text = "Add Tags"; this.tagsToolStripMenuItem.Text = "Add Tags";
// //
// clientToolStripMenuItem // clientToolStripMenuItem
// //
this.clientToolStripMenuItem.Name = "clientToolStripMenuItem"; this.clientToolStripMenuItem.Name = "clientToolStripMenuItem";
this.clientToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.clientToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.clientToolStripMenuItem.Text = "<client>"; this.clientToolStripMenuItem.Text = "<client>";
this.clientToolStripMenuItem.Click += new System.EventHandler(this.clientToolStripMenuItem_Click); this.clientToolStripMenuItem.Click += new System.EventHandler(this.clientToolStripMenuItem_Click);
// //
// serverToolStripMenuItem // serverToolStripMenuItem
// //
this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; this.serverToolStripMenuItem.Name = "serverToolStripMenuItem";
this.serverToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.serverToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.serverToolStripMenuItem.Text = "<server>"; this.serverToolStripMenuItem.Text = "<server>";
this.serverToolStripMenuItem.Click += new System.EventHandler(this.serverToolStripMenuItem_Click); this.serverToolStripMenuItem.Click += new System.EventHandler(this.serverToolStripMenuItem_Click);
// //
// soloToolStripMenuItem // soloToolStripMenuItem
// //
this.soloToolStripMenuItem.Name = "soloToolStripMenuItem"; this.soloToolStripMenuItem.Name = "soloToolStripMenuItem";
this.soloToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.soloToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.soloToolStripMenuItem.Text = "<solo>"; this.soloToolStripMenuItem.Text = "<solo>";
this.soloToolStripMenuItem.Click += new System.EventHandler(this.soloToolStripMenuItem_Click); this.soloToolStripMenuItem.Click += new System.EventHandler(this.soloToolStripMenuItem_Click);
// //
// studioToolStripMenuItem // studioToolStripMenuItem
// //
this.studioToolStripMenuItem.Name = "studioToolStripMenuItem"; this.studioToolStripMenuItem.Name = "studioToolStripMenuItem";
this.studioToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.studioToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.studioToolStripMenuItem.Text = "<studio>"; this.studioToolStripMenuItem.Text = "<studio>";
this.studioToolStripMenuItem.Click += new System.EventHandler(this.studioToolStripMenuItem_Click); this.studioToolStripMenuItem.Click += new System.EventHandler(this.studioToolStripMenuItem_Click);
// //
// no3dToolStripMenuItem // no3dToolStripMenuItem
// //
this.no3dToolStripMenuItem.Name = "no3dToolStripMenuItem"; this.no3dToolStripMenuItem.Name = "no3dToolStripMenuItem";
this.no3dToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.no3dToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.no3dToolStripMenuItem.Text = "<no3d>"; this.no3dToolStripMenuItem.Text = "<no3d>";
this.no3dToolStripMenuItem.Click += new System.EventHandler(this.no3dToolStripMenuItem_Click); this.no3dToolStripMenuItem.Click += new System.EventHandler(this.no3dToolStripMenuItem_Click);
// //
// sharedToolStripMenuItem // sharedToolStripMenuItem
// //
this.sharedToolStripMenuItem.Name = "sharedToolStripMenuItem"; this.sharedToolStripMenuItem.Name = "sharedToolStripMenuItem";
this.sharedToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.sharedToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.sharedToolStripMenuItem.Text = "<shared>"; this.sharedToolStripMenuItem.Text = "<shared>";
this.sharedToolStripMenuItem.Click += new System.EventHandler(this.sharedToolStripMenuItem_Click); this.sharedToolStripMenuItem.Click += new System.EventHandler(this.sharedToolStripMenuItem_Click);
// //
@ -383,7 +388,7 @@ partial class ClientinfoEditor
this.debuggingToolStripMenuItem, this.debuggingToolStripMenuItem,
this.argsToolStripMenuItem}); this.argsToolStripMenuItem});
this.variablesToolStripMenuItem.Name = "variablesToolStripMenuItem"; this.variablesToolStripMenuItem.Name = "variablesToolStripMenuItem";
this.variablesToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.variablesToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.variablesToolStripMenuItem.Text = "Add Variables"; this.variablesToolStripMenuItem.Text = "Add Variables";
// //
// generalToolStripMenuItem // generalToolStripMenuItem
@ -399,85 +404,87 @@ partial class ClientinfoEditor
this.scripttypeToolStripMenuItem, this.scripttypeToolStripMenuItem,
this.versionToolStripMenuItem, this.versionToolStripMenuItem,
this.doublequoteToolStripMenuItem, this.doublequoteToolStripMenuItem,
this.joinportToolStripMenuItem}); this.joinportToolStripMenuItem,
this.validatedextrafilesToolStripMenuItem,
this.argstringToolStripMenuItem});
this.generalToolStripMenuItem.Name = "generalToolStripMenuItem"; this.generalToolStripMenuItem.Name = "generalToolStripMenuItem";
this.generalToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.generalToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.generalToolStripMenuItem.Text = "General"; this.generalToolStripMenuItem.Text = "General";
// //
// mapfileToolStripMenuItem // mapfileToolStripMenuItem
// //
this.mapfileToolStripMenuItem.Name = "mapfileToolStripMenuItem"; this.mapfileToolStripMenuItem.Name = "mapfileToolStripMenuItem";
this.mapfileToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.mapfileToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.mapfileToolStripMenuItem.Text = "%mapfile%"; this.mapfileToolStripMenuItem.Text = "%mapfile%";
this.mapfileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.mapfileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// mapfiledToolStripMenuItem // mapfiledToolStripMenuItem
// //
this.mapfiledToolStripMenuItem.Name = "mapfiledToolStripMenuItem"; this.mapfiledToolStripMenuItem.Name = "mapfiledToolStripMenuItem";
this.mapfiledToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.mapfiledToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.mapfiledToolStripMenuItem.Text = "%mapfiled%"; this.mapfiledToolStripMenuItem.Text = "%mapfiled%";
this.mapfiledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.mapfiledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// mapfilecToolStripMenuItem // mapfilecToolStripMenuItem
// //
this.mapfilecToolStripMenuItem.Name = "mapfilecToolStripMenuItem"; this.mapfilecToolStripMenuItem.Name = "mapfilecToolStripMenuItem";
this.mapfilecToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.mapfilecToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.mapfilecToolStripMenuItem.Text = "%mapfilec%"; this.mapfilecToolStripMenuItem.Text = "%mapfilec%";
this.mapfilecToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.mapfilecToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// luafileToolStripMenuItem // luafileToolStripMenuItem
// //
this.luafileToolStripMenuItem.Name = "luafileToolStripMenuItem"; this.luafileToolStripMenuItem.Name = "luafileToolStripMenuItem";
this.luafileToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.luafileToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.luafileToolStripMenuItem.Text = "%luafile%"; this.luafileToolStripMenuItem.Text = "%luafile%";
this.luafileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.luafileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// ipToolStripMenuItem // ipToolStripMenuItem
// //
this.ipToolStripMenuItem.Name = "ipToolStripMenuItem"; this.ipToolStripMenuItem.Name = "ipToolStripMenuItem";
this.ipToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.ipToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.ipToolStripMenuItem.Text = "%ip%"; this.ipToolStripMenuItem.Text = "%ip%";
this.ipToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.ipToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// portToolStripMenuItem // portToolStripMenuItem
// //
this.portToolStripMenuItem.Name = "portToolStripMenuItem"; this.portToolStripMenuItem.Name = "portToolStripMenuItem";
this.portToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.portToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.portToolStripMenuItem.Text = "%port%"; this.portToolStripMenuItem.Text = "%port%";
this.portToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.portToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// addonscriptpathToolStripMenuItem // addonscriptpathToolStripMenuItem
// //
this.addonscriptpathToolStripMenuItem.Name = "addonscriptpathToolStripMenuItem"; this.addonscriptpathToolStripMenuItem.Name = "addonscriptpathToolStripMenuItem";
this.addonscriptpathToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.addonscriptpathToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.addonscriptpathToolStripMenuItem.Text = "%addonscriptpath%"; this.addonscriptpathToolStripMenuItem.Text = "%addonscriptpath%";
this.addonscriptpathToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.addonscriptpathToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// scripttypeToolStripMenuItem // scripttypeToolStripMenuItem
// //
this.scripttypeToolStripMenuItem.Name = "scripttypeToolStripMenuItem"; this.scripttypeToolStripMenuItem.Name = "scripttypeToolStripMenuItem";
this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.scripttypeToolStripMenuItem.Text = "%scripttype%"; this.scripttypeToolStripMenuItem.Text = "%scripttype%";
this.scripttypeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.scripttypeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// versionToolStripMenuItem // versionToolStripMenuItem
// //
this.versionToolStripMenuItem.Name = "versionToolStripMenuItem"; this.versionToolStripMenuItem.Name = "versionToolStripMenuItem";
this.versionToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.versionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.versionToolStripMenuItem.Text = "%version%"; this.versionToolStripMenuItem.Text = "%version%";
this.versionToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.versionToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// doublequoteToolStripMenuItem // doublequoteToolStripMenuItem
// //
this.doublequoteToolStripMenuItem.Name = "doublequoteToolStripMenuItem"; this.doublequoteToolStripMenuItem.Name = "doublequoteToolStripMenuItem";
this.doublequoteToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.doublequoteToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.doublequoteToolStripMenuItem.Text = "%doublequote%"; this.doublequoteToolStripMenuItem.Text = "%doublequote%";
this.doublequoteToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.doublequoteToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// joinportToolStripMenuItem // joinportToolStripMenuItem
// //
this.joinportToolStripMenuItem.Name = "joinportToolStripMenuItem"; this.joinportToolStripMenuItem.Name = "joinportToolStripMenuItem";
this.joinportToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.joinportToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.joinportToolStripMenuItem.Text = "%joinport%"; this.joinportToolStripMenuItem.Text = "%joinport%";
this.joinportToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.joinportToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
@ -487,20 +494,20 @@ partial class ClientinfoEditor
this.limitToolStripMenuItem, this.limitToolStripMenuItem,
this.notificationsToolStripMenuItem}); this.notificationsToolStripMenuItem});
this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1"; this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1";
this.serverToolStripMenuItem1.Size = new System.Drawing.Size(163, 22); this.serverToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
this.serverToolStripMenuItem1.Text = "Server"; this.serverToolStripMenuItem1.Text = "Server";
// //
// limitToolStripMenuItem // limitToolStripMenuItem
// //
this.limitToolStripMenuItem.Name = "limitToolStripMenuItem"; this.limitToolStripMenuItem.Name = "limitToolStripMenuItem";
this.limitToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.limitToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.limitToolStripMenuItem.Text = "%limit%"; this.limitToolStripMenuItem.Text = "%limit%";
this.limitToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.limitToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// notificationsToolStripMenuItem // notificationsToolStripMenuItem
// //
this.notificationsToolStripMenuItem.Name = "notificationsToolStripMenuItem"; this.notificationsToolStripMenuItem.Name = "notificationsToolStripMenuItem";
this.notificationsToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.notificationsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.notificationsToolStripMenuItem.Text = "%notifications%"; this.notificationsToolStripMenuItem.Text = "%notifications%";
this.notificationsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.notificationsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
@ -515,55 +522,55 @@ partial class ClientinfoEditor
this.md5sToolStripMenuItem, this.md5sToolStripMenuItem,
this.md5sdToolStripMenuItem}); this.md5sdToolStripMenuItem});
this.securityToolStripMenuItem.Name = "securityToolStripMenuItem"; this.securityToolStripMenuItem.Name = "securityToolStripMenuItem";
this.securityToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.securityToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.securityToolStripMenuItem.Text = "Security"; this.securityToolStripMenuItem.Text = "Security";
// //
// md5launcherToolStripMenuItem // md5launcherToolStripMenuItem
// //
this.md5launcherToolStripMenuItem.Name = "md5launcherToolStripMenuItem"; this.md5launcherToolStripMenuItem.Name = "md5launcherToolStripMenuItem";
this.md5launcherToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5launcherToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5launcherToolStripMenuItem.Text = "%md5launcher%"; this.md5launcherToolStripMenuItem.Text = "%md5launcher%";
this.md5launcherToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5launcherToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5scriptToolStripMenuItem // md5scriptToolStripMenuItem
// //
this.md5scriptToolStripMenuItem.Name = "md5scriptToolStripMenuItem"; this.md5scriptToolStripMenuItem.Name = "md5scriptToolStripMenuItem";
this.md5scriptToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5scriptToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5scriptToolStripMenuItem.Text = "%md5script%"; this.md5scriptToolStripMenuItem.Text = "%md5script%";
this.md5scriptToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5scriptToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5exeToolStripMenuItem // md5exeToolStripMenuItem
// //
this.md5exeToolStripMenuItem.Name = "md5exeToolStripMenuItem"; this.md5exeToolStripMenuItem.Name = "md5exeToolStripMenuItem";
this.md5exeToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5exeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5exeToolStripMenuItem.Text = "%md5exe%"; this.md5exeToolStripMenuItem.Text = "%md5exe%";
this.md5exeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5exeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5scriptdToolStripMenuItem // md5scriptdToolStripMenuItem
// //
this.md5scriptdToolStripMenuItem.Name = "md5scriptdToolStripMenuItem"; this.md5scriptdToolStripMenuItem.Name = "md5scriptdToolStripMenuItem";
this.md5scriptdToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5scriptdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5scriptdToolStripMenuItem.Text = "%md5scriptd%"; this.md5scriptdToolStripMenuItem.Text = "%md5scriptd%";
this.md5scriptdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5scriptdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5exedToolStripMenuItem // md5exedToolStripMenuItem
// //
this.md5exedToolStripMenuItem.Name = "md5exedToolStripMenuItem"; this.md5exedToolStripMenuItem.Name = "md5exedToolStripMenuItem";
this.md5exedToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5exedToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5exedToolStripMenuItem.Text = "%md5exed%"; this.md5exedToolStripMenuItem.Text = "%md5exed%";
this.md5exedToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5exedToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5sToolStripMenuItem // md5sToolStripMenuItem
// //
this.md5sToolStripMenuItem.Name = "md5sToolStripMenuItem"; this.md5sToolStripMenuItem.Name = "md5sToolStripMenuItem";
this.md5sToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5sToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5sToolStripMenuItem.Text = "%md5s%"; this.md5sToolStripMenuItem.Text = "%md5s%";
this.md5sToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5sToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// md5sdToolStripMenuItem // md5sdToolStripMenuItem
// //
this.md5sdToolStripMenuItem.Name = "md5sdToolStripMenuItem"; this.md5sdToolStripMenuItem.Name = "md5sdToolStripMenuItem";
this.md5sdToolStripMenuItem.Size = new System.Drawing.Size(164, 22); this.md5sdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.md5sdToolStripMenuItem.Text = "%md5sd%"; this.md5sdToolStripMenuItem.Text = "%md5sd%";
this.md5sdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.md5sdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
@ -575,7 +582,7 @@ partial class ClientinfoEditor
this.idToolStripMenuItem, this.idToolStripMenuItem,
this.tripcodeToolStripMenuItem}); this.tripcodeToolStripMenuItem});
this.playerToolStripMenuItem.Name = "playerToolStripMenuItem"; this.playerToolStripMenuItem.Name = "playerToolStripMenuItem";
this.playerToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.playerToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.playerToolStripMenuItem.Text = "Player"; this.playerToolStripMenuItem.Text = "Player";
// //
// customizationToolStripMenuItem // customizationToolStripMenuItem
@ -592,7 +599,7 @@ partial class ClientinfoEditor
this.charappToolStripMenuItem, this.charappToolStripMenuItem,
this.loadoutToolStripMenuItem}); this.loadoutToolStripMenuItem});
this.customizationToolStripMenuItem.Name = "customizationToolStripMenuItem"; this.customizationToolStripMenuItem.Name = "customizationToolStripMenuItem";
this.customizationToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.customizationToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.customizationToolStripMenuItem.Text = "Customization"; this.customizationToolStripMenuItem.Text = "Customization";
// //
// bodyColorsToolStripMenuItem // bodyColorsToolStripMenuItem
@ -892,21 +899,21 @@ partial class ClientinfoEditor
// nameToolStripMenuItem // nameToolStripMenuItem
// //
this.nameToolStripMenuItem.Name = "nameToolStripMenuItem"; this.nameToolStripMenuItem.Name = "nameToolStripMenuItem";
this.nameToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.nameToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.nameToolStripMenuItem.Text = "%name%"; this.nameToolStripMenuItem.Text = "%name%";
this.nameToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.nameToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// idToolStripMenuItem // idToolStripMenuItem
// //
this.idToolStripMenuItem.Name = "idToolStripMenuItem"; this.idToolStripMenuItem.Name = "idToolStripMenuItem";
this.idToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.idToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.idToolStripMenuItem.Text = "%id%"; this.idToolStripMenuItem.Text = "%id%";
this.idToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.idToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// tripcodeToolStripMenuItem // tripcodeToolStripMenuItem
// //
this.tripcodeToolStripMenuItem.Name = "tripcodeToolStripMenuItem"; this.tripcodeToolStripMenuItem.Name = "tripcodeToolStripMenuItem";
this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.tripcodeToolStripMenuItem.Text = "%tripcode%"; this.tripcodeToolStripMenuItem.Text = "%tripcode%";
this.tripcodeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.tripcodeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
@ -916,34 +923,34 @@ partial class ClientinfoEditor
this.donothingToolStripMenuItem, this.donothingToolStripMenuItem,
this.disabledToolStripMenuItem}); this.disabledToolStripMenuItem});
this.debuggingToolStripMenuItem.Name = "debuggingToolStripMenuItem"; this.debuggingToolStripMenuItem.Name = "debuggingToolStripMenuItem";
this.debuggingToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.debuggingToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.debuggingToolStripMenuItem.Text = "Debugging/Misc"; this.debuggingToolStripMenuItem.Text = "Debugging/Misc";
// //
// donothingToolStripMenuItem // donothingToolStripMenuItem
// //
this.donothingToolStripMenuItem.Name = "donothingToolStripMenuItem"; this.donothingToolStripMenuItem.Name = "donothingToolStripMenuItem";
this.donothingToolStripMenuItem.Size = new System.Drawing.Size(150, 22); this.donothingToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.donothingToolStripMenuItem.Text = "%donothing%"; this.donothingToolStripMenuItem.Text = "%donothing%";
this.donothingToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.donothingToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// disabledToolStripMenuItem // disabledToolStripMenuItem
// //
this.disabledToolStripMenuItem.Name = "disabledToolStripMenuItem"; this.disabledToolStripMenuItem.Name = "disabledToolStripMenuItem";
this.disabledToolStripMenuItem.Size = new System.Drawing.Size(150, 22); this.disabledToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.disabledToolStripMenuItem.Text = "%disabled%"; this.disabledToolStripMenuItem.Text = "%disabled%";
this.disabledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.disabledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// argsToolStripMenuItem // argsToolStripMenuItem
// //
this.argsToolStripMenuItem.Name = "argsToolStripMenuItem"; this.argsToolStripMenuItem.Name = "argsToolStripMenuItem";
this.argsToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.argsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.argsToolStripMenuItem.Text = "%args%"; this.argsToolStripMenuItem.Text = "%args%";
this.argsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); this.argsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
// //
// documentationToolStripMenuItem1 // documentationToolStripMenuItem1
// //
this.documentationToolStripMenuItem1.Name = "documentationToolStripMenuItem1"; this.documentationToolStripMenuItem1.Name = "documentationToolStripMenuItem1";
this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(157, 22); this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
this.documentationToolStripMenuItem1.Text = "Documentation"; this.documentationToolStripMenuItem1.Text = "Documentation";
this.documentationToolStripMenuItem1.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click); this.documentationToolStripMenuItem1.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click);
// //
@ -1070,6 +1077,36 @@ partial class ClientinfoEditor
this.checkBox5.UseVisualStyleBackColor = true; this.checkBox5.UseVisualStyleBackColor = true;
this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged); this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged);
// //
// validatedextrafilesToolStripMenuItem
//
this.validatedextrafilesToolStripMenuItem.Name = "validatedextrafilesToolStripMenuItem";
this.validatedextrafilesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.validatedextrafilesToolStripMenuItem.Text = "%validatedextrafiles%";
this.validatedextrafilesToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
//
// validateToolStripMenuItem
//
this.validateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addValidateTagsForRelativePathToolStripMenuItem});
this.validateToolStripMenuItem.Name = "validateToolStripMenuItem";
this.validateToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.validateToolStripMenuItem.Text = "<validate>";
this.validateToolStripMenuItem.Click += new System.EventHandler(this.validateToolStripMenuItem_Click);
//
// argstringToolStripMenuItem
//
this.argstringToolStripMenuItem.Name = "argstringToolStripMenuItem";
this.argstringToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
this.argstringToolStripMenuItem.Text = "%argstring%";
this.argstringToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
//
// addValidateTagsForRelativePathToolStripMenuItem
//
this.addValidateTagsForRelativePathToolStripMenuItem.Name = "addValidateTagsForRelativePathToolStripMenuItem";
this.addValidateTagsForRelativePathToolStripMenuItem.Size = new System.Drawing.Size(255, 22);
this.addValidateTagsForRelativePathToolStripMenuItem.Text = "Add Validate Tags for Relative Path";
this.addValidateTagsForRelativePathToolStripMenuItem.Click += new System.EventHandler(this.addValidateTagsForRelativePathToolStripMenuItem_click);
//
// ClientinfoEditor // ClientinfoEditor
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -1216,4 +1253,8 @@ partial class ClientinfoEditor
private System.Windows.Forms.ToolStripMenuItem notificationsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem notificationsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem joinportToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem joinportToolStripMenuItem;
private System.Windows.Forms.CheckBox checkBox5; private System.Windows.Forms.CheckBox checkBox5;
private System.Windows.Forms.ToolStripMenuItem validateToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem validatedextrafilesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem argstringToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addValidateTagsForRelativePathToolStripMenuItem;
} }

View File

@ -3,6 +3,7 @@ using System;
using System.Windows.Forms; using System.Windows.Forms;
using System.IO; using System.IO;
using System.Globalization; using System.Globalization;
using System.Collections.Generic;
#endregion #endregion
#region Client SDK #region Client SDK
@ -12,10 +13,11 @@ public partial class ClientinfoEditor : Form
private FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo(); private FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo();
private string SelectedClientInfoPath = ""; private string SelectedClientInfoPath = "";
private bool Locked = false; private bool Locked = false;
#endregion public string RelativePath = "";
#endregion
#region Constructor #region Constructor
public ClientinfoEditor() public ClientinfoEditor()
{ {
InitializeComponent(); InitializeComponent();
} }
@ -262,7 +264,7 @@ public partial class ClientinfoEditor : Form
} }
else else
{ {
MessageBox.Show("You must save the into a seperate directory with a client in it, generate the IDs, then use this option.", "Novetus Client SDK - Error when saving to client.", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("This client info file is not saved in your client's directory. Please save it in your client's directory before using.", "Novetus Client SDK - Error when saving to client.", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
@ -378,6 +380,11 @@ public partial class ClientinfoEditor : Form
AddClientinfoText("<shared></shared>"); AddClientinfoText("<shared></shared>");
} }
private void validateToolStripMenuItem_Click(object sender, EventArgs e)
{
AddClientinfoText("<validate>[FILE PATH IN CLIENT DIRECTORY]|[FILE MD5]</validate>");
}
private void variableToolStripMenuItem_Click(object sender, EventArgs e) private void variableToolStripMenuItem_Click(object sender, EventArgs e)
{ {
ToolStripMenuItem senderitem = (ToolStripMenuItem)sender; ToolStripMenuItem senderitem = (ToolStripMenuItem)sender;
@ -394,6 +401,37 @@ public partial class ClientinfoEditor : Form
{ {
SelectedClientInfo.SeperateFolders = checkBox5.Checked; SelectedClientInfo.SeperateFolders = checkBox5.Checked;
} }
private void addValidateTagsForRelativePathToolStripMenuItem_click(object sender, EventArgs e)
{
ClientinfoCreatorValidatePathForm pathForm = new ClientinfoCreatorValidatePathForm(this);
pathForm.ShowDialog();
if (!string.IsNullOrWhiteSpace(SelectedClientInfoPath))
{
string fullpath = SelectedClientInfoPath + "\\" + RelativePath;
DirectoryInfo dir = new DirectoryInfo(fullpath);
FileInfo[] Files = dir.GetFiles("*.*");
List<string> text = new List<string>();
foreach (FileInfo file in Files)
{
string fileMD5 = SecurityFuncs.GenerateMD5(file.FullName);
string filePathStrip = file.FullName.Replace(SelectedClientInfoPath, "");
string filePathStripCheck = (string.IsNullOrWhiteSpace(RelativePath) ? filePathStrip.Replace(@"/", "").Replace(@"\", "") : filePathStrip);
text.Add("<validate>" + filePathStripCheck + "|" + fileMD5 + "</validate>");
}
string joined = string.Join("\r\n", text);
AddClientinfoText(joined.Replace(@"\", "/"));
}
else
{
MessageBox.Show("This client info file is not saved in your client's directory. Please save it in your client's directory before using.", "Novetus Client SDK - Error when adding Validate tags.", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion #endregion
#region Functions #region Functions

View File

@ -0,0 +1,87 @@

partial class ClientinfoCreatorValidatePathForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ClientinfoCreatorValidatePathForm));
this.TextEntry = new System.Windows.Forms.TextBox();
this.infoLabel = new System.Windows.Forms.Label();
this.applyButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// TextEntry
//
this.TextEntry.Location = new System.Drawing.Point(12, 25);
this.TextEntry.Name = "TextEntry";
this.TextEntry.Size = new System.Drawing.Size(295, 20);
this.TextEntry.TabIndex = 0;
//
// infoLabel
//
this.infoLabel.AutoSize = true;
this.infoLabel.Location = new System.Drawing.Point(75, 9);
this.infoLabel.Name = "infoLabel";
this.infoLabel.Size = new System.Drawing.Size(179, 13);
this.infoLabel.TabIndex = 1;
this.infoLabel.Text = "Enter path relative to client directory.";
//
// applyButton
//
this.applyButton.Location = new System.Drawing.Point(122, 51);
this.applyButton.Name = "applyButton";
this.applyButton.Size = new System.Drawing.Size(75, 23);
this.applyButton.TabIndex = 2;
this.applyButton.Text = "OK";
this.applyButton.UseVisualStyleBackColor = true;
this.applyButton.Click += new System.EventHandler(this.applyButton_Click);
//
// ClientinfoCreatorValidatePathForm
//
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(320, 80);
this.Controls.Add(this.applyButton);
this.Controls.Add(this.infoLabel);
this.Controls.Add(this.TextEntry);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "ClientinfoCreatorValidatePathForm";
this.Text = "Add Validate Tags for Relative Path";
this.Load += new System.EventHandler(this.ClientinfoCreatorValidatePathForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
public System.Windows.Forms.TextBox TextEntry;
private System.Windows.Forms.Label infoLabel;
private System.Windows.Forms.Button applyButton;
}

View File

@ -0,0 +1,23 @@
using System.Windows.Forms;
public partial class ClientinfoCreatorValidatePathForm : Form
{
private ClientinfoEditor FormParent;
public ClientinfoCreatorValidatePathForm(ClientinfoEditor par)
{
InitializeComponent();
FormParent = par;
}
private void ClientinfoCreatorValidatePathForm_Load(object sender, System.EventArgs e)
{
CenterToScreen();
}
private void applyButton_Click(object sender, System.EventArgs e)
{
FormParent.RelativePath = TextEntry.Text;
Close();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -111,6 +111,7 @@ public partial class NovetusSDK : Form
#else #else
GlobalFuncs.LaunchRBXClient("ClientScriptTester", ScriptType.Client, false, false, null); GlobalFuncs.LaunchRBXClient("ClientScriptTester", ScriptType.Client, false, false, null);
#endif #endif
GlobalVars.GameOpened = GlobalVars.OpenedGame.None;
break; break;
case SDKApps.XMLContentEditor: case SDKApps.XMLContentEditor:
XMLContentEditor xml = new XMLContentEditor(); XMLContentEditor xml = new XMLContentEditor();

View File

@ -221,6 +221,12 @@
<Compile Include="Forms\SDK\ClientScriptDocumentation.Designer.cs"> <Compile Include="Forms\SDK\ClientScriptDocumentation.Designer.cs">
<DependentUpon>ClientScriptDocumentation.cs</DependentUpon> <DependentUpon>ClientScriptDocumentation.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\SDK\ClientinfoCreatorValidatePathForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\SDK\ClientinfoCreatorValidatePathForm.Designer.cs">
<DependentUpon>ClientinfoCreatorValidatePathForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\SDK\DiogenesEditor.cs"> <Compile Include="Forms\SDK\DiogenesEditor.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -316,6 +322,9 @@
<EmbeddedResource Include="Forms\SDK\ClientScriptDocumentation.resx"> <EmbeddedResource Include="Forms\SDK\ClientScriptDocumentation.resx">
<DependentUpon>ClientScriptDocumentation.cs</DependentUpon> <DependentUpon>ClientScriptDocumentation.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\SDK\ClientinfoCreatorValidatePathForm.resx">
<DependentUpon>ClientinfoCreatorValidatePathForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\SDK\DiogenesEditor.resx"> <EmbeddedResource Include="Forms\SDK\DiogenesEditor.resx">
<DependentUpon>DiogenesEditor.cs</DependentUpon> <DependentUpon>DiogenesEditor.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@ -58,11 +58,19 @@ Changes from Pre-Release 5:
- You can no longer change clients when a game is open. - You can no longer change clients when a game is open.
- Novetus will not let you close the launcher unless the currently running game is closed. - Novetus will not let you close the launcher unless the currently running game is closed.
- Novetus will not let you change styles unless the currently running game is closed. - Novetus will not let you change styles unless the currently running game is closed.
- Nonetus will not let you restart the launcher after changing a setting that requires it to restart. - Novetus will not let you restart the launcher after changing a setting that requires it to restart.
- These changes were done so master server lists can have valid servers, and to reduce accidential closings of Novetus. - These changes were done so master server lists can have valid servers, and to reduce accidential closings of Novetus.
- Novetus will show hosting tips when hosting servers for the first time. - Novetus will show hosting tips when hosting servers for the first time.
- Added proper core scripts to 2011M and 2011E. - Added proper core scripts to 2011M and 2011E.
- Credits go to Nostal-ia for getting 2011M corescripts working and helping me with 2011E corescripts. - Credits go to Nostal-ia for getting 2011M corescripts working and helping me with 2011E corescripts.
- Clientscript changes:
- Added the following tags:
<validate> - Validates a file via MD5 in the following format: [FILE PATH IN CLIENT DIRECTORY]|[FILE MD5]. Only tag compatible with %args%.
- Added the following variables:
%validatedextrafiles% - Returns the total number of files that have been validated with <validate>.
%argstring% - Gets the default script arguments for a tag.
- ClientScript will no longer load %args% as a variable. If %args% is detected in any way, the client will NOT use any tag except for <validate>. Use %argstring% if you need %args% as a variable.
- The Client SDK now allows users to create <validate> tags for a directory relative to a client's directory.
Changes from 1.2.4.1: Changes from 1.2.4.1:
- The OBJ2MeshV1GUI, The Asset Localizer, and the Item SDK have been merged to form the Asset SDK! - The OBJ2MeshV1GUI, The Asset Localizer, and the Item SDK have been merged to form the Asset SDK!
- Works with the Roblox Asset Delivery API! Note: Script assets wil have to be downloaded manually in order to be used in scripts. - Works with the Roblox Asset Delivery API! Note: Script assets wil have to be downloaded manually in order to be used in scripts.

View File

@ -6,6 +6,7 @@ List of tags:
<solo> - Tag for Solo. <solo> - Tag for Solo.
<studio> - Tag for Studio. <studio> - Tag for Studio.
<shared> - Shared tag used for all types. <shared> - Shared tag used for all types.
<validate> - Validates a file via MD5 in the following format: [FILE PATH IN CLIENT DIRECTORY]|[FILE MD5]. Only tag compatible with %args%.
List of variables: List of variables:
------------------ ------------------
@ -14,14 +15,17 @@ General:
%mapfiled% - Returns the rbxasset:// file path of the selected map. %mapfiled% - Returns the rbxasset:// file path of the selected map.
%mapfilec% - Copies the map file to the base rbxasset:// directory then returns the rbxasset:// path to the map. Returns empty if unsuccessful. Useful for newer clients. %mapfilec% - Copies the map file to the base rbxasset:// directory then returns the rbxasset:// path to the map. Returns empty if unsuccessful. Useful for newer clients.
%luafile% - Selected client's script filename + path. %luafile% - Selected client's script filename + path.
%args% - Default arguments provided by Novetus for launching clients. Use only this without any tags if you want default Novetus arguments or use with tags to get the default arguments for a tag (requires quotation marks for the latter). %args% - Default arguments provided by Novetus for launching clients. Use only this without any tags (except for <validate>) if you want default Novetus arguments.
%argstring% - Gets the default script arguments for a tag.
%ip% - Current IP address. %ip% - Current IP address.
%port% - Returns the port when hosting a server. %port% - Returns the port when hosting a server.
%addonscriptpath% - The path to an additional server script used by NovetusCMD. %addonscriptpath% - The path to an additional server script used by NovetusCMD.
%scripttype% - Returns the type of script we are using as a string. %scripttype% - Returns the type of script we are using as a string.
%version% - Returns Novetus' version. %version% - Returns Novetus' version.
%doublequote% - Returns a double-quote character. Use in place of a normal double quote ("). %doublequote% - Returns a double-quote character. Use in place of a normal double quote (").
Returns the port when joining a server. - Returns the port when joining a server. %joinport% - Returns the port when joining a server.
%validatedfiles% - Returns the total number of files that have been validated.
%validatedextrafiles% - Returns the total number of files that have been validated with <validate>.
Server: Server:
%limit% - Max Player limit. %limit% - Max Player limit.