1007 lines
41 KiB
C#
1007 lines
41 KiB
C#
/*
|
|
* Created by SharpDevelop.
|
|
* User: BITL
|
|
* Date: 6/13/2017
|
|
* Time: 10:24 AM
|
|
*
|
|
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
|
*/
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
|
|
public enum LauncherState
|
|
{
|
|
InLauncher = 0,
|
|
InMPGame = 1,
|
|
InSoloGame = 2,
|
|
InStudio = 3,
|
|
InCustomization = 4,
|
|
InEasterEggGame = 5,
|
|
LoadingURI = 6
|
|
}
|
|
|
|
public enum QualityLevel
|
|
{
|
|
VeryLow = 1,
|
|
Low = 2,
|
|
Medium = 3,
|
|
High = 4,
|
|
Ultra = 5
|
|
}
|
|
|
|
public enum GraphicsMode
|
|
{
|
|
None = 0,
|
|
OpenGL = 1,
|
|
DirectX = 2
|
|
}
|
|
|
|
public class LauncherFuncs
|
|
{
|
|
public LauncherFuncs()
|
|
{
|
|
}
|
|
|
|
public static void ReadInfoFile(string infopath, bool cmd = false, bool versiononly = false)
|
|
{
|
|
string[] lines = File.ReadAllLines(infopath); //File is in System.IO
|
|
GlobalVars.IsSnapshot = Convert.ToBoolean(lines[5]);
|
|
if (GlobalVars.IsSnapshot == true)
|
|
{
|
|
if (cmd)
|
|
{
|
|
var versionInfo = FileVersionInfo.GetVersionInfo(GlobalVars.RootPathLauncher + "\\Novetus.exe");
|
|
GlobalVars.Version = lines[6].Replace("%version%", lines[0])
|
|
.Replace("%build%", versionInfo.ProductBuildPart.ToString())
|
|
.Replace("%revision%", versionInfo.FilePrivatePart.ToString())
|
|
.Replace("%snapshot-revision%", lines[7]);
|
|
}
|
|
else
|
|
{
|
|
GlobalVars.Version = lines[6].Replace("%version%", lines[0])
|
|
.Replace("%build%", Assembly.GetExecutingAssembly().GetName().Version.Build.ToString())
|
|
.Replace("%revision%", Assembly.GetExecutingAssembly().GetName().Version.Revision.ToString())
|
|
.Replace("%snapshot-revision%", lines[7]);
|
|
}
|
|
|
|
string changelog = GlobalVars.BasePath + "\\changelog.txt";
|
|
if (File.Exists(changelog))
|
|
{
|
|
string[] changelogedit = File.ReadAllLines(changelog);
|
|
if (!changelogedit[0].Equals(GlobalVars.Version))
|
|
{
|
|
changelogedit[0] = GlobalVars.Version;
|
|
File.WriteAllLines(changelog, changelogedit);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GlobalVars.Version = lines[0];
|
|
}
|
|
|
|
GlobalVars.Branch = lines[0];
|
|
if (!versiononly)
|
|
{
|
|
GlobalVars.DefaultClient = lines[1];
|
|
GlobalVars.DefaultMap = lines[2];
|
|
GlobalVars.RegisterClient1 = lines[3];
|
|
GlobalVars.RegisterClient2 = lines[4];
|
|
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
|
GlobalVars.Map = GlobalVars.DefaultMap;
|
|
GlobalVars.MapPath = GlobalVars.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
|
GlobalVars.MapPathSnip = GlobalVars.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
|
}
|
|
}
|
|
|
|
public static QualityLevel GetQualityLevelForInt(int level)
|
|
{
|
|
switch (level)
|
|
{
|
|
case 1:
|
|
return QualityLevel.VeryLow;
|
|
case 2:
|
|
return QualityLevel.Low;
|
|
case 3:
|
|
return QualityLevel.Medium;
|
|
case 4:
|
|
return QualityLevel.High;
|
|
case 5:
|
|
default:
|
|
return QualityLevel.Ultra;
|
|
}
|
|
}
|
|
|
|
public static int GetIntForQualityLevel(QualityLevel level)
|
|
{
|
|
switch (level)
|
|
{
|
|
case QualityLevel.VeryLow:
|
|
return 1;
|
|
case QualityLevel.Low:
|
|
return 2;
|
|
case QualityLevel.Medium:
|
|
return 3;
|
|
case QualityLevel.High:
|
|
return 4;
|
|
case QualityLevel.Ultra:
|
|
default:
|
|
return 5;
|
|
}
|
|
}
|
|
|
|
public static GraphicsMode GetGraphicsModeForInt(int level)
|
|
{
|
|
switch (level)
|
|
{
|
|
case 1:
|
|
return GraphicsMode.OpenGL;
|
|
case 2:
|
|
return GraphicsMode.DirectX;
|
|
default:
|
|
return GraphicsMode.None;
|
|
}
|
|
}
|
|
|
|
public static int GetIntForGraphicsMode(GraphicsMode level)
|
|
{
|
|
switch (level)
|
|
{
|
|
case GraphicsMode.OpenGL:
|
|
return 1;
|
|
case GraphicsMode.DirectX:
|
|
return 2;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
public static void Config(string cfgpath, bool write)
|
|
{
|
|
if (write)
|
|
{
|
|
//WRITE
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "Config";
|
|
|
|
ini.IniWriteValue(section, "CloseOnLaunch", GlobalVars.CloseOnLaunch.ToString());
|
|
ini.IniWriteValue(section, "UserID", GlobalVars.UserID.ToString());
|
|
ini.IniWriteValue(section, "PlayerName", GlobalVars.PlayerName.ToString());
|
|
ini.IniWriteValue(section, "SelectedClient", GlobalVars.SelectedClient.ToString());
|
|
ini.IniWriteValue(section, "Map", GlobalVars.Map.ToString());
|
|
ini.IniWriteValue(section, "RobloxPort", GlobalVars.RobloxPort.ToString());
|
|
ini.IniWriteValue(section, "PlayerLimit", GlobalVars.PlayerLimit.ToString());
|
|
ini.IniWriteValue(section, "ShowHatsOnExtra", GlobalVars.Custom_Extra_ShowHats.ToString());
|
|
ini.IniWriteValue(section, "UPnP", GlobalVars.UPnP.ToString());
|
|
ini.IniWriteValue(section, "ItemMakerDisableHelpMessage", GlobalVars.DisabledHelp.ToString());
|
|
ini.IniWriteValue(section, "PlayerTripcode", SecurityFuncs.Base64Encode(GlobalVars.PlayerTripcode.ToString()));
|
|
ini.IniWriteValue(section, "DiscordRichPresence", GlobalVars.DiscordPresence.ToString());
|
|
ini.IniWriteValue(section, "MapPath", GlobalVars.MapPath.ToString());
|
|
ini.IniWriteValue(section, "MapPathSnip", GlobalVars.MapPathSnip.ToString());
|
|
ini.IniWriteValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.GraphicsMode).ToString());
|
|
ini.IniWriteValue(section, "ReShade", GlobalVars.ReShade.ToString());
|
|
ini.IniWriteValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.QualityLevel).ToString());
|
|
ini.IniWriteValue(section, "OldLayout", GlobalVars.OldLayout.ToString());
|
|
}
|
|
else
|
|
{
|
|
//READ
|
|
string closeonlaunch, userid, name, selectedclient,
|
|
map, port, limit, showhatsonextra, upnp,
|
|
disablehelpmessage, tripcode, discord, mappath, mapsnip,
|
|
graphics, reshade, qualitylevel, oldlayout;
|
|
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "Config";
|
|
|
|
closeonlaunch = ini.IniReadValue(section, "CloseOnLaunch", GlobalVars.CloseOnLaunch.ToString());
|
|
userid = ini.IniReadValue(section, "UserID", GlobalVars.UserID.ToString());
|
|
name = ini.IniReadValue(section, "PlayerName", GlobalVars.PlayerName.ToString());
|
|
selectedclient = ini.IniReadValue(section, "SelectedClient", GlobalVars.SelectedClient.ToString());
|
|
map = ini.IniReadValue(section, "Map", GlobalVars.Map.ToString());
|
|
port = ini.IniReadValue(section, "RobloxPort", GlobalVars.RobloxPort.ToString());
|
|
limit = ini.IniReadValue(section, "PlayerLimit", GlobalVars.PlayerLimit.ToString());
|
|
showhatsonextra = ini.IniReadValue(section, "ShowHatsOnExtra", GlobalVars.Custom_Extra_ShowHats.ToString());
|
|
upnp = ini.IniReadValue(section, "UPnP", GlobalVars.UPnP.ToString());
|
|
disablehelpmessage = ini.IniReadValue(section, "ItemMakerDisableHelpMessage", GlobalVars.DisabledHelp.ToString());
|
|
tripcode = ini.IniReadValue(section, "PlayerTripcode", GenerateAndReturnTripcode());
|
|
discord = ini.IniReadValue(section, "DiscordRichPresence", GlobalVars.DiscordPresence.ToString());
|
|
mappath = ini.IniReadValue(section, "MapPath", GlobalVars.MapPath.ToString());
|
|
mapsnip = ini.IniReadValue(section, "MapPathSnip", GlobalVars.MapPathSnip.ToString());
|
|
graphics = ini.IniReadValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.GraphicsMode).ToString());
|
|
reshade = ini.IniReadValue(section, "ReShade", GlobalVars.ReShade.ToString());
|
|
qualitylevel = ini.IniReadValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.QualityLevel).ToString());
|
|
oldlayout = ini.IniReadValue(section, "OldLayout", GlobalVars.OldLayout.ToString());
|
|
|
|
try
|
|
{
|
|
bool bline1 = Convert.ToBoolean(closeonlaunch);
|
|
GlobalVars.CloseOnLaunch = bline1;
|
|
|
|
if (userid.Equals("0"))
|
|
{
|
|
GeneratePlayerID();
|
|
Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
|
}
|
|
else
|
|
{
|
|
int iline2 = Convert.ToInt32(userid);
|
|
GlobalVars.UserID = iline2;
|
|
}
|
|
|
|
GlobalVars.PlayerName = name;
|
|
|
|
GlobalVars.SelectedClient = selectedclient;
|
|
|
|
GlobalVars.Map = map;
|
|
|
|
int iline6 = Convert.ToInt32(port);
|
|
GlobalVars.RobloxPort = iline6;
|
|
|
|
int iline7 = Convert.ToInt32(limit);
|
|
GlobalVars.PlayerLimit = iline7;
|
|
|
|
bool bline9 = Convert.ToBoolean(showhatsonextra);
|
|
GlobalVars.Custom_Extra_ShowHats = bline9;
|
|
|
|
bool bline10 = Convert.ToBoolean(upnp);
|
|
GlobalVars.UPnP = bline10;
|
|
|
|
bool bline11 = Convert.ToBoolean(disablehelpmessage);
|
|
GlobalVars.DisabledHelp = bline11;
|
|
|
|
if (string.IsNullOrWhiteSpace(SecurityFuncs.Base64Decode(tripcode)))
|
|
{
|
|
GenerateTripcode();
|
|
Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
|
}
|
|
else
|
|
{
|
|
string sdecrypt12 = SecurityFuncs.Base64Decode(tripcode);
|
|
GlobalVars.PlayerTripcode = sdecrypt12;
|
|
}
|
|
|
|
bool bline13 = Convert.ToBoolean(discord);
|
|
GlobalVars.DiscordPresence = bline13;
|
|
|
|
GlobalVars.MapPath = mappath;
|
|
GlobalVars.MapPathSnip = mapsnip;
|
|
int iline16 = Convert.ToInt32(graphics);
|
|
GlobalVars.GraphicsMode = GetGraphicsModeForInt(iline16);
|
|
bool bline17 = Convert.ToBoolean(reshade);
|
|
GlobalVars.ReShade = bline17;
|
|
int iline20 = Convert.ToInt32(qualitylevel);
|
|
GlobalVars.QualityLevel = GetQualityLevelForInt(iline20);
|
|
bool bline21 = Convert.ToBoolean(oldlayout);
|
|
GlobalVars.OldLayout = bline21;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
Config(cfgpath, true);
|
|
}
|
|
}
|
|
|
|
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
|
{
|
|
Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
|
}
|
|
else
|
|
{
|
|
Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, write);
|
|
}
|
|
|
|
ReShade(GlobalVars.ConfigDir, "ReShade.ini", write);
|
|
}
|
|
|
|
public static void Customization(string cfgpath, bool write)
|
|
{
|
|
if (write)
|
|
{
|
|
//WRITE
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "Items";
|
|
|
|
ini.IniWriteValue(section, "Hat1", GlobalVars.Custom_Hat1ID_Offline.ToString());
|
|
ini.IniWriteValue(section, "Hat2", GlobalVars.Custom_Hat2ID_Offline.ToString());
|
|
ini.IniWriteValue(section, "Hat3", GlobalVars.Custom_Hat3ID_Offline.ToString());
|
|
ini.IniWriteValue(section, "Face", GlobalVars.Custom_Face_Offline.ToString());
|
|
ini.IniWriteValue(section, "Head", GlobalVars.Custom_Head_Offline.ToString());
|
|
ini.IniWriteValue(section, "TShirt", GlobalVars.Custom_T_Shirt_Offline.ToString());
|
|
ini.IniWriteValue(section, "Shirt", GlobalVars.Custom_Shirt_Offline.ToString());
|
|
ini.IniWriteValue(section, "Pants", GlobalVars.Custom_Pants_Offline.ToString());
|
|
ini.IniWriteValue(section, "Icon", GlobalVars.Custom_Icon_Offline.ToString());
|
|
ini.IniWriteValue(section, "Extra", GlobalVars.Custom_Extra.ToString());
|
|
|
|
string section2 = "Colors";
|
|
|
|
ini.IniWriteValue(section2, "HeadColorID", GlobalVars.HeadColorID.ToString());
|
|
ini.IniWriteValue(section2, "HeadColorString", GlobalVars.ColorMenu_HeadColor.ToString());
|
|
ini.IniWriteValue(section2, "TorsoColorID", GlobalVars.TorsoColorID.ToString());
|
|
ini.IniWriteValue(section2, "TorsoColorString", GlobalVars.ColorMenu_TorsoColor.ToString());
|
|
ini.IniWriteValue(section2, "LeftArmColorID", GlobalVars.LeftArmColorID.ToString());
|
|
ini.IniWriteValue(section2, "LeftArmColorString", GlobalVars.ColorMenu_LeftArmColor.ToString());
|
|
ini.IniWriteValue(section2, "RightArmColorID", GlobalVars.RightArmColorID.ToString());
|
|
ini.IniWriteValue(section2, "RightArmColorString", GlobalVars.ColorMenu_RightArmColor.ToString());
|
|
ini.IniWriteValue(section2, "LeftLegColorID", GlobalVars.LeftLegColorID.ToString());
|
|
ini.IniWriteValue(section2, "LeftLegColorString", GlobalVars.ColorMenu_LeftLegColor.ToString());
|
|
ini.IniWriteValue(section2, "RightLegColorID", GlobalVars.RightLegColorID.ToString());
|
|
ini.IniWriteValue(section2, "RightLegColorString", GlobalVars.ColorMenu_RightLegColor.ToString());
|
|
|
|
string section3 = "Other";
|
|
|
|
ini.IniWriteValue(section3, "CharacterID", GlobalVars.CharacterID.ToString());
|
|
ini.IniWriteValue(section3, "ExtraSelectionIsHat", GlobalVars.Custom_Extra_SelectionIsHat.ToString());
|
|
}
|
|
else
|
|
{
|
|
//READ
|
|
|
|
string hat1, hat2, hat3, face,
|
|
head, tshirt, shirt, pants, icon,
|
|
extra, headcolorid, headcolorstring, torsocolorid, torsocolorstring,
|
|
larmid, larmstring, rarmid, rarmstring, llegid,
|
|
llegstring, rlegid, rlegstring, characterid, extraishat;
|
|
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "Items";
|
|
|
|
hat1 = ini.IniReadValue(section, "Hat1", GlobalVars.Custom_Hat1ID_Offline.ToString());
|
|
hat2 = ini.IniReadValue(section, "Hat2", GlobalVars.Custom_Hat2ID_Offline.ToString());
|
|
hat3 = ini.IniReadValue(section, "Hat3", GlobalVars.Custom_Hat3ID_Offline.ToString());
|
|
face = ini.IniReadValue(section, "Face", GlobalVars.Custom_Face_Offline.ToString());
|
|
head = ini.IniReadValue(section, "Head", GlobalVars.Custom_Head_Offline.ToString());
|
|
tshirt = ini.IniReadValue(section, "TShirt", GlobalVars.Custom_T_Shirt_Offline.ToString());
|
|
shirt = ini.IniReadValue(section, "Shirt", GlobalVars.Custom_Shirt_Offline.ToString());
|
|
pants = ini.IniReadValue(section, "Pants", GlobalVars.Custom_Pants_Offline.ToString());
|
|
icon = ini.IniReadValue(section, "Icon", GlobalVars.Custom_Icon_Offline.ToString());
|
|
extra = ini.IniReadValue(section, "Extra", GlobalVars.Custom_Extra.ToString());
|
|
|
|
string section2 = "Colors";
|
|
|
|
headcolorid = ini.IniReadValue(section2, "HeadColorID", GlobalVars.HeadColorID.ToString());
|
|
headcolorstring = ini.IniReadValue(section2, "HeadColorString", GlobalVars.ColorMenu_HeadColor.ToString());
|
|
torsocolorid = ini.IniReadValue(section2, "TorsoColorID", GlobalVars.TorsoColorID.ToString());
|
|
torsocolorstring = ini.IniReadValue(section2, "TorsoColorString", GlobalVars.ColorMenu_TorsoColor.ToString());
|
|
larmid = ini.IniReadValue(section2, "LeftArmColorID", GlobalVars.LeftArmColorID.ToString());
|
|
larmstring = ini.IniReadValue(section2, "LeftArmColorString", GlobalVars.ColorMenu_LeftArmColor.ToString());
|
|
rarmid = ini.IniReadValue(section2, "RightArmColorID", GlobalVars.RightArmColorID.ToString());
|
|
rarmstring = ini.IniReadValue(section2, "RightArmColorString", GlobalVars.ColorMenu_RightArmColor.ToString());
|
|
llegid = ini.IniReadValue(section2, "LeftLegColorID", GlobalVars.LeftLegColorID.ToString());
|
|
llegstring = ini.IniReadValue(section2, "LeftLegColorString", GlobalVars.ColorMenu_LeftLegColor.ToString());
|
|
rlegid = ini.IniReadValue(section2, "RightLegColorID", GlobalVars.RightLegColorID.ToString());
|
|
rlegstring = ini.IniReadValue(section2, "RightLegColorString", GlobalVars.ColorMenu_RightLegColor.ToString());
|
|
|
|
string section3 = "Other";
|
|
|
|
characterid = ini.IniReadValue(section3, "CharacterID", GlobalVars.CharacterID.ToString());
|
|
extraishat = ini.IniReadValue(section3, "ExtraSelectionIsHat", GlobalVars.Custom_Extra_SelectionIsHat.ToString());
|
|
|
|
try
|
|
{
|
|
GlobalVars.Custom_Hat1ID_Offline = hat1;
|
|
GlobalVars.Custom_Hat2ID_Offline = hat2;
|
|
GlobalVars.Custom_Hat3ID_Offline = hat3;
|
|
|
|
int iline4 = Convert.ToInt32(headcolorid);
|
|
GlobalVars.HeadColorID = iline4;
|
|
|
|
int iline5 = Convert.ToInt32(torsocolorid);
|
|
GlobalVars.TorsoColorID = iline5;
|
|
|
|
int iline6 = Convert.ToInt32(larmid);
|
|
GlobalVars.LeftArmColorID = iline6;
|
|
|
|
int iline7 = Convert.ToInt32(rarmid);
|
|
GlobalVars.RightArmColorID = iline7;
|
|
|
|
int iline8 = Convert.ToInt32(llegid);
|
|
GlobalVars.LeftLegColorID = iline8;
|
|
|
|
int iline9 = Convert.ToInt32(rlegid);
|
|
GlobalVars.RightLegColorID = iline9;
|
|
|
|
GlobalVars.ColorMenu_HeadColor = headcolorstring;
|
|
GlobalVars.ColorMenu_TorsoColor = torsocolorstring;
|
|
GlobalVars.ColorMenu_LeftArmColor = larmstring;
|
|
GlobalVars.ColorMenu_RightArmColor = rarmstring;
|
|
GlobalVars.ColorMenu_LeftLegColor = llegstring;
|
|
GlobalVars.ColorMenu_RightLegColor = rlegstring;
|
|
|
|
GlobalVars.Custom_Face_Offline = face;
|
|
GlobalVars.Custom_Head_Offline = head;
|
|
GlobalVars.Custom_T_Shirt_Offline = tshirt;
|
|
GlobalVars.Custom_Shirt_Offline = shirt;
|
|
GlobalVars.Custom_Pants_Offline = pants;
|
|
GlobalVars.Custom_Icon_Offline = icon;
|
|
|
|
GlobalVars.CharacterID = characterid;
|
|
|
|
GlobalVars.Custom_Extra = extra;
|
|
|
|
bool bline24 = Convert.ToBoolean(extraishat);
|
|
GlobalVars.Custom_Extra_SelectionIsHat = bline24;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
Customization(cfgpath, true);
|
|
}
|
|
}
|
|
|
|
ReloadLoadtextValue();
|
|
}
|
|
|
|
public static void ReShadeValues(string cfgpath, bool write, bool setglobals)
|
|
{
|
|
if (write)
|
|
{
|
|
//WRITE
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "GENERAL";
|
|
|
|
int FPS = GlobalVars.ReShadeFPSDisplay ? 1 : 0;
|
|
ini.IniWriteValue(section, "ShowFPS", FPS.ToString());
|
|
ini.IniWriteValue(section, "ShowFrameTime", FPS.ToString());
|
|
int PerformanceMode = GlobalVars.ReShadePerformanceMode ? 1 : 0;
|
|
ini.IniWriteValue(section, "PerformanceMode", PerformanceMode.ToString());
|
|
}
|
|
else
|
|
{
|
|
//READ
|
|
string framerate, frametime, performance;
|
|
|
|
IniFile ini = new IniFile(cfgpath);
|
|
|
|
string section = "GENERAL";
|
|
|
|
int FPS = GlobalVars.ReShadeFPSDisplay ? 1 : 0;
|
|
framerate = ini.IniReadValue(section, "ShowFPS", FPS.ToString());
|
|
frametime = ini.IniReadValue(section, "ShowFrameTime", FPS.ToString());
|
|
int PerformanceMode = GlobalVars.ReShadePerformanceMode ? 1 : 0;
|
|
performance = ini.IniReadValue(section, "PerformanceMode", PerformanceMode.ToString());
|
|
|
|
if (setglobals)
|
|
{
|
|
try
|
|
{
|
|
switch(Convert.ToInt32(framerate))
|
|
{
|
|
case int showFPSLine when showFPSLine == 1 && Convert.ToInt32(frametime) == 1:
|
|
GlobalVars.ReShadeFPSDisplay = true;
|
|
break;
|
|
default:
|
|
GlobalVars.ReShadeFPSDisplay = false;
|
|
break;
|
|
}
|
|
|
|
switch (Convert.ToInt32(performance))
|
|
{
|
|
case 1:
|
|
GlobalVars.ReShadePerformanceMode = true;
|
|
break;
|
|
default:
|
|
GlobalVars.ReShadePerformanceMode = false;
|
|
break;
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
ReShadeValues(cfgpath, true, setglobals);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void ReadClientValues(string clientpath)
|
|
{
|
|
string file, usesplayername, usesid, warning,
|
|
legacymode, clientmd5, scriptmd5,
|
|
desc, fix2007, alreadyhassecurity,
|
|
nographicsoptions, commandlineargs;
|
|
|
|
using (StreamReader reader = new StreamReader(clientpath))
|
|
{
|
|
file = reader.ReadLine();
|
|
}
|
|
|
|
string ConvertedLine = SecurityFuncs.Base64Decode(file);
|
|
string[] result = ConvertedLine.Split('|');
|
|
usesplayername = SecurityFuncs.Base64Decode(result[0]);
|
|
usesid = SecurityFuncs.Base64Decode(result[1]);
|
|
warning = SecurityFuncs.Base64Decode(result[2]);
|
|
legacymode = SecurityFuncs.Base64Decode(result[3]);
|
|
clientmd5 = SecurityFuncs.Base64Decode(result[4]);
|
|
scriptmd5 = SecurityFuncs.Base64Decode(result[5]);
|
|
desc = SecurityFuncs.Base64Decode(result[6]);
|
|
fix2007 = SecurityFuncs.Base64Decode(result[8]);
|
|
alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]);
|
|
nographicsoptions = SecurityFuncs.Base64Decode(result[10]);
|
|
try
|
|
{
|
|
commandlineargs = SecurityFuncs.Base64Decode(result[11]);
|
|
}
|
|
catch
|
|
{
|
|
//fake this option until we properly apply it.
|
|
nographicsoptions = "False";
|
|
commandlineargs = SecurityFuncs.Base64Decode(result[10]);
|
|
}
|
|
|
|
bool bline1 = Convert.ToBoolean(usesplayername);
|
|
GlobalVars.SelectedClientInfo.UsesPlayerName = bline1;
|
|
|
|
bool bline2 = Convert.ToBoolean(usesid);
|
|
GlobalVars.SelectedClientInfo.UsesID = bline2;
|
|
|
|
GlobalVars.SelectedClientInfo.Warning = warning;
|
|
|
|
bool bline4 = Convert.ToBoolean(legacymode);
|
|
GlobalVars.SelectedClientInfo.LegacyMode = bline4;
|
|
|
|
GlobalVars.SelectedClientInfo.ClientMD5 = clientmd5;
|
|
GlobalVars.SelectedClientInfo.ScriptMD5 = scriptmd5;
|
|
GlobalVars.SelectedClientInfo.Description = desc;
|
|
|
|
bool bline9 = Convert.ToBoolean(fix2007);
|
|
GlobalVars.SelectedClientInfo.Fix2007 = bline9;
|
|
|
|
bool bline10 = Convert.ToBoolean(alreadyhassecurity);
|
|
GlobalVars.SelectedClientInfo.AlreadyHasSecurity = bline10;
|
|
|
|
bool bline11 = Convert.ToBoolean(nographicsoptions);
|
|
GlobalVars.SelectedClientInfo.NoGraphicsOptions = bline11;
|
|
|
|
GlobalVars.SelectedClientInfo.CommandLineArgs = commandlineargs;
|
|
}
|
|
|
|
public static void ReShade(string cfgpath, string cfgname, bool write)
|
|
{
|
|
string fullpath = cfgpath + "\\" + cfgname;
|
|
|
|
if (!File.Exists(fullpath))
|
|
{
|
|
File.Copy(GlobalVars.ConfigDir + "\\ReShade_default.ini", fullpath, true);
|
|
ReShadeValues(fullpath, write, true);
|
|
}
|
|
else
|
|
{
|
|
ReShadeValues(fullpath, write, true);
|
|
}
|
|
|
|
string clientdir = GlobalVars.ClientDir;
|
|
DirectoryInfo dinfo = new DirectoryInfo(clientdir);
|
|
DirectoryInfo[] Dirs = dinfo.GetDirectories();
|
|
foreach (DirectoryInfo dir in Dirs)
|
|
{
|
|
string fulldirpath = dir.FullName + @"\" + cfgname;
|
|
|
|
if (!File.Exists(fulldirpath))
|
|
{
|
|
File.Copy(fullpath, fulldirpath, true);
|
|
ReShadeValues(fulldirpath, write, false);
|
|
}
|
|
else
|
|
{
|
|
ReShadeValues(fulldirpath, write, false);
|
|
}
|
|
|
|
string fulldllpath = dir.FullName + @"\opengl32.dll";
|
|
|
|
if (GlobalVars.ReShade)
|
|
{
|
|
if (!File.Exists(fulldllpath))
|
|
{
|
|
File.Copy(GlobalVars.ConfigDirData + "\\opengl32.dll", fulldllpath, true);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (File.Exists(fulldllpath))
|
|
{
|
|
File.Delete(fulldllpath);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void ResetConfigValues()
|
|
{
|
|
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
|
GlobalVars.Map = GlobalVars.DefaultMap;
|
|
GlobalVars.CloseOnLaunch = false;
|
|
GeneratePlayerID();
|
|
GlobalVars.PlayerName = "Player";
|
|
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
|
GlobalVars.RobloxPort = 53640;
|
|
GlobalVars.PlayerLimit = 12;
|
|
GlobalVars.Custom_Extra_ShowHats = false;
|
|
GlobalVars.UPnP = false;
|
|
//GlobalVars.UDP = true;
|
|
GlobalVars.DisabledHelp = false;
|
|
GlobalVars.DiscordPresence = true;
|
|
GlobalVars.MapPath = GlobalVars.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
|
GlobalVars.MapPathSnip = GlobalVars.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
|
GlobalVars.GraphicsMode = GraphicsMode.OpenGL;
|
|
GlobalVars.ReShade = false;
|
|
GlobalVars.QualityLevel = QualityLevel.Ultra;
|
|
GlobalVars.OldLayout = false;
|
|
ResetCustomizationValues();
|
|
}
|
|
|
|
public static void ResetCustomizationValues()
|
|
{
|
|
GlobalVars.Custom_Hat1ID_Offline = "NoHat.rbxm";
|
|
GlobalVars.Custom_Hat2ID_Offline = "NoHat.rbxm";
|
|
GlobalVars.Custom_Hat3ID_Offline = "NoHat.rbxm";
|
|
GlobalVars.Custom_Face_Offline = "DefaultFace.rbxm";
|
|
GlobalVars.Custom_Head_Offline = "DefaultHead.rbxm";
|
|
GlobalVars.Custom_T_Shirt_Offline = "NoTShirt.rbxm";
|
|
GlobalVars.Custom_Shirt_Offline = "NoShirt.rbxm";
|
|
GlobalVars.Custom_Pants_Offline = "NoPants.rbxm";
|
|
GlobalVars.Custom_Icon_Offline = "NBC";
|
|
GlobalVars.Custom_Extra = "NoExtra.rbxm";
|
|
GlobalVars.HeadColorID = 24;
|
|
GlobalVars.TorsoColorID = 23;
|
|
GlobalVars.LeftArmColorID = 24;
|
|
GlobalVars.RightArmColorID = 24;
|
|
GlobalVars.LeftLegColorID = 119;
|
|
GlobalVars.RightLegColorID = 119;
|
|
GlobalVars.CharacterID = "";
|
|
GlobalVars.ColorMenu_HeadColor = "Color [A=255, R=245, G=205, B=47]";
|
|
GlobalVars.ColorMenu_TorsoColor = "Color [A=255, R=13, G=105, B=172]";
|
|
GlobalVars.ColorMenu_LeftArmColor = "Color [A=255, R=245, G=205, B=47]";
|
|
GlobalVars.ColorMenu_RightArmColor = "Color [A=255, R=245, G=205, B=47]";
|
|
GlobalVars.ColorMenu_LeftLegColor = "Color [A=255, R=164, G=189, B=71]";
|
|
GlobalVars.ColorMenu_RightLegColor = "Color [A=255, R=164, G=189, B=71]";
|
|
GlobalVars.Custom_Extra_SelectionIsHat = false;
|
|
ReloadLoadtextValue();
|
|
}
|
|
|
|
public static void ReloadLoadtextValue()
|
|
{
|
|
string hat1 = (!GlobalVars.Custom_Hat1ID_Offline.EndsWith("-Solo.rbxm")) ? GlobalVars.Custom_Hat1ID_Offline : "NoHat.rbxm";
|
|
string hat2 = (!GlobalVars.Custom_Hat2ID_Offline.EndsWith("-Solo.rbxm")) ? GlobalVars.Custom_Hat2ID_Offline : "NoHat.rbxm";
|
|
string hat3 = (!GlobalVars.Custom_Hat3ID_Offline.EndsWith("-Solo.rbxm")) ? GlobalVars.Custom_Hat3ID_Offline : "NoHat.rbxm";
|
|
string extra = (!GlobalVars.Custom_Extra.EndsWith("-Solo.rbxm")) ? GlobalVars.Custom_Extra : "NoExtra.rbxm";
|
|
|
|
GlobalVars.loadtext = "'" + hat1 + "','" +
|
|
hat2 + "','" +
|
|
hat3 + "'," +
|
|
GlobalVars.HeadColorID + "," +
|
|
GlobalVars.TorsoColorID + "," +
|
|
GlobalVars.LeftArmColorID + "," +
|
|
GlobalVars.RightArmColorID + "," +
|
|
GlobalVars.LeftLegColorID + "," +
|
|
GlobalVars.RightLegColorID + ",'" +
|
|
GlobalVars.Custom_T_Shirt_Offline + "','" +
|
|
GlobalVars.Custom_Shirt_Offline + "','" +
|
|
GlobalVars.Custom_Pants_Offline + "','" +
|
|
GlobalVars.Custom_Face_Offline + "','" +
|
|
GlobalVars.Custom_Head_Offline + "','" +
|
|
GlobalVars.Custom_Icon_Offline + "','" +
|
|
extra + "'";
|
|
|
|
GlobalVars.sololoadtext = "'" + GlobalVars.Custom_Hat1ID_Offline + "','" +
|
|
GlobalVars.Custom_Hat2ID_Offline + "','" +
|
|
GlobalVars.Custom_Hat3ID_Offline + "'," +
|
|
GlobalVars.HeadColorID + "," +
|
|
GlobalVars.TorsoColorID + "," +
|
|
GlobalVars.LeftArmColorID + "," +
|
|
GlobalVars.RightArmColorID + "," +
|
|
GlobalVars.LeftLegColorID + "," +
|
|
GlobalVars.RightLegColorID + ",'" +
|
|
GlobalVars.Custom_T_Shirt_Offline + "','" +
|
|
GlobalVars.Custom_Shirt_Offline + "','" +
|
|
GlobalVars.Custom_Pants_Offline + "','" +
|
|
GlobalVars.Custom_Face_Offline + "','" +
|
|
GlobalVars.Custom_Head_Offline + "','" +
|
|
GlobalVars.Custom_Icon_Offline + "','" +
|
|
GlobalVars.Custom_Extra + "'";
|
|
}
|
|
|
|
public static void GeneratePlayerID()
|
|
{
|
|
CryptoRandom random = new CryptoRandom();
|
|
int randomID = 0;
|
|
int randIDmode = random.Next(0, 8);
|
|
int idlimit = 0;
|
|
|
|
switch (randIDmode)
|
|
{
|
|
case 0:
|
|
idlimit = 9;
|
|
break;
|
|
case 1:
|
|
idlimit = 99;
|
|
break;
|
|
case 2:
|
|
idlimit = 999;
|
|
break;
|
|
case 3:
|
|
idlimit = 9999;
|
|
break;
|
|
case 4:
|
|
idlimit = 99999;
|
|
break;
|
|
case 5:
|
|
idlimit = 999999;
|
|
break;
|
|
case 6:
|
|
idlimit = 9999999;
|
|
break;
|
|
case 7:
|
|
idlimit = 99999999;
|
|
break;
|
|
case 8:
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if (idlimit > 0)
|
|
{
|
|
randomID = random.Next(0, idlimit);
|
|
}
|
|
else
|
|
{
|
|
randomID = random.Next();
|
|
}
|
|
|
|
//2147483647 is max id.
|
|
GlobalVars.UserID = randomID;
|
|
}
|
|
|
|
public static void GenerateTripcode()
|
|
{
|
|
GlobalVars.PlayerTripcode = SecurityFuncs.RandomString();
|
|
}
|
|
|
|
public static string GenerateAndReturnTripcode()
|
|
{
|
|
GenerateTripcode();
|
|
return GlobalVars.PlayerTripcode;
|
|
}
|
|
|
|
public static Image LoadImage(string fileFullName)
|
|
{
|
|
Stream fileStream = File.OpenRead(fileFullName);
|
|
Image image = Image.FromStream(fileStream);
|
|
|
|
// PropertyItems seem to get lost when fileStream is closed to quickly (?); perhaps
|
|
// this is the reason Microsoft didn't want to close it in the first place.
|
|
PropertyItem[] items = image.PropertyItems;
|
|
|
|
fileStream.Close();
|
|
|
|
foreach (PropertyItem item in items)
|
|
{
|
|
image.SetPropertyItem(item);
|
|
}
|
|
|
|
return image;
|
|
}
|
|
|
|
public static void UpdateRichPresence(LauncherState state, string mapname, bool initial = false)
|
|
{
|
|
if (GlobalVars.DiscordPresence)
|
|
{
|
|
if (initial)
|
|
{
|
|
GlobalVars.presence.largeImageKey = GlobalVars.imagekey_large;
|
|
GlobalVars.presence.startTimestamp = SecurityFuncs.UnixTimeNow();
|
|
}
|
|
|
|
string ValidMapname = (string.IsNullOrWhiteSpace(mapname) ? "Place1" : mapname);
|
|
|
|
switch (state)
|
|
{
|
|
case LauncherState.InLauncher:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_inlauncher;
|
|
GlobalVars.presence.state = "In Launcher";
|
|
GlobalVars.presence.details = "Selected " + GlobalVars.SelectedClient;
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "In Launcher";
|
|
break;
|
|
case LauncherState.InMPGame:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
|
GlobalVars.presence.details = ValidMapname;
|
|
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Multiplayer Game";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Multiplayer Game";
|
|
break;
|
|
case LauncherState.InSoloGame:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
|
GlobalVars.presence.details = ValidMapname;
|
|
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Solo Game";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Solo Game";
|
|
break;
|
|
case LauncherState.InStudio:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_instudio;
|
|
GlobalVars.presence.details = ValidMapname;
|
|
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Studio";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Studio";
|
|
break;
|
|
case LauncherState.InCustomization:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_incustomization;
|
|
GlobalVars.presence.details = "Customizing " + GlobalVars.PlayerName;
|
|
GlobalVars.presence.state = "In Character Customization";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "In Character Customization";
|
|
break;
|
|
case LauncherState.InEasterEggGame:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
|
GlobalVars.presence.details = ValidMapname;
|
|
GlobalVars.presence.state = "Reading a message.";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "Reading a message.";
|
|
break;
|
|
case LauncherState.LoadingURI:
|
|
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
|
GlobalVars.presence.details = ValidMapname;
|
|
GlobalVars.presence.state = "Joining a " + GlobalVars.SelectedClient + " Multiplayer Game";
|
|
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
|
GlobalVars.presence.smallImageText = "Joining a " + GlobalVars.SelectedClient + " Multiplayer Game";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
DiscordRpc.UpdatePresence(ref GlobalVars.presence);
|
|
}
|
|
}
|
|
|
|
public static string ChangeGameSettings()
|
|
{
|
|
string result = "";
|
|
|
|
if (!GlobalVars.SelectedClientInfo.NoGraphicsOptions)
|
|
{
|
|
switch (GlobalVars.GraphicsMode)
|
|
{
|
|
case GraphicsMode.OpenGL:
|
|
result += "xpcall( function() settings().Rendering.graphicsMode = 2 end, function( err ) settings().Rendering.graphicsMode = 4 end );";
|
|
break;
|
|
case GraphicsMode.DirectX:
|
|
result += "pcall(function() settings().Rendering.graphicsMode = 3 end);";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//default values are ultra settings
|
|
int MeshDetail = 100;
|
|
int ShadingQuality = 100;
|
|
int GFXQualityLevel = 19;
|
|
int MaterialQuality = 3;
|
|
int AASamples = 8;
|
|
int Bevels = 1;
|
|
int Shadows_2008 = 1;
|
|
bool Shadows_2007 = true;
|
|
|
|
switch (GlobalVars.QualityLevel)
|
|
{
|
|
case QualityLevel.VeryLow:
|
|
MeshDetail = 50;
|
|
ShadingQuality = 50;
|
|
GFXQualityLevel = 1;
|
|
MaterialQuality = 1;
|
|
AASamples = 1;
|
|
Bevels = 2;
|
|
Shadows_2008 = 2;
|
|
Shadows_2007 = false;
|
|
break;
|
|
case QualityLevel.Low:
|
|
MeshDetail = 50;
|
|
ShadingQuality = 50;
|
|
GFXQualityLevel = 5;
|
|
MaterialQuality = 1;
|
|
AASamples = 1;
|
|
Bevels = 2;
|
|
Shadows_2008 = 2;
|
|
Shadows_2007 = false;
|
|
break;
|
|
case QualityLevel.Medium:
|
|
MeshDetail = 50;
|
|
ShadingQuality = 50;
|
|
GFXQualityLevel = 10;
|
|
MaterialQuality = 2;
|
|
AASamples = 4;
|
|
Bevels = 2;
|
|
Shadows_2007 = false;
|
|
break;
|
|
case QualityLevel.High:
|
|
MeshDetail = 75;
|
|
ShadingQuality = 75;
|
|
GFXQualityLevel = 15;
|
|
AASamples = 4;
|
|
break;
|
|
case QualityLevel.Ultra:
|
|
default:
|
|
break;
|
|
}
|
|
|
|
result += " pcall(function() settings().Rendering.maxMeshDetail = " + MeshDetail.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.maxShadingQuality = " + ShadingQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.minMeshDetail = " + MeshDetail.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.minShadingQuality = " + ShadingQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.AluminumQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.CompoundMaterialQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.CorrodedMetalQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.DiamondPlateQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.GrassQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.IceQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.PlasticQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.SlateQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.TrussDetail = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.WoodQuality = " + MaterialQuality.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.Antialiasing = 1 end);"
|
|
+ " pcall(function() settings().Rendering.AASamples = " + AASamples.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.Bevels = " + Bevels.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.Shadow = " + Shadows_2008.ToString() + " end);"
|
|
+ " pcall(function() settings().Rendering.Shadows = " + Shadows_2007.ToString().ToLower() + " end);"
|
|
+ " pcall(function() settings().Rendering.QualityLevel = " + GFXQualityLevel.ToString() + " end);";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static string GetLuaFileName()
|
|
{
|
|
string luafile = "";
|
|
|
|
if (!GlobalVars.SelectedClientInfo.Fix2007)
|
|
{
|
|
luafile = "rbxasset://scripts\\\\" + GlobalVars.ScriptName + ".lua";
|
|
}
|
|
else
|
|
{
|
|
luafile = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
|
}
|
|
|
|
return luafile;
|
|
}
|
|
|
|
public static string GetClientEXEDir(ScriptType type)
|
|
{
|
|
string rbxexe = "";
|
|
if (GlobalVars.SelectedClientInfo.LegacyMode)
|
|
{
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
|
}
|
|
else
|
|
{
|
|
switch (type)
|
|
{
|
|
case ScriptType.Client:
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_client.exe";
|
|
break;
|
|
case ScriptType.Server:
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_server.exe";
|
|
break;
|
|
case ScriptType.Studio:
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_studio.exe";
|
|
break;
|
|
case ScriptType.Solo:
|
|
case ScriptType.EasterEgg:
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_solo.exe";
|
|
break;
|
|
case ScriptType.None:
|
|
default:
|
|
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return rbxexe;
|
|
}
|
|
}
|