updated files
This commit is contained in:
parent
b3afe2a48e
commit
129db484ac
|
|
@ -9,6 +9,7 @@
|
|||
<RootNamespace>Novetus.Bootstrapper</RootNamespace>
|
||||
<AssemblyName>NovetusBootstrapper</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>false</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,140 @@
|
|||
using Microsoft.Win32;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
||||
// Original code made by Matt, originally intended for Sodikm 1.2.
|
||||
// Slight modifications and cleanup for Novetus by Bitl.
|
||||
namespace Novetus.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// VC++ redists to check
|
||||
/// </summary>
|
||||
public enum VCPPRedist
|
||||
{
|
||||
/// <summary>
|
||||
/// Don't check redist
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// VC++ 2005 redist
|
||||
/// </summary>
|
||||
[Description("Visual C++ 2005 SP1 Redistributables")]
|
||||
VCPP2005,
|
||||
|
||||
/// <summary>
|
||||
/// VC++ 2008 redist
|
||||
/// </summary>
|
||||
[Description("Visual C++ 2008 Redistributables")]
|
||||
VCPP2008,
|
||||
|
||||
/// <summary>
|
||||
/// VC++ 2012 redist
|
||||
/// </summary>
|
||||
[Description("Visual C++ 2012 Redistributables")]
|
||||
VCPP2012
|
||||
}
|
||||
|
||||
public class VCPPRedistInstallationDetector
|
||||
{
|
||||
/// <summary>
|
||||
/// Which key in "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\"
|
||||
/// </summary>
|
||||
private enum RedistKeyLocation
|
||||
{
|
||||
/// <summary>
|
||||
/// VC++2010 and below
|
||||
/// </summary>
|
||||
Products,
|
||||
|
||||
/// <summary>
|
||||
/// VC++2012 and above
|
||||
/// </summary>
|
||||
Dependencies
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Information about where the redist is
|
||||
/// </summary>
|
||||
private struct RedistInformation
|
||||
{
|
||||
/// <summary>
|
||||
/// Key location
|
||||
/// </summary>
|
||||
public RedistKeyLocation Location { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Possible keys
|
||||
/// </summary>
|
||||
public string[] Keys { get; }
|
||||
|
||||
public RedistInformation(RedistKeyLocation location, string[] keys)
|
||||
{
|
||||
Location = location;
|
||||
Keys = keys;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// VC++ redist enum to redist infos. <br/>
|
||||
/// Value is a list because VC++2012 has possible two redist keys for some reason. <br/>
|
||||
/// Installer keys for VC redists can be found at https://stackoverflow.com/a/34209692.
|
||||
/// </summary>
|
||||
private static Dictionary<VCPPRedist, RedistInformation> _VCRedistToRedistKeysMap = new Dictionary<VCPPRedist, RedistInformation>()
|
||||
{
|
||||
[VCPPRedist.VCPP2005] = new RedistInformation(RedistKeyLocation.Products, new[] { "c1c4f01781cc94c4c8fb1542c0981a2a" }),
|
||||
[VCPPRedist.VCPP2008] = new RedistInformation(RedistKeyLocation.Products, new[] { "6E815EB96CCE9A53884E7857C57002F0" }),
|
||||
[VCPPRedist.VCPP2012] = new RedistInformation(RedistKeyLocation.Dependencies, new[] { "{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}", "{95716cce-fc71-413f-8ad5-56c2892d4b3a}" })
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Cached installation results.
|
||||
/// </summary>
|
||||
private static Dictionary<VCPPRedist, bool> _VCRedistResults = new Dictionary<VCPPRedist, bool>()
|
||||
{
|
||||
[VCPPRedist.None] = true
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Checks if redist exists.
|
||||
/// </summary>
|
||||
/// <param name="information">Redist information</param>
|
||||
/// <returns>Exists</returns>
|
||||
private static bool CheckIfInstallerKeyExists(RedistInformation information)
|
||||
{
|
||||
string path = information.Location.ToString();
|
||||
|
||||
foreach (string key in information.Keys)
|
||||
{
|
||||
using RegistryKey? redist = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Installer\" + path + @"\" + key);
|
||||
|
||||
if (redist != null)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if a VC++ redist is installed
|
||||
/// </summary>
|
||||
/// <param name="redist">VC++ redist version</param>
|
||||
/// <returns>Is installed</returns>
|
||||
public static bool IsInstalled(VCPPRedist redist) => _VCRedistResults[redist];
|
||||
|
||||
/// <summary>
|
||||
/// Checks for all keys
|
||||
/// </summary>
|
||||
static VCPPRedistInstallationDetector()
|
||||
{
|
||||
foreach (var kvPair in _VCRedistToRedistKeysMap)
|
||||
{
|
||||
VCPPRedist redist = kvPair.Key;
|
||||
RedistInformation information = kvPair.Value;
|
||||
|
||||
bool installed = CheckIfInstallerKeyExists(information);
|
||||
_VCRedistResults[redist] = installed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ namespace Novetus.Core
|
|||
"NOTE: The Web proxy feature requires an Internet connection to function properly.\n\n" +
|
||||
"This message will appear only once.\n";
|
||||
|
||||
DialogResult result = MessageBox.Show(text, "Novetus - Web Proxy Opt-In", MessageBoxButtons.YesNo);
|
||||
DialogResult result = MessageBox.Show(text, "Novetus - Web Proxy Opt-In", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
|
||||
|
||||
switch (result)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<Compile Include="$(MSBuildThisFileDirectory)Classes\INIFile.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\Script.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\SemaphoreLocker.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\VCPPRedistInstallationDetector.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\WebProxy.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)StorageAndFunctions\ClientManagement.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\Downloader.cs" />
|
||||
|
|
|
|||
|
|
@ -143,8 +143,8 @@ namespace Novetus.Core
|
|||
|
||||
public void SaveSetting(string section, string name, string value)
|
||||
{
|
||||
INI.IniWriteValue(section, name, value);
|
||||
SaveSettingEvent();
|
||||
INI.IniWriteValue(section, name, value);
|
||||
}
|
||||
|
||||
public void SaveSettingInt(string name, int value)
|
||||
|
|
@ -195,6 +195,7 @@ namespace Novetus.Core
|
|||
}
|
||||
|
||||
SaveSetting(section, name, defaultval);
|
||||
ReadSettingEvent();
|
||||
return INI.IniReadValue(section, name);
|
||||
}
|
||||
}
|
||||
|
|
@ -254,8 +255,8 @@ namespace Novetus.Core
|
|||
public override void DefineDefaults()
|
||||
{
|
||||
ValueDefaults = new Dictionary<string, string>(){
|
||||
{"SelectedClient", ""},
|
||||
{"Map", ""},
|
||||
{"SelectedClient", GlobalVars.ProgramInformation.DefaultClient},
|
||||
{"Map", GlobalVars.ProgramInformation.DefaultMap},
|
||||
{"CloseOnLaunch", Util.BoolValue(false)},
|
||||
{"UserID", Util.IntValue(NovetusFuncs.GeneratePlayerID())},
|
||||
{"PlayerName", "Player"},
|
||||
|
|
@ -264,8 +265,8 @@ namespace Novetus.Core
|
|||
{"UPnP", Util.BoolValue(false)},
|
||||
{"DisabledAssetSDKHelp", Util.BoolValue(false)},
|
||||
{"DiscordRichPresence", Util.BoolValue(true)},
|
||||
{"MapPath", ""},
|
||||
{"MapPathSnip", ""},
|
||||
{"MapPath", GlobalPaths.MapsDir + @"\\" + GlobalVars.ProgramInformation.DefaultMap},
|
||||
{"MapPathSnip", GlobalPaths.MapsDirBase + @"\\" + GlobalVars.ProgramInformation.DefaultMap},
|
||||
{"GraphicsMode", Util.IntValue((int)Settings.Mode.Automatic)},
|
||||
{"QualityLevel", Util.IntValue((int)Settings.Level.Automatic)},
|
||||
{"LauncherStyle", (Util.IsWineRunning() ? Util.IntValue((int)Settings.Style.Stylish) : Util.IntValue((int)Settings.Style.Extended))},
|
||||
|
|
@ -328,14 +329,15 @@ namespace Novetus.Core
|
|||
#region Program Information
|
||||
public class ProgramInfo
|
||||
{
|
||||
// Defaults are hacky but fixes the errors on intital startup.
|
||||
public ProgramInfo()
|
||||
{
|
||||
Version = "";
|
||||
Branch = "";
|
||||
DefaultClient = "";
|
||||
DefaultClient = "2009E";
|
||||
RegisterClient1 = "";
|
||||
RegisterClient2 = "";
|
||||
DefaultMap = "";
|
||||
DefaultMap = "Dev - Baseplate2048.rbxl.bz2";
|
||||
VersionName = "";
|
||||
//HACK
|
||||
NetVersion = ".NET Framework 4.5.1";
|
||||
|
|
@ -739,7 +741,7 @@ namespace Novetus.Core
|
|||
{
|
||||
string rev = revision.ToString();
|
||||
|
||||
if (rev.Length > 0 && rev.Length >= 4)
|
||||
if (rev.Length > 0 && rev.Length >= 5)
|
||||
{
|
||||
string posString = rev.Substring(rev.Length - 4);
|
||||
|
||||
|
|
@ -838,7 +840,6 @@ namespace Novetus.Core
|
|||
GlobalVars.ProgramInformation.InitialBootup = Convert.ToBoolean(initialBootup);
|
||||
GlobalVars.ProgramInformation.VersionName = verNumber;
|
||||
GlobalVars.ProgramInformation.IsSnapshot = Convert.ToBoolean(isSnapshot);
|
||||
RegisterDefaults();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -847,14 +848,6 @@ namespace Novetus.Core
|
|||
}
|
||||
}
|
||||
|
||||
public static void RegisterDefaults()
|
||||
{
|
||||
GlobalVars.UserConfiguration.SaveSetting("SelectedClient", GlobalVars.ProgramInformation.DefaultClient);
|
||||
GlobalVars.UserConfiguration.SaveSetting("Map", GlobalVars.ProgramInformation.DefaultMap);
|
||||
GlobalVars.UserConfiguration.SaveSetting("MapPath", GlobalPaths.MapsDir + @"\\" + GlobalVars.ProgramInformation.DefaultMap);
|
||||
GlobalVars.UserConfiguration.SaveSetting("MapPathSnip", GlobalPaths.MapsDirBase + @"\\" + GlobalVars.ProgramInformation.DefaultMap);
|
||||
}
|
||||
|
||||
public static void TurnOffInitialSequence()
|
||||
{
|
||||
//READ
|
||||
|
|
|
|||
|
|
@ -128,6 +128,44 @@ namespace NovetusLauncher
|
|||
LocalVars.launcherInitState = false;
|
||||
}
|
||||
|
||||
// very hacky but hear me out
|
||||
bool VC2005 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2005);
|
||||
bool VC2008 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2008);
|
||||
bool VC2012 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2012);
|
||||
bool isAnyInstalled = VC2005 && VC2008 && VC2012;
|
||||
string notInstalledText = "";
|
||||
|
||||
if (!isAnyInstalled)
|
||||
{
|
||||
if (!VC2005)
|
||||
{
|
||||
Util.ConsolePrint("WARNING - Visual C++ 2005 SP1 Redistributables have not been found. Some clients may not launch.", 5);
|
||||
notInstalledText += "Visual C++ 2005 SP1 Redistributables\n";
|
||||
}
|
||||
|
||||
if (!VC2008)
|
||||
{
|
||||
Util.ConsolePrint("WARNING - Visual C++ 2008 Redistributables have not been found. Some clients may not launch.", 5);
|
||||
notInstalledText += "Visual C++ 2008 Redistributables\n";
|
||||
}
|
||||
|
||||
if (!VC2012)
|
||||
{
|
||||
Util.ConsolePrint("WARNING - Visual C++ 2012 Redistributables have not been found. Some clients may not launch.", 5);
|
||||
notInstalledText += "Visual C++ 2012 Redistributables\n";
|
||||
}
|
||||
|
||||
string text = "Novetus has detected that the following dependencies are not installed:\n\n"
|
||||
+ notInstalledText
|
||||
+ "\n\nIt is recomended to download these dependencies from the Microsoft website. Installing these will prevent errors upon starting up a client, like 'side-by-side configuration' errors.";
|
||||
|
||||
MessageBox.Show(text, "Novetus - Dependency Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.ConsolePrint("All client dependencies are installed.", 4);
|
||||
}
|
||||
|
||||
GlobalVars.Proxy.DoSetup();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ namespace NovetusLauncher
|
|||
bool helpMode = false;
|
||||
bool disableCommands = false;
|
||||
string[] argList;
|
||||
FileFormat.Config cmdConfig;
|
||||
|
||||
public NovetusConsole()
|
||||
{
|
||||
|
|
@ -85,8 +84,6 @@ namespace NovetusLauncher
|
|||
return;
|
||||
}
|
||||
|
||||
cmdConfig = GlobalVars.UserConfiguration;
|
||||
|
||||
//disableCommands = true;
|
||||
bool no3d = false;
|
||||
bool nomap = false;
|
||||
|
|
@ -123,7 +120,7 @@ namespace NovetusLauncher
|
|||
|
||||
if (ConsoleArgs["client"] != null)
|
||||
{
|
||||
cmdConfig.SaveSetting("SelectedClient", ConsoleArgs["client"]);
|
||||
GlobalVars.UserConfiguration.SaveSetting("SelectedClient", ConsoleArgs["client"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -153,14 +150,14 @@ namespace NovetusLauncher
|
|||
|
||||
if (ConsoleArgs["hostport"] != null)
|
||||
{
|
||||
cmdConfig.SaveSettingInt("RobloxPort", Convert.ToInt32(ConsoleArgs["hostport"]));
|
||||
GlobalVars.UserConfiguration.SaveSettingInt("RobloxPort", Convert.ToInt32(ConsoleArgs["hostport"]));
|
||||
}
|
||||
|
||||
if (ConsoleArgs["upnp"] != null)
|
||||
{
|
||||
cmdConfig.SaveSettingBool("UPnP", Convert.ToBoolean(ConsoleArgs["upnp"]));
|
||||
GlobalVars.UserConfiguration.SaveSettingBool("UPnP", Convert.ToBoolean(ConsoleArgs["upnp"]));
|
||||
|
||||
if (cmdConfig.ReadSettingBool("UPnP"))
|
||||
if (GlobalVars.UserConfiguration.ReadSettingBool("UPnP"))
|
||||
{
|
||||
Util.ConsolePrint("Novetus will now use UPnP for port forwarding.", 4);
|
||||
}
|
||||
|
|
@ -172,9 +169,9 @@ namespace NovetusLauncher
|
|||
|
||||
if (ConsoleArgs["notifications"] != null)
|
||||
{
|
||||
cmdConfig.SaveSettingBool("ShowServerNotifications", Convert.ToBoolean(ConsoleArgs["notifications"]));
|
||||
GlobalVars.UserConfiguration.SaveSettingBool("ShowServerNotifications", Convert.ToBoolean(ConsoleArgs["notifications"]));
|
||||
|
||||
if (cmdConfig.ReadSettingBool("ShowServerNotifications"))
|
||||
if (GlobalVars.UserConfiguration.ReadSettingBool("ShowServerNotifications"))
|
||||
{
|
||||
Util.ConsolePrint("Novetus will show notifications on player join/leave.", 4);
|
||||
}
|
||||
|
|
@ -186,17 +183,17 @@ namespace NovetusLauncher
|
|||
|
||||
if (ConsoleArgs["maxplayers"] != null)
|
||||
{
|
||||
cmdConfig.SaveSettingInt("PlayerLimit", Convert.ToInt32(ConsoleArgs["maxplayers"]));
|
||||
GlobalVars.UserConfiguration.SaveSettingInt("PlayerLimit", Convert.ToInt32(ConsoleArgs["maxplayers"]));
|
||||
}
|
||||
|
||||
if (ConsoleArgs["serverbrowsername"] != null)
|
||||
{
|
||||
cmdConfig.SaveSetting("ServerBrowserServerName", ConsoleArgs["serverbrowsername"]);
|
||||
GlobalVars.UserConfiguration.SaveSetting("ServerBrowserServerName", ConsoleArgs["serverbrowsername"]);
|
||||
}
|
||||
|
||||
if (ConsoleArgs["serverbrowseraddress"] != null)
|
||||
{
|
||||
cmdConfig.SaveSetting("ServerBrowserServerAddress", ConsoleArgs["serverbrowseraddress"]);
|
||||
GlobalVars.UserConfiguration.SaveSetting("ServerBrowserServerAddress", ConsoleArgs["serverbrowseraddress"]);
|
||||
}
|
||||
|
||||
MapArg(ConsoleArgs);
|
||||
|
|
@ -228,19 +225,15 @@ namespace NovetusLauncher
|
|||
|
||||
ConsoleForm.StartGame(loadMode, no3d, nomap, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdConfig = new FileFormat.Config("cmdconfig.ini");
|
||||
}
|
||||
}
|
||||
|
||||
public void MapArg (CommandLineArguments.Arguments ConsoleArgs)
|
||||
{
|
||||
if (ConsoleArgs["map"] != null)
|
||||
{
|
||||
cmdConfig.SaveSetting("Map", ConsoleArgs["map"]);
|
||||
cmdConfig.SaveSetting("MapPath", ConsoleArgs["map"]);
|
||||
Util.ConsolePrint("Novetus will now launch the client with the map " + cmdConfig.ReadSetting("MapPath"), 4);
|
||||
GlobalVars.UserConfiguration.SaveSetting("Map", ConsoleArgs["map"]);
|
||||
GlobalVars.UserConfiguration.SaveSetting("MapPath", ConsoleArgs["map"]);
|
||||
Util.ConsolePrint("Novetus will now launch the client with the map " + GlobalVars.UserConfiguration.ReadSetting("MapPath"), 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -361,13 +354,13 @@ namespace NovetusLauncher
|
|||
|
||||
if (vals[1].Equals("none", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
cmdConfig.SaveSetting("AlternateServerIP");
|
||||
GlobalVars.UserConfiguration.SaveSetting("AlternateServerIP");
|
||||
Util.ConsolePrint("Alternate Server IP removed.", 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdConfig.SaveSetting("AlternateServerIP", vals[1]);
|
||||
Util.ConsolePrint("Alternate Server IP set to " + cmdConfig.ReadSetting("AlternateServerIP"), 4);
|
||||
GlobalVars.UserConfiguration.SaveSetting("AlternateServerIP", vals[1]);
|
||||
Util.ConsolePrint("Alternate Server IP set to " + GlobalVars.UserConfiguration.ReadSetting("AlternateServerIP"), 4);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -398,7 +391,7 @@ namespace NovetusLauncher
|
|||
|
||||
if (vals[1].Equals("on", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (cmdConfig.ReadSettingBool("WebProxyInitialSetupRequired"))
|
||||
if (GlobalVars.UserConfiguration.ReadSettingBool("WebProxyInitialSetupRequired"))
|
||||
{
|
||||
// this is wierd and really dumb if we are just using console mode.....
|
||||
GlobalVars.Proxy.DoSetup();
|
||||
|
|
@ -406,9 +399,9 @@ namespace NovetusLauncher
|
|||
else
|
||||
{
|
||||
// fast start it.
|
||||
if (!cmdConfig.ReadSettingBool("WebProxyEnabled"))
|
||||
if (!GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
|
||||
{
|
||||
cmdConfig.SaveSettingBool("WebProxyEnabled", true);
|
||||
GlobalVars.UserConfiguration.SaveSettingBool("WebProxyEnabled", true);
|
||||
}
|
||||
|
||||
GlobalVars.Proxy.Start();
|
||||
|
|
@ -416,7 +409,7 @@ namespace NovetusLauncher
|
|||
}
|
||||
else if (vals[1].Equals("off", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
|
||||
if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
|
||||
{
|
||||
Util.ConsolePrint("The web proxy is disabled. Please turn it on in order to use this command.", 2);
|
||||
return;
|
||||
|
|
@ -426,15 +419,15 @@ namespace NovetusLauncher
|
|||
}
|
||||
else if (vals[1].Equals("disable", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
|
||||
if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
|
||||
{
|
||||
Util.ConsolePrint("The web proxy is already disabled.", 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdConfig.ReadSettingBool("WebProxyEnabled"))
|
||||
if (GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
|
||||
{
|
||||
cmdConfig.SaveSettingBool("WebProxyEnabled", false);
|
||||
GlobalVars.UserConfiguration.SaveSettingBool("WebProxyEnabled", false);
|
||||
}
|
||||
|
||||
GlobalVars.Proxy.Stop();
|
||||
|
|
@ -443,7 +436,7 @@ namespace NovetusLauncher
|
|||
}
|
||||
else if (vals[1].Equals("extensions", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
|
||||
if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
|
||||
{
|
||||
Util.ConsolePrint("The web proxy is disabled. Please turn it on in order to use this command.", 2);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
<RootNamespace>NovetusLauncher</RootNamespace>
|
||||
<AssemblyName>Novetus</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ namespace NovetusLauncher
|
|||
}
|
||||
|
||||
static bool formsOpen = false;
|
||||
static LauncherFormShared entryPointForm;
|
||||
|
||||
/// <summary>
|
||||
/// Program entry point.
|
||||
|
|
@ -35,7 +34,6 @@ namespace NovetusLauncher
|
|||
{
|
||||
System.Windows.Forms.Application.EnableVisualStyles();
|
||||
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
|
||||
entryPointForm = new LauncherFormShared();
|
||||
|
||||
if (!Directory.Exists(GlobalPaths.LogDir))
|
||||
{
|
||||
|
|
@ -49,6 +47,7 @@ namespace NovetusLauncher
|
|||
|
||||
FileManagement.ReadInfoFile(GlobalPaths.ConfigDir + "\\" + GlobalPaths.InfoName,
|
||||
GlobalPaths.ConfigDir + "\\" + GlobalPaths.TermListFileName);
|
||||
|
||||
GlobalVars.ColorsLoaded = FileManagement.InitColors();
|
||||
|
||||
bool isSDK = false;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<RootNamespace>NovetusURI</RootNamespace>
|
||||
<AssemblyName>NovetusURI</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<TargetFrameworkProfile />
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
|
||||
EDGE Snapshot v23.8728.22429.2
|
||||
Fixes:
|
||||
- Fixed missing clientinfo error on intital launch.
|
||||
----------------------------------------------------------------------------
|
||||
EDGE Snapshot v23.8724.27074.1
|
||||
Enhancements:
|
||||
- Added proper metatable protection on all affected clients. (2006S-2010L)
|
||||
- Downgraded Novetus to .NET Framework 4.5.1 for better WINE/Proton compatibility.
|
||||
- Added the ability for Novetus to detect if Visual C++ dependencies are installed.
|
||||
- Credit to Matt from Sodikm for the code for this feature. :D
|
||||
|
||||
Fixes:
|
||||
- Fixed issues with the new config system.
|
||||
----------------------------------------------------------------------------
|
||||
EDGE Snapshot v23.8700.30967.1
|
||||
Notes:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ if not exist "%gamescriptdir%/2009E" mkdir "%gamescriptdir%/2009E"
|
|||
if not exist "%gamescriptdir%/2009E-HD" mkdir "%gamescriptdir%/2009E-HD"
|
||||
if not exist "%gamescriptdir%/2009L" mkdir "%gamescriptdir%/2009L"
|
||||
if not exist "%gamescriptdir%/2010L" mkdir "%gamescriptdir%/2010L"
|
||||
if not exist "%gamescriptdir%/2011E" mkdir "%gamescriptdir%/2011E"
|
||||
if not exist "%gamescriptdir%/2011M" mkdir "%gamescriptdir%/2011M"
|
||||
if not exist "%gamescriptdir%/2012M" mkdir "%gamescriptdir%/2012M"
|
||||
|
||||
|
|
@ -32,18 +31,9 @@ XCOPY "%cd%\Novetus\clients\2009E\content\scripts\CSMPFunctions.lua" "%gamescrip
|
|||
XCOPY "%cd%\Novetus\clients\2009E-HD\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009E-HD" /y
|
||||
XCOPY "%cd%\Novetus\clients\2009L\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009L" /y
|
||||
XCOPY "%cd%\Novetus\clients\2010L\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2010L" /y
|
||||
XCOPY "%cd%\Novetus\clients\2011E\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2011E" /y
|
||||
XCOPY "%cd%\Novetus\clients\2011M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2011M" /y
|
||||
XCOPY "%cd%\Novetus\clients\2012M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2012M" /y
|
||||
|
||||
echo.
|
||||
echo Copying client corescripts...
|
||||
echo.
|
||||
echo 2011E
|
||||
SET ecores=%gamescriptdir%\2011E\cores
|
||||
if not exist "%ecores%" mkdir "%ecores%"
|
||||
XCOPY "%cd%\Novetus\clients\2011E\content\scripts\cores\*.lua" "%ecores%" /sy
|
||||
|
||||
echo.
|
||||
echo 2011M
|
||||
SET mcores=%gamescriptdir%\2011M\cores
|
||||
|
|
@ -69,7 +59,6 @@ XCOPY "%cd%\Novetus\clients\2009E\content\fonts\libraries.rbxm" "%gamescriptdir%
|
|||
XCOPY "%cd%\Novetus\clients\2009E-HD\content\fonts\libraries.rbxm" "%gamescriptdir%/2009E-HD" /y
|
||||
XCOPY "%cd%\Novetus\clients\2009L\content\fonts\libraries.rbxm" "%gamescriptdir%/2009L" /y
|
||||
XCOPY "%cd%\Novetus\clients\2010L\content\fonts\libraries.rbxm" "%gamescriptdir%/2010L" /y
|
||||
XCOPY "%cd%\Novetus\clients\2011E\content\fonts\libraries.rbxm" "%gamescriptdir%/2011E" /y
|
||||
XCOPY "%cd%\Novetus\clients\2011M\content\fonts\libraries.rbxm" "%gamescriptdir%/2011M" /y
|
||||
XCOPY "%cd%\Novetus\clients\2012M\content\fonts\libraries.rbxm" "%gamescriptdir%/2012M" /y
|
||||
|
||||
|
|
@ -84,7 +73,6 @@ del /s /q "%tempdir%\GlobalSettings_4_2009E.xml"
|
|||
del /s /q "%tempdir%\GlobalSettings_4_2009E-HD.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings_4_2009L.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings_4_2010L.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings_4_2011E.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings_4_2011M.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings4_2006S.xml"
|
||||
del /s /q "%tempdir%\GlobalSettings4_2006S-Shaders.xml"
|
||||
|
|
@ -99,7 +87,6 @@ XCOPY "%tempdir%\GlobalSettings_4_2009E_default.xml" "%gamescriptdir%/2009E" /y
|
|||
XCOPY "%tempdir%\GlobalSettings_4_2009E-HD_default.xml" "%gamescriptdir%/2009E-HD" /y
|
||||
XCOPY "%tempdir%\GlobalSettings_4_2009L_default.xml" "%gamescriptdir%/2009L" /y
|
||||
XCOPY "%tempdir%\GlobalSettings_4_2010L_default.xml" "%gamescriptdir%/2010L" /y
|
||||
XCOPY "%tempdir%\GlobalSettings_4_2011E_default.xml" "%gamescriptdir%/2011E" /y
|
||||
XCOPY "%tempdir%\GlobalSettings_4_2011M_default.xml" "%gamescriptdir%/2011M" /y
|
||||
XCOPY "%tempdir%\GlobalSettings4_2006S_default.xml" "%gamescriptdir%/2006S" /y
|
||||
XCOPY "%tempdir%\GlobalSettings4_2006S-Shaders_default.xml" "%gamescriptdir%/2006S-Shaders" /y
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ end
|
|||
|
||||
function LoadCharacterNew(playerApp,newChar)
|
||||
local path = "rbxasset://../../../shareddata/charcustom/"
|
||||
|
||||
wait(0.65)
|
||||
|
||||
local charparts = {[1] = newWaitForChild(newChar,"Head"),[2] = newWaitForChild(newChar,"Torso"),[3] = newWaitForChild(newChar,"Left Arm"),[4] = newWaitForChild(newChar,"Right Arm"),[5] = newWaitForChild(newChar,"Left Leg"),[6] = newWaitForChild(newChar,"Right Leg")}
|
||||
for _,newVal in pairs(playerApp:GetChildren()) do
|
||||
|
|
@ -441,7 +443,7 @@ function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorI
|
|||
end
|
||||
plr.CharacterAppearance=0
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,IconType)
|
||||
wait(0.7)
|
||||
wait(0.79)
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
|
||||
|
||||
local target = game.Workspace.Base.SpawnLocation
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@ ExtendedVersionNumber=True
|
|||
//ExtendedVersionTemplate=%version% vX.23.%extended-revision% (%version-name%)
|
||||
//ExtendedVersionTemplate=%version% Snapshot v23.%build%.%revision%.%extended-revision%
|
||||
ExtendedVersionTemplate=EDGE Snapshot v23.%build%.%revision%.%extended-revision%
|
||||
ExtendedVersionRevision=1
|
||||
ExtendedVersionRevision=2
|
||||
InitialBootup=False
|
||||
IsLite=False
|
||||
|
|
|
|||
|
|
@ -96,4 +96,13 @@ Taco
|
|||
Villager
|
||||
Dinosaur
|
||||
Code
|
||||
United
|
||||
United
|
||||
Astro
|
||||
Heart
|
||||
Techno
|
||||
Flutter
|
||||
Hamster
|
||||
Solder
|
||||
Ripcord
|
||||
Combine
|
||||
Soldier
|
||||
Loading…
Reference in New Issue