From 129db484ac807317bf494548a742bb76bfc0c218 Mon Sep 17 00:00:00 2001 From: Bitl Date: Fri, 24 Nov 2023 12:38:01 -0700 Subject: [PATCH] updated files --- .../Novetus.Bootstrapper.csproj | 1 + .../Classes/VCPPRedistInstallationDetector.cs | 140 ++++++++++++++++++ Novetus/NovetusCore/Classes/WebProxy.cs | 2 +- Novetus/NovetusCore/NovetusCore.projitems | 1 + .../StorageAndFunctions/FileManagement.cs | 27 ++-- .../Forms/LauncherForm/LauncherFormShared.cs | 38 +++++ .../NovetusLauncher/Forms/NovetusConsole.cs | 53 +++---- .../NovetusLauncher/Novetus.Launcher.csproj | 1 + .../NovetusLauncherEntryPoint.cs | 3 +- Novetus/NovetusURI/Novetus.URI.csproj | 1 + changelog.txt | 12 +- scripts/batch/github_sync.bat | 13 -- scripts/launcher/3DView/CSView.lua | 4 +- scripts/launcher/info.ini | 2 +- scripts/launcher/term-list.txt | 11 +- 15 files changed, 242 insertions(+), 67 deletions(-) create mode 100644 Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs diff --git a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj index c05a793..8272644 100644 --- a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj +++ b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj @@ -9,6 +9,7 @@ Novetus.Bootstrapper NovetusBootstrapper v4.5.1 + 8.0 512 false diff --git a/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs b/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs new file mode 100644 index 0000000..168f571 --- /dev/null +++ b/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs @@ -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 +{ + /// + /// VC++ redists to check + /// + public enum VCPPRedist + { + /// + /// Don't check redist + /// + None, + + /// + /// VC++ 2005 redist + /// + [Description("Visual C++ 2005 SP1 Redistributables")] + VCPP2005, + + /// + /// VC++ 2008 redist + /// + [Description("Visual C++ 2008 Redistributables")] + VCPP2008, + + /// + /// VC++ 2012 redist + /// + [Description("Visual C++ 2012 Redistributables")] + VCPP2012 + } + + public class VCPPRedistInstallationDetector + { + /// + /// Which key in "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\" + /// + private enum RedistKeyLocation + { + /// + /// VC++2010 and below + /// + Products, + + /// + /// VC++2012 and above + /// + Dependencies + } + + /// + /// Information about where the redist is + /// + private struct RedistInformation + { + /// + /// Key location + /// + public RedistKeyLocation Location { get; } + + /// + /// Possible keys + /// + public string[] Keys { get; } + + public RedistInformation(RedistKeyLocation location, string[] keys) + { + Location = location; + Keys = keys; + } + } + + /// + /// VC++ redist enum to redist infos.
+ /// Value is a list because VC++2012 has possible two redist keys for some reason.
+ /// Installer keys for VC redists can be found at https://stackoverflow.com/a/34209692. + ///
+ private static Dictionary _VCRedistToRedistKeysMap = new Dictionary() + { + [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}" }) + }; + + /// + /// Cached installation results. + /// + private static Dictionary _VCRedistResults = new Dictionary() + { + [VCPPRedist.None] = true + }; + + /// + /// Checks if redist exists. + /// + /// Redist information + /// Exists + 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; + } + + /// + /// Check if a VC++ redist is installed + /// + /// VC++ redist version + /// Is installed + public static bool IsInstalled(VCPPRedist redist) => _VCRedistResults[redist]; + + /// + /// Checks for all keys + /// + static VCPPRedistInstallationDetector() + { + foreach (var kvPair in _VCRedistToRedistKeysMap) + { + VCPPRedist redist = kvPair.Key; + RedistInformation information = kvPair.Value; + + bool installed = CheckIfInstallerKeyExists(information); + _VCRedistResults[redist] = installed; + } + } + } +} diff --git a/Novetus/NovetusCore/Classes/WebProxy.cs b/Novetus/NovetusCore/Classes/WebProxy.cs index 01133bb..c3434b8 100644 --- a/Novetus/NovetusCore/Classes/WebProxy.cs +++ b/Novetus/NovetusCore/Classes/WebProxy.cs @@ -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) { diff --git a/Novetus/NovetusCore/NovetusCore.projitems b/Novetus/NovetusCore/NovetusCore.projitems index deeb336..7aa2c69 100644 --- a/Novetus/NovetusCore/NovetusCore.projitems +++ b/Novetus/NovetusCore/NovetusCore.projitems @@ -12,6 +12,7 @@ + diff --git a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs index fcfe7cc..458a3a1 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.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(){ - {"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 diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs index 531fa7d..4d5f437 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs @@ -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(); } diff --git a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs index 4b7db8d..f34e29a 100644 --- a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs +++ b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs @@ -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; diff --git a/Novetus/NovetusLauncher/Novetus.Launcher.csproj b/Novetus/NovetusLauncher/Novetus.Launcher.csproj index 35e9162..5e67ba5 100644 --- a/Novetus/NovetusLauncher/Novetus.Launcher.csproj +++ b/Novetus/NovetusLauncher/Novetus.Launcher.csproj @@ -8,6 +8,7 @@ NovetusLauncher Novetus v4.5.1 + 8.0 Properties diff --git a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs index 4094e28..5298c71 100644 --- a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs +++ b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs @@ -25,7 +25,6 @@ namespace NovetusLauncher } static bool formsOpen = false; - static LauncherFormShared entryPointForm; /// /// 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; diff --git a/Novetus/NovetusURI/Novetus.URI.csproj b/Novetus/NovetusURI/Novetus.URI.csproj index 473eb00..8815dc1 100644 --- a/Novetus/NovetusURI/Novetus.URI.csproj +++ b/Novetus/NovetusURI/Novetus.URI.csproj @@ -10,6 +10,7 @@ NovetusURI NovetusURI v4.5.1 + 8.0 512 true diff --git a/changelog.txt b/changelog.txt index 99f9fa6..1b2c737 100644 --- a/changelog.txt +++ b/changelog.txt @@ -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: diff --git a/scripts/batch/github_sync.bat b/scripts/batch/github_sync.bat index 51e81aa..13b3878 100644 --- a/scripts/batch/github_sync.bat +++ b/scripts/batch/github_sync.bat @@ -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 diff --git a/scripts/launcher/3DView/CSView.lua b/scripts/launcher/3DView/CSView.lua index 2142efe..e48542c 100644 --- a/scripts/launcher/3DView/CSView.lua +++ b/scripts/launcher/3DView/CSView.lua @@ -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 diff --git a/scripts/launcher/info.ini b/scripts/launcher/info.ini index f30735a..64efae7 100644 --- a/scripts/launcher/info.ini +++ b/scripts/launcher/info.ini @@ -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 diff --git a/scripts/launcher/term-list.txt b/scripts/launcher/term-list.txt index 6ae555d..ff0bf75 100644 --- a/scripts/launcher/term-list.txt +++ b/scripts/launcher/term-list.txt @@ -96,4 +96,13 @@ Taco Villager Dinosaur Code -United \ No newline at end of file +United +Astro +Heart +Techno +Flutter +Hamster +Solder +Ripcord +Combine +Soldier \ No newline at end of file