mirror of
https://github.com/Novetus/Novetus_src.git
synced 2025-01-31 09:41:33 +02:00
Script signing
This commit is contained in:
parent
cc49d31053
commit
cecab706b5
@ -4,6 +4,9 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
@ -12,9 +15,51 @@ using System.Xml.Linq;
|
||||
#region Script Functions
|
||||
public class ScriptFuncs
|
||||
{
|
||||
#region Script Generator
|
||||
#region Script Generator/Signer
|
||||
public class Generator
|
||||
{
|
||||
public static void SignGeneratedScript(string scriptFileName, bool newSigFormat = false, bool encodeInBase64 = true)
|
||||
{
|
||||
string privateKeyPath = Path.GetDirectoryName(scriptFileName) + "//privatekey.txt";
|
||||
|
||||
if (File.Exists(privateKeyPath))
|
||||
{
|
||||
//init vars
|
||||
string format = newSigFormat ? "--rbxsig%{0}%{1}" : "%{0}%{1}";
|
||||
byte[] blob = Encoding.Default.GetBytes(File.ReadAllText(privateKeyPath));
|
||||
|
||||
if (encodeInBase64)
|
||||
{
|
||||
blob = Convert.FromBase64String(Encoding.Default.GetString(blob));
|
||||
}
|
||||
|
||||
//create cryptography providers
|
||||
var shaCSP = new SHA1CryptoServiceProvider();
|
||||
var rsaCSP = new RSACryptoServiceProvider();
|
||||
rsaCSP.ImportCspBlob(blob);
|
||||
|
||||
// sign script
|
||||
string script = "\r\n" + File.ReadAllText(scriptFileName);
|
||||
byte[] signature = rsaCSP.SignData(Encoding.Default.GetBytes(script), shaCSP);
|
||||
// override file.
|
||||
GlobalFuncs.FixedFileDelete(scriptFileName);
|
||||
File.WriteAllText(scriptFileName, string.Format(format, Convert.ToBase64String(signature), script));
|
||||
}
|
||||
else
|
||||
{
|
||||
//create the signature file if it doesn't exist
|
||||
var signingRSACSP = new RSACryptoServiceProvider(1024);
|
||||
byte[] privateKeyBlob = signingRSACSP.ExportCspBlob(true);
|
||||
signingRSACSP.Dispose();
|
||||
|
||||
// save our text file in the script's directory
|
||||
File.WriteAllText(privateKeyPath, encodeInBase64 ? Convert.ToBase64String(privateKeyBlob) : Encoding.Default.GetString(privateKeyBlob));
|
||||
|
||||
// try signing again.
|
||||
SignGeneratedScript(scriptFileName, encodeInBase64);
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetScriptFuncForType(ScriptType type)
|
||||
{
|
||||
return GetScriptFuncForType(GlobalVars.UserConfiguration.SelectedClient, type);
|
||||
@ -132,11 +177,19 @@ public class ScriptFuncs
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllLines(
|
||||
(GlobalVars.SelectedClientInfo.SeperateFolders ?
|
||||
GlobalPaths.ClientDir + @"\\" + ClientName + @"\\" + GlobalFuncs.GetClientSeperateFolderName(type) + @"\\content\\scripts\\" + GlobalPaths.ScriptGenName + ".lua":
|
||||
GlobalPaths.ClientDir + @"\\" + ClientName + @"\\content\\scripts\\" + GlobalPaths.ScriptGenName + ".lua"),
|
||||
code);
|
||||
string outputPath = (GlobalVars.SelectedClientInfo.SeperateFolders ?
|
||||
GlobalPaths.ClientDir + @"\\" + ClientName + @"\\" + GlobalFuncs.GetClientSeperateFolderName(type) + @"\\content\\scripts\\" + GlobalPaths.ScriptGenName + ".lua" :
|
||||
GlobalPaths.ClientDir + @"\\" + ClientName + @"\\content\\scripts\\" + GlobalPaths.ScriptGenName + ".lua");
|
||||
|
||||
File.WriteAllLines(outputPath, code);
|
||||
|
||||
bool shouldSign = GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%signgeneratedjoinscript%");
|
||||
bool shouldUseNewSigFormat = GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%usenewsignformat%");
|
||||
|
||||
if (shouldSign)
|
||||
{
|
||||
SignGeneratedScript(outputPath, shouldUseNewSigFormat);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
@ -161,6 +161,9 @@ partial class ClientinfoEditor
|
||||
this.checkBox8 = new System.Windows.Forms.CheckBox();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.signgeneratedjoinscriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.usenewsignformatToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -241,9 +244,9 @@ partial class ClientinfoEditor
|
||||
//
|
||||
this.checkBox6.Location = new System.Drawing.Point(10, 88);
|
||||
this.checkBox6.Name = "checkBox6";
|
||||
this.checkBox6.Size = new System.Drawing.Size(262, 21);
|
||||
this.checkBox6.Size = new System.Drawing.Size(279, 21);
|
||||
this.checkBox6.TabIndex = 20;
|
||||
this.checkBox6.Text = "Fix scripts and map loading for 2007-Early 2008";
|
||||
this.checkBox6.Text = "Generate scripts and fix map loading for 2007/2012+";
|
||||
this.checkBox6.UseVisualStyleBackColor = true;
|
||||
this.checkBox6.CheckedChanged += new System.EventHandler(this.CheckBox6CheckedChanged);
|
||||
//
|
||||
@ -278,7 +281,8 @@ partial class ClientinfoEditor
|
||||
this.newToolStripMenuItem,
|
||||
this.loadToolStripMenuItem,
|
||||
this.saveToolStripMenuItem,
|
||||
this.saveAsTextFileToolStripMenuItem});
|
||||
this.saveAsTextFileToolStripMenuItem,
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem});
|
||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||
this.fileToolStripMenuItem.Text = "File";
|
||||
@ -286,21 +290,21 @@ partial class ClientinfoEditor
|
||||
// newToolStripMenuItem
|
||||
//
|
||||
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
|
||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||
this.newToolStripMenuItem.Text = "New";
|
||||
this.newToolStripMenuItem.Click += new System.EventHandler(this.NewToolStripMenuItemClick);
|
||||
//
|
||||
// loadToolStripMenuItem
|
||||
//
|
||||
this.loadToolStripMenuItem.Name = "loadToolStripMenuItem";
|
||||
this.loadToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
|
||||
this.loadToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||
this.loadToolStripMenuItem.Text = "Load";
|
||||
this.loadToolStripMenuItem.Click += new System.EventHandler(this.LoadToolStripMenuItemClick);
|
||||
//
|
||||
// saveToolStripMenuItem
|
||||
//
|
||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||
this.saveToolStripMenuItem.Text = "Save";
|
||||
this.saveToolStripMenuItem.Click += new System.EventHandler(this.SaveToClientToolStripMenuItemClick);
|
||||
//
|
||||
@ -310,20 +314,20 @@ partial class ClientinfoEditor
|
||||
this.textToolStripMenuItem,
|
||||
this.iNIToolStripMenuItem});
|
||||
this.saveAsTextFileToolStripMenuItem.Name = "saveAsTextFileToolStripMenuItem";
|
||||
this.saveAsTextFileToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
|
||||
this.saveAsTextFileToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||
this.saveAsTextFileToolStripMenuItem.Text = "Save As";
|
||||
//
|
||||
// textToolStripMenuItem
|
||||
//
|
||||
this.textToolStripMenuItem.Name = "textToolStripMenuItem";
|
||||
this.textToolStripMenuItem.Size = new System.Drawing.Size(95, 22);
|
||||
this.textToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.textToolStripMenuItem.Text = "Text";
|
||||
this.textToolStripMenuItem.Click += new System.EventHandler(this.saveAsTextFileToolStripMenuItem_Click);
|
||||
//
|
||||
// iNIToolStripMenuItem
|
||||
//
|
||||
this.iNIToolStripMenuItem.Name = "iNIToolStripMenuItem";
|
||||
this.iNIToolStripMenuItem.Size = new System.Drawing.Size(95, 22);
|
||||
this.iNIToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.iNIToolStripMenuItem.Text = "INI";
|
||||
this.iNIToolStripMenuItem.Click += new System.EventHandler(this.saveAsINIFileToolStripMenuItem_Click);
|
||||
//
|
||||
@ -348,7 +352,7 @@ partial class ClientinfoEditor
|
||||
this.sharedToolStripMenuItem,
|
||||
this.validateToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// clientToolStripMenuItem
|
||||
@ -419,7 +423,7 @@ partial class ClientinfoEditor
|
||||
this.debuggingToolStripMenuItem,
|
||||
this.argsToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// generalToolStripMenuItem
|
||||
@ -437,99 +441,101 @@ partial class ClientinfoEditor
|
||||
this.joinportToolStripMenuItem,
|
||||
this.validatedextrafilesToolStripMenuItem,
|
||||
this.argstringToolStripMenuItem,
|
||||
this.newguiToolStripMenuItem});
|
||||
this.newguiToolStripMenuItem,
|
||||
this.signgeneratedjoinscriptToolStripMenuItem,
|
||||
this.usenewsignformatToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// mapfileToolStripMenuItem
|
||||
//
|
||||
this.mapfileToolStripMenuItem.Name = "mapfileToolStripMenuItem";
|
||||
this.mapfileToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.mapfileToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.mapfileToolStripMenuItem.Text = "%mapfile%";
|
||||
this.mapfileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// mapfiledToolStripMenuItem
|
||||
//
|
||||
this.mapfiledToolStripMenuItem.Name = "mapfiledToolStripMenuItem";
|
||||
this.mapfiledToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.mapfiledToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.mapfiledToolStripMenuItem.Text = "%mapfiled%";
|
||||
this.mapfiledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// mapfilecToolStripMenuItem
|
||||
//
|
||||
this.mapfilecToolStripMenuItem.Name = "mapfilecToolStripMenuItem";
|
||||
this.mapfilecToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.mapfilecToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.mapfilecToolStripMenuItem.Text = "%mapfilec%";
|
||||
this.mapfilecToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// luafileToolStripMenuItem
|
||||
//
|
||||
this.luafileToolStripMenuItem.Name = "luafileToolStripMenuItem";
|
||||
this.luafileToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.luafileToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.luafileToolStripMenuItem.Text = "%luafile%";
|
||||
this.luafileToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// ipToolStripMenuItem
|
||||
//
|
||||
this.ipToolStripMenuItem.Name = "ipToolStripMenuItem";
|
||||
this.ipToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.ipToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.ipToolStripMenuItem.Text = "%ip%";
|
||||
this.ipToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// addonscriptpathToolStripMenuItem
|
||||
//
|
||||
this.addonscriptpathToolStripMenuItem.Name = "addonscriptpathToolStripMenuItem";
|
||||
this.addonscriptpathToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.addonscriptpathToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.addonscriptpathToolStripMenuItem.Text = "%addonscriptpath%";
|
||||
this.addonscriptpathToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// scripttypeToolStripMenuItem
|
||||
//
|
||||
this.scripttypeToolStripMenuItem.Name = "scripttypeToolStripMenuItem";
|
||||
this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.scripttypeToolStripMenuItem.Text = "%scripttype%";
|
||||
this.scripttypeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// versionToolStripMenuItem
|
||||
//
|
||||
this.versionToolStripMenuItem.Name = "versionToolStripMenuItem";
|
||||
this.versionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.versionToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.versionToolStripMenuItem.Text = "%version%";
|
||||
this.versionToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// doublequoteToolStripMenuItem
|
||||
//
|
||||
this.doublequoteToolStripMenuItem.Name = "doublequoteToolStripMenuItem";
|
||||
this.doublequoteToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.doublequoteToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.doublequoteToolStripMenuItem.Text = "%doublequote%";
|
||||
this.doublequoteToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// joinportToolStripMenuItem
|
||||
//
|
||||
this.joinportToolStripMenuItem.Name = "joinportToolStripMenuItem";
|
||||
this.joinportToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.joinportToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.joinportToolStripMenuItem.Text = "%joinport%";
|
||||
this.joinportToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// validatedextrafilesToolStripMenuItem
|
||||
//
|
||||
this.validatedextrafilesToolStripMenuItem.Name = "validatedextrafilesToolStripMenuItem";
|
||||
this.validatedextrafilesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.validatedextrafilesToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.validatedextrafilesToolStripMenuItem.Text = "%validatedextrafiles%";
|
||||
this.validatedextrafilesToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// argstringToolStripMenuItem
|
||||
//
|
||||
this.argstringToolStripMenuItem.Name = "argstringToolStripMenuItem";
|
||||
this.argstringToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.argstringToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.argstringToolStripMenuItem.Text = "%argstring%";
|
||||
this.argstringToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// newguiToolStripMenuItem
|
||||
//
|
||||
this.newguiToolStripMenuItem.Name = "newguiToolStripMenuItem";
|
||||
this.newguiToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
|
||||
this.newguiToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.newguiToolStripMenuItem.Text = "%newgui%";
|
||||
this.newguiToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
@ -540,7 +546,7 @@ partial class ClientinfoEditor
|
||||
this.notificationsToolStripMenuItem,
|
||||
this.portToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// limitToolStripMenuItem
|
||||
@ -575,7 +581,7 @@ partial class ClientinfoEditor
|
||||
this.md5sToolStripMenuItem,
|
||||
this.md5sdToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// md5launcherToolStripMenuItem
|
||||
@ -635,7 +641,7 @@ partial class ClientinfoEditor
|
||||
this.idToolStripMenuItem,
|
||||
this.tripcodeToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// customizationToolStripMenuItem
|
||||
@ -1048,7 +1054,7 @@ partial class ClientinfoEditor
|
||||
this.donothingToolStripMenuItem,
|
||||
this.disabledToolStripMenuItem});
|
||||
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";
|
||||
//
|
||||
// donothingToolStripMenuItem
|
||||
@ -1068,14 +1074,14 @@ partial class ClientinfoEditor
|
||||
// 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.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// 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.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click);
|
||||
//
|
||||
@ -1232,6 +1238,27 @@ partial class ClientinfoEditor
|
||||
this.label3.TabIndex = 37;
|
||||
this.label3.Text = "EXE Name:";
|
||||
//
|
||||
// signScriptManuallyModernClientsToolStripMenuItem
|
||||
//
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem.Name = "signScriptManuallyModernClientsToolStripMenuItem";
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem.Text = "Sign Script Manually (For Modern Clients)";
|
||||
this.signScriptManuallyModernClientsToolStripMenuItem.Click += new System.EventHandler(this.signScriptManuallyModernClientsToolStripMenuItem_click);
|
||||
//
|
||||
// signgeneratedjoinscriptToolStripMenuItem
|
||||
//
|
||||
this.signgeneratedjoinscriptToolStripMenuItem.Name = "signgeneratedjoinscriptToolStripMenuItem";
|
||||
this.signgeneratedjoinscriptToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.signgeneratedjoinscriptToolStripMenuItem.Text = "%signgeneratedjoinscript%";
|
||||
this.signgeneratedjoinscriptToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// usenewsignformatToolStripMenuItem
|
||||
//
|
||||
this.usenewsignformatToolStripMenuItem.Name = "usenewsignformatToolStripMenuItem";
|
||||
this.usenewsignformatToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.usenewsignformatToolStripMenuItem.Text = "%usenewsignformat%";
|
||||
this.usenewsignformatToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// ClientinfoEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@ -1398,4 +1425,7 @@ partial class ClientinfoEditor
|
||||
private System.Windows.Forms.CheckBox checkBox8;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.ToolStripMenuItem signScriptManuallyModernClientsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem signgeneratedjoinscriptToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem usenewsignformatToolStripMenuItem;
|
||||
}
|
||||
|
@ -463,6 +463,32 @@ public partial class ClientinfoEditor : Form
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void signScriptManuallyModernClientsToolStripMenuItem_click(object sender, EventArgs e)
|
||||
{
|
||||
using (var ofd = new OpenFileDialog())
|
||||
{
|
||||
ofd.Filter = "Lua Script (*.lua)|*.lua";
|
||||
ofd.FilterIndex = 1;
|
||||
ofd.Title = "Load Lua Script";
|
||||
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
bool newFormat = false;
|
||||
|
||||
DialogResult res = MessageBox.Show("Would you like to use the newer client signing format featured in newer clients (2014+)?", "Novetus Client SDK - Use New Format?", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
|
||||
|
||||
if (res == DialogResult.Yes)
|
||||
{
|
||||
newFormat = true;
|
||||
}
|
||||
|
||||
ScriptFuncs.Generator.SignGeneratedScript(ofd.FileName, newFormat);
|
||||
|
||||
MessageBox.Show("Script signed!", "Novetus Client SDK - Script Signed", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Functions
|
||||
|
@ -300,6 +300,7 @@ All credit for the LUA code used with "non-modern" clients goes to Scripter John
|
||||
All credit for the LUA code used for character customization goes to RBXBanLand.
|
||||
Parts of the codebase use bits and pieces of code from Stack Overflow, MSDN Forums, the Novetus GitHub Pull Requests and Codeproject.
|
||||
The original concept for the Diogenes editor was suggested by Carrot. The concept code was then modified to be smaller, more efficient, and more customizable.
|
||||
The script signing and key generation code was created by Carrot, but was slimmed down to work properly in Novetus and modified to be more efficient.
|
||||
ObjToRBXMesh was made by coke. Modified to support 1.00 and 1.01. (https://github.com/Novetus/ObjToRBXMesh)
|
||||
Roblox Legacy Place Converter was made by BakonBot. (https://github.com/BakonBot/legacy-place-converter)
|
||||
ROBLOX Script Generator was made by S. Costeira.
|
||||
|
@ -1,18 +1,38 @@
|
||||
1.3 v?.2022.1
|
||||
Changes from v12.2021.2:
|
||||
New Features:
|
||||
|
||||
Changes from 1.3 v2.2022.1:
|
||||
Enhancements:
|
||||
- Added the ability to sign scripts.
|
||||
- There are 2 ways to sign scripts, use the new ClientScript variables for generated join scripts, or use the File -> Sign Script Manually (For Modern Clients) option.
|
||||
- New ClientScript variables:
|
||||
- %signgeneratedjoinscript% - Signs the generated join script if "Generate scripts and fix map loading for 2007/2012+" is enabled.
|
||||
- %usenewsignformat% - for %signgeneratedjoinscript%, uses the new client signature format found on newer clients.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
1.3 v2.2022.1
|
||||
Changes from v12.2021.2:
|
||||
Enhancements:
|
||||
- All places will now use the Novetus asset redirect.
|
||||
- All assets are now fixed on places.
|
||||
- Note that some places may crash Novetus. Let Bitl know on the Discord server or the Forums if such crashes occur.
|
||||
|
||||
- The Asset Fixer in the asset SDK now properly shows an error when an invalid file (i.e, a modern Roblox place file) is loaded.
|
||||
|
||||
Added items:
|
||||
Hats:
|
||||
- Snowman Teapot
|
||||
- 2012 Roblox Visor
|
||||
- 2012 Roblox Visor (Original)
|
||||
|
||||
Fixes:
|
||||
- Fixed characters not loading up in medium to large size maps in 2011E and 2011M.
|
||||
- Fixed the Wintertime R&R&R Hoodie being the TBC hoodie.
|
||||
- Remade the Blue Flame Jacket's texture from scratch as the original was broken.
|
||||
|
||||
Misc:
|
||||
|
||||
- Removed epicgamers.xyz from the Content Providers as it is no longer functional.
|
||||
- Rise of the Killbots: Reverted Killbot behaviors to how they were in 1.3 v11.2021.1.
|
||||
- Added a background image behind the character shown in the color select screen in the Stylish style.
|
||||
- The background image is replaceable by changing the image in bin/data to something else.
|
||||
----------------------------------------------------------------------------
|
||||
1.3 v12.2021.2
|
||||
Changes from v12.2021.1:
|
||||
|
@ -26,6 +26,8 @@ General:
|
||||
%validatedfiles% - Returns the total number of files that have been validated.
|
||||
%validatedextrafiles% - Returns the total number of files that have been validated with <validate>.
|
||||
%newgui% - Returns if the 2011L interface is enabled on 2011M clients. Can be used as a toggle switch for other client-side CoreScript features.
|
||||
%signgeneratedjoinscript% - Signs the generated join script if "Generate scripts and fix map loading for 2007/2012+" is enabled.
|
||||
%usenewsignformat% - for %signgeneratedjoinscript%, uses the new client signature format found on newer clients.
|
||||
|
||||
Server:
|
||||
%limit% - Max Player limit.
|
||||
|
@ -7,11 +7,11 @@
|
||||
<URL>http://novetus.mygamesonline.org/asset?id=</URL>
|
||||
<Icon>robloxnovetus.png</Icon>
|
||||
</Provider>
|
||||
<Provider>
|
||||
<!--Provider>
|
||||
<Name>Roblox (Novetus+ Redirect)</Name>
|
||||
<URL>http://epicgamers.xyz/asset/?id=</URL>
|
||||
<Icon>robloxnplus.png</Icon>
|
||||
</Provider>
|
||||
</Provider-->
|
||||
<Provider>
|
||||
<Name>Roblox (Asset Delivery, Incompatible w/ older clients)</Name>
|
||||
<URL>https://assetdelivery.roblox.com/v1/asset/?id=</URL>
|
||||
|
@ -171,7 +171,7 @@ Not a metaverse!
|
||||
[stylish]We both know that there are a thousand ways I could destroy you right now.|And 941 of them hurt.
|
||||
IT WAS 99 CENTS!
|
||||
PRETTY PRETTY NINE!|DEATH GRIPS IS ONLINE!
|
||||
I AM GONNA TAKE YOUR COAT|SAY THANKS
|
||||
I AM GONNA TAKE YOUR COAT.|SAY THANKS.
|
||||
[normal]Wear your heart on your sleeve!|It's the only way to live! Everything will fall into place, you'll see!
|
||||
[stylish]Wear your heart on your sleeve! It's the only way to live!|Everything will fall into place, you'll see!
|
||||
[normal]If the entire world is getting banned by admins...|I'm taking a physgun with me.
|
||||
@ -190,4 +190,18 @@ gib t1x pl0x
|
||||
[stylish]Friendly reminder: Rocket jumping is physically impossible.
|
||||
I play Novetus more than Roblox|Minecraft too!
|
||||
Lego/brick game, not block game!
|
||||
Why do we all have to wear these ridiculous ties?|From Half-Life
|
||||
Why do we all have to wear these ridiculous ties?|From Half-Life
|
||||
It just ain't right!
|
||||
HOW VERY DARE YOU|BEHAVE YOURSPELF!
|
||||
Trying to feel alive.
|
||||
Portable!
|
||||
[normal]Gordon doesn't need to hear all this.|He's a highly trained professional. From Half-Life
|
||||
[stylish]Gordon doesn't need to hear all this, he's a highly trained professional.|From Half-Life
|
||||
No NFTs!
|
||||
Látom.
|
||||
[normal]print(error())|The biggest mystery in Lua programming.
|
||||
[stylish]print(error()) The biggest mystery in Lua programming.
|
||||
[normal]Tell me how it felt when you walked on water.|Did you get your wish?
|
||||
[stylish]Tell me how it felt when you walked on water. Did you get your wish?
|
||||
[normal]GET TO THE SHIPS! IT'S OUR ONLY CHANCE!|From the 1986 Transformers movie.
|
||||
Standing here, I realize...
|
Loading…
Reference in New Issue
Block a user