add clientscript stuff, t-shirts in 2007e
This commit is contained in:
parent
5fd6a93cd4
commit
594ed98384
|
|
@ -10,10 +10,10 @@ using System.Windows.Forms;
|
|||
|
||||
class Downloader
|
||||
{
|
||||
private readonly string fileURL;
|
||||
private readonly string fileName;
|
||||
private readonly string fileFilter;
|
||||
private readonly string filePath;
|
||||
public readonly string fileURL;
|
||||
public readonly string fileName;
|
||||
public readonly string fileFilter;
|
||||
public readonly string filePath;
|
||||
private string downloadOutcome;
|
||||
private static string downloadOutcomeException;
|
||||
|
||||
|
|
@ -96,16 +96,21 @@ class Downloader
|
|||
{
|
||||
read = DownloadFile(fileURL, name);
|
||||
}
|
||||
#if URI || LAUNCHER || CMD || BASICLAUNCHER
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
#else
|
||||
catch (Exception)
|
||||
{
|
||||
#endif
|
||||
downloadOutcome = "Error when downloading file: " + ex.Message;
|
||||
}
|
||||
finally
|
||||
{
|
||||
//wait a few seconds for the download to finish
|
||||
Thread.Sleep(2000);
|
||||
if (File.Exists(name))
|
||||
//Thread.Sleep(2000);
|
||||
if (/*File.Exists(name)*/ read > 0)
|
||||
{
|
||||
downloadOutcome = "File " + Path.GetFileName(name) + " downloaded! " + GlobalFuncs.SizeSuffix(Convert.ToInt64(read), 2) + " written (" + read + " bytes)! " + additionalText;
|
||||
}
|
||||
|
|
@ -195,7 +200,9 @@ class Downloader
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
#if URI || LAUNCHER || CMD || BASICLAUNCHER
|
||||
GlobalFuncs.LogExceptions(e);
|
||||
#endif
|
||||
if (e is WebException && bytesProcessed == 0)
|
||||
{
|
||||
WebException ex = (WebException)e;
|
||||
|
|
@ -34,20 +34,28 @@ public enum RobloxFileType
|
|||
#endregion
|
||||
|
||||
#region Asset Cache Definition
|
||||
public class AssetCacheDef
|
||||
public class AssetCacheDefBasic
|
||||
{
|
||||
public AssetCacheDef(string clas, string[] id, string[] ext,
|
||||
string[] dir, string[] gamedir)
|
||||
public AssetCacheDefBasic(string clas, string[] id)
|
||||
{
|
||||
Class = clas;
|
||||
Id = id;
|
||||
}
|
||||
|
||||
public string Class { get; set; }
|
||||
public string[] Id { get; set; }
|
||||
}
|
||||
|
||||
public class AssetCacheDef : AssetCacheDefBasic
|
||||
{
|
||||
public AssetCacheDef(string clas, string[] id, string[] ext,
|
||||
string[] dir, string[] gamedir) : base(clas, id)
|
||||
{
|
||||
Ext = ext;
|
||||
Dir = dir;
|
||||
GameDir = gamedir;
|
||||
}
|
||||
|
||||
public string Class { get; set; }
|
||||
public string[] Id { get; set; }
|
||||
public string[] Ext { get; set; }
|
||||
public string[] Dir { get; set; }
|
||||
public string[] GameDir { get; set; }
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
#region Usings
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
|
|
@ -134,6 +135,351 @@ public static class RobloxXML
|
|||
return "";
|
||||
}
|
||||
|
||||
private static void DownloadFilesFromNode(string url, string path, string fileext, string id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
Downloader download = new Downloader(url, id);
|
||||
|
||||
try
|
||||
{
|
||||
download.InitDownload(path, fileext, "", true);
|
||||
}
|
||||
#if URI || LAUNCHER || CMD || BASICLAUNCHER
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
#else
|
||||
catch (Exception)
|
||||
{
|
||||
#endif
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, AssetCacheDef assetdef, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadOrFixURLS(doc, remote, url, assetdef, 0, 0, 0, 0, name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, AssetCacheDef assetdef, int idIndex, int extIndex, int outputPathIndex, int inGameDirIndex, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadOrFixURLS(doc, remote, url, assetdef.Class, assetdef.Id[idIndex], assetdef.Ext[extIndex], assetdef.Dir[outputPathIndex], assetdef.GameDir[inGameDirIndex], name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, string itemClassValue, string itemIdValue, string fileext, string outputPath, string inGameDir, string name = "", string meshname = "")
|
||||
{
|
||||
if (remote)
|
||||
{
|
||||
FixURLInNodes(doc, itemClassValue, itemIdValue, url);
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFromNodes(doc, itemClassValue, itemIdValue, fileext, outputPath, inGameDir, name, meshname);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadFromNodes(XDocument doc, string itemClassValue, string itemIdValue, string fileext, string outputPath, string inGameDir, string name = "", string meshname = "")
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
string urlFixed = url.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl)
|
||||
.Replace("&", "&")
|
||||
.Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = (inGameDir + IDVal + fileext).Replace(" ", "");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = "https://assetdelivery.roblox.com/v1/asset/?id=" + url.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = inGameDir + IDVal + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void FixURLInNodes(XDocument doc, string itemClassValue, string itemIdValue, string url)
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string urlFixed = oldurl.Replace("http://", "")
|
||||
.Replace("https://", "")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", url)
|
||||
.Replace("www.roblox.com/asset?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset?id=", url)
|
||||
.Replace("roblox.com/asset/?id=", url)
|
||||
.Replace("roblox.com/asset?id=", url)
|
||||
.Replace("&", "&")
|
||||
.Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
item3.Value = urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = url + oldurl.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
item3.Value = urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetURLInNodes(XDocument doc, string itemClassValue, string itemIdValue, string url)
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string urlFixed = oldurl.Replace("http://", "")
|
||||
.Replace("https://", "")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", url)
|
||||
.Replace("www.roblox.com/asset?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset?id=", url)
|
||||
.Replace("roblox.com/asset/?id=", url)
|
||||
.Replace("roblox.com/asset?id=", url)
|
||||
.Replace("&", "&")
|
||||
.Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
return urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = url + oldurl.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
return urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
//TODO: actually download the script assets instead of fixing the scripts lol. fixing the scripts won't work anyways because we don't support https natively.
|
||||
/*
|
||||
public static void DownloadScriptFromNodes(string filepath, string itemClassValue)
|
||||
{
|
||||
string oldfile = File.ReadAllText(filepath);
|
||||
string fixedfile = RemoveInvalidXmlChars(ReplaceHexadecimalSymbols(oldfile));
|
||||
XDocument doc = XDocument.Parse(fixedfile);
|
||||
|
||||
try
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Properties")
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in doc.Descendants("ProtectedString")
|
||||
where nodes.Attribute("name").Value == "Source"
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
item3.Value.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
doc.Save(filepath);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadFromScript(string filepath)
|
||||
{
|
||||
string[] file = File.ReadAllLines(filepath);
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var line in file)
|
||||
{
|
||||
if (line.Contains("www.roblox.com/asset/?id=") || line.Contains("assetgame.roblox.com/asset/?id="))
|
||||
{
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
line.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
File.WriteAllLines(filepath, file);
|
||||
}
|
||||
}*/
|
||||
|
||||
public static string RemoveInvalidXmlChars(string content)
|
||||
{
|
||||
return new string(content.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray());
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
<Import_RootNamespace>NovetusCore</Import_RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\Downloader.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\PartColors.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)CharCustom\ContentProviders.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)CharCustom\IconLoader.cs" />
|
||||
|
|
@ -17,6 +18,7 @@
|
|||
<Compile Include="$(MSBuildThisFileDirectory)Classes\FileFormat.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\IDiscordRPC.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\INIFile.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\ROBLOXHelpers.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\RobloxXML.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\Settings.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Classes\TextLineRemover.cs" />
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ using System.Text.RegularExpressions;
|
|||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
#endregion
|
||||
|
||||
|
|
@ -1094,7 +1095,7 @@ public class GlobalFuncs
|
|||
ReloadLoadoutValue();
|
||||
}
|
||||
|
||||
public static void ReloadLoadoutValue()
|
||||
public static void ReloadLoadoutValue(bool localizeOnlineClothing = false)
|
||||
{
|
||||
string hat1 = (!GlobalVars.UserCustomization.Hat1.EndsWith("-Solo.rbxm")) ? GlobalVars.UserCustomization.Hat1 : "NoHat.rbxm";
|
||||
string hat2 = (!GlobalVars.UserCustomization.Hat2.EndsWith("-Solo.rbxm")) ? GlobalVars.UserCustomization.Hat2 : "NoHat.rbxm";
|
||||
|
|
@ -1134,9 +1135,105 @@ public class GlobalFuncs
|
|||
GlobalVars.UserCustomization.Head + "','" +
|
||||
GlobalVars.UserCustomization.Icon + "','" +
|
||||
GlobalVars.UserCustomization.Extra + "'";
|
||||
|
||||
if (localizeOnlineClothing)
|
||||
{
|
||||
GlobalVars.TShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.TShirt, "TShirt", new AssetCacheDefBasic("ShirtGraphic", new string[] { "Graphic" }));
|
||||
GlobalVars.ShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.Shirt, "Shirt", new AssetCacheDefBasic("Shirt", new string[] { "ShirtTemplate" }));
|
||||
GlobalVars.PantsTextureID = GetItemTextureID(GlobalVars.UserCustomization.Pants, "Pants", new AssetCacheDefBasic("Pants", new string[] { "PantsTemplate" }));
|
||||
GlobalVars.FaceTextureID = GetItemTextureID(GlobalVars.UserCustomization.Face, "Face", new AssetCacheDefBasic("Decal", new string[] { "Texture" }));
|
||||
|
||||
GlobalVars.TShirtTextureLocal = GetItemTextureLocalPath(GlobalVars.TShirtTextureID);
|
||||
GlobalVars.ShirtTextureLocal = GetItemTextureLocalPath(GlobalVars.ShirtTextureID);
|
||||
GlobalVars.PantsTextureLocal = GetItemTextureLocalPath(GlobalVars.PantsTextureID);
|
||||
GlobalVars.FaceTextureLocal = GetItemTextureLocalPath(GlobalVars.FaceTextureID);
|
||||
}
|
||||
}
|
||||
|
||||
public static void GeneratePlayerID()
|
||||
|
||||
public static string GetItemTextureLocalPath(string item)
|
||||
{
|
||||
//don't bother, we're offline.
|
||||
if (GlobalVars.ExternalIP.Equals("localhost"))
|
||||
return "";
|
||||
|
||||
if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%"))
|
||||
return "";
|
||||
|
||||
string peram = "id=";
|
||||
string id = item.After(peram);
|
||||
if (item.Contains(peram))
|
||||
{
|
||||
Downloader download = new Downloader(item, id + ".png", "", GlobalPaths.AssetCacheDirTextures);
|
||||
|
||||
try
|
||||
{
|
||||
string path = download.GetFullDLPath();
|
||||
download.InitDownloadNoDialog(path);
|
||||
return GlobalPaths.AssetCacheTexturesGameDir + download.fileName;
|
||||
}
|
||||
#if URI || LAUNCHER || CMD || BASICLAUNCHER
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogExceptions(ex);
|
||||
#else
|
||||
catch (Exception)
|
||||
{
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public static string GetItemTextureID(string item, string name, AssetCacheDefBasic assetCacheDef)
|
||||
{
|
||||
//don't bother, we're offline.
|
||||
if (GlobalVars.ExternalIP.Equals("localhost"))
|
||||
return "";
|
||||
|
||||
if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%"))
|
||||
return "";
|
||||
|
||||
string peram = "id=";
|
||||
if (item.Contains(peram))
|
||||
{
|
||||
Downloader download = new Downloader(item, name + "Temp.rbxm", "", GlobalPaths.AssetCacheDirFonts);
|
||||
|
||||
try
|
||||
{
|
||||
string path = download.GetFullDLPath();
|
||||
download.InitDownloadNoDialog(path);
|
||||
string oldfile = File.ReadAllText(path);
|
||||
string fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile)).Replace("	", "\t").Replace("#9;", "\t");
|
||||
XDocument doc = null;
|
||||
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings { CheckCharacters = false };
|
||||
Stream filestream = GenerateStreamFromString(fixedfile);
|
||||
using (XmlReader xmlReader = XmlReader.Create(filestream, xmlReaderSettings))
|
||||
{
|
||||
xmlReader.MoveToContent();
|
||||
doc = XDocument.Load(xmlReader);
|
||||
}
|
||||
|
||||
string id = item.After(peram);
|
||||
string baseURL = item.Before(id);
|
||||
|
||||
return RobloxXML.GetURLInNodes(doc, assetCacheDef.Class, assetCacheDef.Id[0], baseURL);
|
||||
}
|
||||
#if URI || LAUNCHER || CMD || BASICLAUNCHER
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogExceptions(ex);
|
||||
#else
|
||||
catch (Exception)
|
||||
{
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public static void GeneratePlayerID()
|
||||
{
|
||||
CryptoRandom random = new CryptoRandom();
|
||||
int randomID = 0;
|
||||
|
|
@ -1833,6 +1930,7 @@ public class GlobalFuncs
|
|||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
ReloadLoadoutValue(true);
|
||||
if (!GlobalVars.LocalPlayMode && GlobalVars.GameOpened != ScriptType.Server)
|
||||
{
|
||||
goto default;
|
||||
|
|
@ -1857,10 +1955,13 @@ public class GlobalFuncs
|
|||
}
|
||||
else if (GlobalVars.UserConfiguration.FirstServerLaunch)
|
||||
{
|
||||
string hostingTips = "For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\n" +
|
||||
"If your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\n" +
|
||||
"Roblox does NOT use TCP, only UDP. However, if your server doesn't work with just UDP, feel free to set up TCP too as that might help the issue in some cases.";
|
||||
#if LAUNCHER
|
||||
MessageBox.Show("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.", "Novetus - Hosting Tips", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
MessageBox.Show(hostingTips, "Novetus - Hosting Tips", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
#elif CMD
|
||||
ConsolePrint("For your first time hosting a server, make sure your server's port forwarded (set up in your router), going through a tunnel server, or running from UPnP.\nIf your port is forwarded or you are going through a tunnel server, make sure your port is set up as UDP, not TCP.\nRoblox does NOT use TCP, only UDP.\nPress any key to continue...", 4);
|
||||
ConsolePrint(hostingTips + "\nPress any key to continue...", 4);
|
||||
Console.ReadKey();
|
||||
#endif
|
||||
GlobalVars.UserConfiguration.FirstServerLaunch = false;
|
||||
|
|
@ -1871,6 +1972,7 @@ public class GlobalFuncs
|
|||
}
|
||||
break;
|
||||
case ScriptType.Solo:
|
||||
ReloadLoadoutValue(true);
|
||||
if (GlobalVars.GameOpened != ScriptType.Studio)
|
||||
{
|
||||
goto default;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,14 @@ public static class GlobalVars
|
|||
#region Customization
|
||||
public static string Loadout = "";
|
||||
public static string soloLoadout = "";
|
||||
public static string TShirtTextureID = "";
|
||||
public static string ShirtTextureID = "";
|
||||
public static string PantsTextureID = "";
|
||||
public static string FaceTextureID = "";
|
||||
public static string TShirtTextureLocal = "";
|
||||
public static string ShirtTextureLocal = "";
|
||||
public static string PantsTextureLocal = "";
|
||||
public static string FaceTextureLocal = "";
|
||||
#endregion
|
||||
|
||||
#region Discord Variables
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
#endregion
|
||||
|
||||
#region Script Functions
|
||||
|
|
@ -56,14 +58,14 @@ public class ScriptFuncs
|
|||
+ GlobalVars.Loadout + ","
|
||||
+ md5s + ",'"
|
||||
+ GlobalVars.UserConfiguration.PlayerTripcode
|
||||
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "'," + GlobalVars.ValidatedExtraFiles.ToString() + ");" : "');");
|
||||
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "'," + GlobalVars.ValidatedExtraFiles.ToString() + ",);" : "',0);");
|
||||
case ScriptType.Server:
|
||||
return "_G.CSServer("
|
||||
+ GlobalVars.UserConfiguration.RobloxPort + ","
|
||||
+ GlobalVars.UserConfiguration.PlayerLimit + ","
|
||||
+ md5s + ","
|
||||
+ GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower()
|
||||
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "," + GlobalVars.ValidatedExtraFiles.ToString() : "") + ");";
|
||||
+ ((GlobalVars.ValidatedExtraFiles > 0) ? "," + GlobalVars.ValidatedExtraFiles.ToString() : ");") + ",0);";
|
||||
case ScriptType.Solo:
|
||||
case ScriptType.EasterEgg:
|
||||
return "_G.CSSolo("
|
||||
|
|
@ -359,7 +361,15 @@ public class ScriptFuncs
|
|||
.Replace("%loadout%", code.Contains("<solo>") ? GlobalVars.soloLoadout : GlobalVars.Loadout)
|
||||
.Replace("%doublequote%", "\"")
|
||||
.Replace("%validatedextrafiles%", GlobalVars.ValidatedExtraFiles.ToString())
|
||||
.Replace("%argstring%", GetRawArgsForType(type, ClientName, luafile));
|
||||
.Replace("%argstring%", GetRawArgsForType(type, ClientName, luafile))
|
||||
.Replace("%tshirttexid%", GlobalVars.TShirtTextureID)
|
||||
.Replace("%shirttexid%", GlobalVars.ShirtTextureID)
|
||||
.Replace("%pantstexid%", GlobalVars.PantsTextureID)
|
||||
.Replace("%facetexid%", GlobalVars.FaceTextureID)
|
||||
.Replace("%tshirttexidlocal%", GlobalVars.TShirtTextureLocal)
|
||||
.Replace("%shirttexidlocal%", GlobalVars.ShirtTextureLocal)
|
||||
.Replace("%pantstexidlocal%", GlobalVars.PantsTextureLocal)
|
||||
.Replace("%facetexlocal%", GlobalVars.FaceTextureLocal);
|
||||
|
||||
if (compiled.Contains("%disabled%"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -817,6 +817,15 @@ namespace NovetusLauncher
|
|||
if (LocalVars.launcherInitState)
|
||||
return;
|
||||
|
||||
if (GlobalVars.AdminMode)
|
||||
{
|
||||
DialogResult closeNovetus = MessageBox.Show("You are in Admin Mode.\nAre you sure you want to switch styles?", "Novetus - Admin Mode Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
if (closeNovetus == DialogResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GlobalVars.GameOpened != ScriptType.None)
|
||||
{
|
||||
MessageBox.Show("You must close the currently open client before changing styles.", "Novetus - Client is Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1103,6 +1112,15 @@ namespace NovetusLauncher
|
|||
|
||||
public void RestartLauncherAfterSetting(bool check, string title, string subText)
|
||||
{
|
||||
if (GlobalVars.AdminMode)
|
||||
{
|
||||
DialogResult closeNovetus = MessageBox.Show("You are in Admin Mode.\nAre you sure you want to apply this setting?", "Novetus - Admin Mode Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
if (closeNovetus == DialogResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GlobalVars.GameOpened != ScriptType.None)
|
||||
{
|
||||
MessageBox.Show("You must close the currently open client before this setting can be applied.", "Novetus - Client is Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
|
|||
|
|
@ -457,6 +457,15 @@ namespace NovetusLauncher
|
|||
if (LocalVars.launcherInitState)
|
||||
return;
|
||||
|
||||
if (GlobalVars.AdminMode)
|
||||
{
|
||||
DialogResult closeNovetus = System.Windows.Forms.MessageBox.Show("You are in Admin Mode.\nAre you sure you want to switch styles?", "Novetus - Admin Mode Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
if (closeNovetus == DialogResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GlobalVars.GameOpened != ScriptType.None)
|
||||
{
|
||||
System.Windows.Forms.MessageBox.Show("You must close the currently open client before changing styles.", "Novetus - Client is Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
|
|||
|
|
@ -347,283 +347,6 @@ public partial class AssetSDK : Form
|
|||
#endregion
|
||||
|
||||
#region Asset Fixer
|
||||
private static void DownloadFilesFromNode(string url, string path, string fileext, string id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
Downloader download = new Downloader(url, id);
|
||||
|
||||
try
|
||||
{
|
||||
download.InitDownload(path, fileext, "", true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, AssetCacheDef assetdef, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadOrFixURLS(doc, remote, url, assetdef, 0, 0, 0, 0, name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, AssetCacheDef assetdef, int idIndex, int extIndex, int outputPathIndex, int inGameDirIndex, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadOrFixURLS(doc, remote, url, assetdef.Class, assetdef.Id[idIndex], assetdef.Ext[extIndex], assetdef.Dir[outputPathIndex], assetdef.GameDir[inGameDirIndex], name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadOrFixURLS(XDocument doc, bool remote, string url, string itemClassValue, string itemIdValue, string fileext, string outputPath, string inGameDir, string name = "", string meshname = "")
|
||||
{
|
||||
if (remote)
|
||||
{
|
||||
FixURLInNodes(doc, itemClassValue, itemIdValue, url);
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFromNodes(doc, itemClassValue, itemIdValue, fileext, outputPath, inGameDir, name, meshname);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadFromNodes(XDocument doc, string itemClassValue, string itemIdValue, string fileext, string outputPath, string inGameDir, string name = "", string meshname = "")
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
string urlFixed = url.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl)
|
||||
.Replace("&", "&")
|
||||
.Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = (inGameDir + IDVal + fileext).Replace(" ", "");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = "https://assetdelivery.roblox.com/v1/asset/?id=" + url.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = inGameDir + IDVal + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void FixURLInNodes(XDocument doc, string itemClassValue, string itemIdValue, string url)
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string urlFixed = oldurl.Replace("http://", "")
|
||||
.Replace("https://", "")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", url)
|
||||
.Replace("www.roblox.com/asset?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", url)
|
||||
.Replace("assetgame.roblox.com/asset?id=", url)
|
||||
.Replace("roblox.com/asset/?id=", url)
|
||||
.Replace("roblox.com/asset?id=", url)
|
||||
.Replace("&", "&")
|
||||
.Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
item3.Value = urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string oldurl = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = url + oldurl.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
item3.Value = urlFixed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: actually download the script assets instead of fixing the scripts lol. fixing the scripts won't work anyways because we don't support https natively.
|
||||
/*
|
||||
public static void DownloadScriptFromNodes(string filepath, string itemClassValue)
|
||||
{
|
||||
string oldfile = File.ReadAllText(filepath);
|
||||
string fixedfile = RemoveInvalidXmlChars(ReplaceHexadecimalSymbols(oldfile));
|
||||
XDocument doc = XDocument.Parse(fixedfile);
|
||||
|
||||
try
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Properties")
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in doc.Descendants("ProtectedString")
|
||||
where nodes.Attribute("name").Value == "Source"
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
item3.Value.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
doc.Save(filepath);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DownloadFromScript(string filepath)
|
||||
{
|
||||
string[] file = File.ReadAllLines(filepath);
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var line in file)
|
||||
{
|
||||
if (line.Contains("www.roblox.com/asset/?id=") || line.Contains("assetgame.roblox.com/asset/?id="))
|
||||
{
|
||||
string newurl = "assetdelivery.roblox.com/v1/asset/?id=";
|
||||
line.Replace("http://", "https://")
|
||||
.Replace("?version=1&id=", "?id=")
|
||||
.Replace("www.roblox.com/asset/?id=", newurl)
|
||||
.Replace("www.roblox.com/asset?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset/?id=", newurl)
|
||||
.Replace("assetgame.roblox.com/asset?id=", newurl)
|
||||
.Replace("roblox.com/asset/?id=", newurl)
|
||||
.Replace("roblox.com/asset?id=", newurl);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
GlobalFuncs.LogExceptions(ex);
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset SDK - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
File.WriteAllLines(filepath, file);
|
||||
}
|
||||
}*/
|
||||
|
||||
public static OpenFileDialog LoadROBLOXFileDialog(RobloxFileType type)
|
||||
{
|
||||
|
|
@ -876,44 +599,44 @@ public partial class AssetSDK : Form
|
|||
}
|
||||
//meshes
|
||||
worker.ReportProgress(5);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts, 1, 1, 1, 1);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts, 1, 1, 1, 1);
|
||||
//skybox
|
||||
worker.ReportProgress(10);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 1, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 2, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 3, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 4, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 5, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 1, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 2, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 3, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 4, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 5, 0, 0, 0);
|
||||
//decal
|
||||
worker.ReportProgress(15);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Decal);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Decal);
|
||||
//texture
|
||||
worker.ReportProgress(20);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Texture);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Texture);
|
||||
//tools and hopperbin
|
||||
worker.ReportProgress(25);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Tool);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Tool);
|
||||
worker.ReportProgress(30);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.HopperBin);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.HopperBin);
|
||||
//sound
|
||||
worker.ReportProgress(40);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sound);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sound);
|
||||
worker.ReportProgress(50);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ImageLabel);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ImageLabel);
|
||||
//clothing
|
||||
worker.ReportProgress(60);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Shirt);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Shirt);
|
||||
worker.ReportProgress(65);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ShirtGraphic);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ShirtGraphic);
|
||||
worker.ReportProgress(70);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Pants);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Pants);
|
||||
//scripts
|
||||
worker.ReportProgress(80);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Script);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Script);
|
||||
worker.ReportProgress(90);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.LocalScript);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.LocalScript);
|
||||
//localize any scripts that are not handled
|
||||
/*
|
||||
worker.ReportProgress(95);
|
||||
|
|
@ -941,44 +664,44 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//meshes
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts, 1, 1, 1, 1);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Fonts, 1, 1, 1, 1);
|
||||
//skybox
|
||||
worker.ReportProgress(10);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 1, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 2, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 3, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 4, 0, 0, 0);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 5, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 1, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 2, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 3, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 4, 0, 0, 0);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sky, 5, 0, 0, 0);
|
||||
//decal
|
||||
worker.ReportProgress(15);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Decal);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Decal);
|
||||
//texture
|
||||
worker.ReportProgress(20);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Texture);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Texture);
|
||||
//tools and hopperbin
|
||||
worker.ReportProgress(25);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Tool);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Tool);
|
||||
worker.ReportProgress(30);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.HopperBin);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.HopperBin);
|
||||
//sound
|
||||
worker.ReportProgress(40);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sound);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Sound);
|
||||
worker.ReportProgress(50);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ImageLabel);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ImageLabel);
|
||||
//clothing
|
||||
worker.ReportProgress(60);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Shirt);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Shirt);
|
||||
worker.ReportProgress(65);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ShirtGraphic);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ShirtGraphic);
|
||||
worker.ReportProgress(70);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Pants);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Pants);
|
||||
//scripts
|
||||
worker.ReportProgress(80);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Script);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.Script);
|
||||
worker.ReportProgress(90);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.LocalScript);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.LocalScript);
|
||||
//localize any scripts that are not handled
|
||||
/*
|
||||
worker.ReportProgress(95);
|
||||
|
|
@ -1006,15 +729,15 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//meshes
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatFonts, itemname, meshname);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatFonts, 1, 1, 1, 1, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatFonts, itemname, meshname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatFonts, 1, 1, 1, 1, itemname);
|
||||
worker.ReportProgress(25);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatSound);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatSound);
|
||||
//scripts
|
||||
worker.ReportProgress(50);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatScript);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatScript);
|
||||
worker.ReportProgress(75);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatLocalScript);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHatLocalScript);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case RobloxFileType.Head:
|
||||
|
|
@ -1036,8 +759,8 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//meshes
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHeadFonts, itemname);
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHeadFonts, 1, 1, 1, 1, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHeadFonts, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemHeadFonts, 1, 1, 1, 1, itemname);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case RobloxFileType.Face:
|
||||
|
|
@ -1059,7 +782,7 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//decal
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemFaceTexture, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemFaceTexture, itemname);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case RobloxFileType.TShirt:
|
||||
|
|
@ -1081,7 +804,7 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//texture
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemTShirtTexture, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemTShirtTexture, itemname);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case RobloxFileType.Shirt:
|
||||
|
|
@ -1103,7 +826,7 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//texture
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemShirtTexture, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemShirtTexture, itemname);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case RobloxFileType.Pants:
|
||||
|
|
@ -1125,7 +848,7 @@ public partial class AssetSDK : Form
|
|||
worker.ReportProgress(0);
|
||||
}
|
||||
//texture
|
||||
DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemPantsTexture, itemname);
|
||||
RobloxXML.DownloadOrFixURLS(doc, useURLs, remoteurl, RobloxDefs.ItemPantsTexture, itemname);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
/*case RobloxFileType.Script:
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ partial class ClientinfoEditor
|
|||
this.serverToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.limitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.notificationsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.portToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.securityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.md5launcherToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.md5scriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
|
@ -108,18 +109,22 @@ partial class ClientinfoEditor
|
|||
this.facesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.faceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.facedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.facetexidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.headsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.headToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.headdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tShirtsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tshirtToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tshirtdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tshirttexidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.shirtsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.shirtToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.shirtdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.shirttexidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pantsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pantsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pantsdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pantstexidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.extraToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.extraToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.extradToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
|
@ -147,7 +152,11 @@ partial class ClientinfoEditor
|
|||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.checkBox5 = new System.Windows.Forms.CheckBox();
|
||||
this.portToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.facetexlocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tshirttexidlocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.shirttexidlocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pantstexidlocalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.localizeonlineclothingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
|
@ -523,17 +532,24 @@ partial class ClientinfoEditor
|
|||
// limitToolStripMenuItem
|
||||
//
|
||||
this.limitToolStripMenuItem.Name = "limitToolStripMenuItem";
|
||||
this.limitToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.limitToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.limitToolStripMenuItem.Text = "%limit%";
|
||||
this.limitToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// notificationsToolStripMenuItem
|
||||
//
|
||||
this.notificationsToolStripMenuItem.Name = "notificationsToolStripMenuItem";
|
||||
this.notificationsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.notificationsToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.notificationsToolStripMenuItem.Text = "%notifications%";
|
||||
this.notificationsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// portToolStripMenuItem
|
||||
//
|
||||
this.portToolStripMenuItem.Name = "portToolStripMenuItem";
|
||||
this.portToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.portToolStripMenuItem.Text = "%port%";
|
||||
this.portToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// securityToolStripMenuItem
|
||||
//
|
||||
this.securityToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
|
@ -551,49 +567,49 @@ partial class ClientinfoEditor
|
|||
// md5launcherToolStripMenuItem
|
||||
//
|
||||
this.md5launcherToolStripMenuItem.Name = "md5launcherToolStripMenuItem";
|
||||
this.md5launcherToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5launcherToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5launcherToolStripMenuItem.Text = "%md5launcher%";
|
||||
this.md5launcherToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5scriptToolStripMenuItem
|
||||
//
|
||||
this.md5scriptToolStripMenuItem.Name = "md5scriptToolStripMenuItem";
|
||||
this.md5scriptToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5scriptToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5scriptToolStripMenuItem.Text = "%md5script%";
|
||||
this.md5scriptToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5exeToolStripMenuItem
|
||||
//
|
||||
this.md5exeToolStripMenuItem.Name = "md5exeToolStripMenuItem";
|
||||
this.md5exeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5exeToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5exeToolStripMenuItem.Text = "%md5exe%";
|
||||
this.md5exeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5scriptdToolStripMenuItem
|
||||
//
|
||||
this.md5scriptdToolStripMenuItem.Name = "md5scriptdToolStripMenuItem";
|
||||
this.md5scriptdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5scriptdToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5scriptdToolStripMenuItem.Text = "%md5scriptd%";
|
||||
this.md5scriptdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5exedToolStripMenuItem
|
||||
//
|
||||
this.md5exedToolStripMenuItem.Name = "md5exedToolStripMenuItem";
|
||||
this.md5exedToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5exedToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5exedToolStripMenuItem.Text = "%md5exed%";
|
||||
this.md5exedToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5sToolStripMenuItem
|
||||
//
|
||||
this.md5sToolStripMenuItem.Name = "md5sToolStripMenuItem";
|
||||
this.md5sToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5sToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5sToolStripMenuItem.Text = "%md5s%";
|
||||
this.md5sToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// md5sdToolStripMenuItem
|
||||
//
|
||||
this.md5sdToolStripMenuItem.Name = "md5sdToolStripMenuItem";
|
||||
this.md5sdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.md5sdToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
|
||||
this.md5sdToolStripMenuItem.Text = "%md5sd%";
|
||||
this.md5sdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
|
|
@ -620,9 +636,10 @@ partial class ClientinfoEditor
|
|||
this.pantsToolStripMenuItem,
|
||||
this.extraToolStripMenuItem,
|
||||
this.charappToolStripMenuItem,
|
||||
this.loadoutToolStripMenuItem});
|
||||
this.loadoutToolStripMenuItem,
|
||||
this.localizeonlineclothingToolStripMenuItem});
|
||||
this.customizationToolStripMenuItem.Name = "customizationToolStripMenuItem";
|
||||
this.customizationToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
|
||||
this.customizationToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.customizationToolStripMenuItem.Text = "Customization";
|
||||
//
|
||||
// bodyColorsToolStripMenuItem
|
||||
|
|
@ -635,7 +652,7 @@ partial class ClientinfoEditor
|
|||
this.rarmcolorToolStripMenuItem,
|
||||
this.rlegcolorToolStripMenuItem});
|
||||
this.bodyColorsToolStripMenuItem.Name = "bodyColorsToolStripMenuItem";
|
||||
this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.bodyColorsToolStripMenuItem.Text = "Body Colors";
|
||||
//
|
||||
// headcolorToolStripMenuItem
|
||||
|
|
@ -690,7 +707,7 @@ partial class ClientinfoEditor
|
|||
this.hat2dToolStripMenuItem,
|
||||
this.hat3dToolStripMenuItem});
|
||||
this.hatsToolStripMenuItem.Name = "hatsToolStripMenuItem";
|
||||
this.hatsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.hatsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.hatsToolStripMenuItem.Text = "Hats";
|
||||
//
|
||||
// hat1ToolStripMenuItem
|
||||
|
|
@ -739,45 +756,54 @@ partial class ClientinfoEditor
|
|||
//
|
||||
this.facesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.faceToolStripMenuItem,
|
||||
this.facedToolStripMenuItem});
|
||||
this.facedToolStripMenuItem,
|
||||
this.facetexidToolStripMenuItem,
|
||||
this.facetexlocalToolStripMenuItem});
|
||||
this.facesToolStripMenuItem.Name = "facesToolStripMenuItem";
|
||||
this.facesToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.facesToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.facesToolStripMenuItem.Text = "Faces";
|
||||
//
|
||||
// faceToolStripMenuItem
|
||||
//
|
||||
this.faceToolStripMenuItem.Name = "faceToolStripMenuItem";
|
||||
this.faceToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
|
||||
this.faceToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.faceToolStripMenuItem.Text = "%face%";
|
||||
this.faceToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// facedToolStripMenuItem
|
||||
//
|
||||
this.facedToolStripMenuItem.Name = "facedToolStripMenuItem";
|
||||
this.facedToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
|
||||
this.facedToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.facedToolStripMenuItem.Text = "%faced%";
|
||||
this.facedToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// facetexidToolStripMenuItem
|
||||
//
|
||||
this.facetexidToolStripMenuItem.Name = "facetexidToolStripMenuItem";
|
||||
this.facetexidToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.facetexidToolStripMenuItem.Text = "%facetexid%";
|
||||
this.facetexidToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// headsToolStripMenuItem
|
||||
//
|
||||
this.headsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.headToolStripMenuItem,
|
||||
this.headdToolStripMenuItem});
|
||||
this.headsToolStripMenuItem.Name = "headsToolStripMenuItem";
|
||||
this.headsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.headsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.headsToolStripMenuItem.Text = "Heads";
|
||||
//
|
||||
// headToolStripMenuItem
|
||||
//
|
||||
this.headToolStripMenuItem.Name = "headToolStripMenuItem";
|
||||
this.headToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.headToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.headToolStripMenuItem.Text = "%head%";
|
||||
this.headToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// headdToolStripMenuItem
|
||||
//
|
||||
this.headdToolStripMenuItem.Name = "headdToolStripMenuItem";
|
||||
this.headdToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.headdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.headdToolStripMenuItem.Text = "%headd%";
|
||||
this.headdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
|
|
@ -785,71 +811,98 @@ partial class ClientinfoEditor
|
|||
//
|
||||
this.tShirtsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tshirtToolStripMenuItem,
|
||||
this.tshirtdToolStripMenuItem});
|
||||
this.tshirtdToolStripMenuItem,
|
||||
this.tshirttexidToolStripMenuItem,
|
||||
this.tshirttexidlocalToolStripMenuItem});
|
||||
this.tShirtsToolStripMenuItem.Name = "tShirtsToolStripMenuItem";
|
||||
this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.tShirtsToolStripMenuItem.Text = "T-Shirts";
|
||||
//
|
||||
// tshirtToolStripMenuItem
|
||||
//
|
||||
this.tshirtToolStripMenuItem.Name = "tshirtToolStripMenuItem";
|
||||
this.tshirtToolStripMenuItem.Size = new System.Drawing.Size(128, 22);
|
||||
this.tshirtToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.tshirtToolStripMenuItem.Text = "%tshirt%";
|
||||
this.tshirtToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// tshirtdToolStripMenuItem
|
||||
//
|
||||
this.tshirtdToolStripMenuItem.Name = "tshirtdToolStripMenuItem";
|
||||
this.tshirtdToolStripMenuItem.Size = new System.Drawing.Size(128, 22);
|
||||
this.tshirtdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.tshirtdToolStripMenuItem.Text = "%tshirtd%";
|
||||
this.tshirtdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// tshirttexidToolStripMenuItem
|
||||
//
|
||||
this.tshirttexidToolStripMenuItem.Name = "tshirttexidToolStripMenuItem";
|
||||
this.tshirttexidToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.tshirttexidToolStripMenuItem.Text = "%tshirttexid%";
|
||||
this.tshirttexidToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// shirtsToolStripMenuItem
|
||||
//
|
||||
this.shirtsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.shirtToolStripMenuItem,
|
||||
this.shirtdToolStripMenuItem});
|
||||
this.shirtdToolStripMenuItem,
|
||||
this.shirttexidToolStripMenuItem,
|
||||
this.shirttexidlocalToolStripMenuItem});
|
||||
this.shirtsToolStripMenuItem.Name = "shirtsToolStripMenuItem";
|
||||
this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.shirtsToolStripMenuItem.Text = "Shirts";
|
||||
//
|
||||
// shirtToolStripMenuItem
|
||||
//
|
||||
this.shirtToolStripMenuItem.Name = "shirtToolStripMenuItem";
|
||||
this.shirtToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
|
||||
this.shirtToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.shirtToolStripMenuItem.Text = "%shirt%";
|
||||
this.shirtToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// shirtdToolStripMenuItem
|
||||
//
|
||||
this.shirtdToolStripMenuItem.Name = "shirtdToolStripMenuItem";
|
||||
this.shirtdToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
|
||||
this.shirtdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.shirtdToolStripMenuItem.Text = "%shirtd%";
|
||||
this.shirtdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// shirttexidToolStripMenuItem
|
||||
//
|
||||
this.shirttexidToolStripMenuItem.Name = "shirttexidToolStripMenuItem";
|
||||
this.shirttexidToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.shirttexidToolStripMenuItem.Text = "%shirttexid%";
|
||||
this.shirttexidToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// pantsToolStripMenuItem
|
||||
//
|
||||
this.pantsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.pantsToolStripMenuItem1,
|
||||
this.pantsdToolStripMenuItem});
|
||||
this.pantsdToolStripMenuItem,
|
||||
this.pantstexidToolStripMenuItem,
|
||||
this.pantstexidlocalToolStripMenuItem});
|
||||
this.pantsToolStripMenuItem.Name = "pantsToolStripMenuItem";
|
||||
this.pantsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.pantsToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.pantsToolStripMenuItem.Text = "Pants";
|
||||
//
|
||||
// pantsToolStripMenuItem1
|
||||
//
|
||||
this.pantsToolStripMenuItem1.Name = "pantsToolStripMenuItem1";
|
||||
this.pantsToolStripMenuItem1.Size = new System.Drawing.Size(130, 22);
|
||||
this.pantsToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
|
||||
this.pantsToolStripMenuItem1.Text = "%pants%";
|
||||
this.pantsToolStripMenuItem1.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// pantsdToolStripMenuItem
|
||||
//
|
||||
this.pantsdToolStripMenuItem.Name = "pantsdToolStripMenuItem";
|
||||
this.pantsdToolStripMenuItem.Size = new System.Drawing.Size(130, 22);
|
||||
this.pantsdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.pantsdToolStripMenuItem.Text = "%pantsd%";
|
||||
this.pantsdToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// pantstexidToolStripMenuItem
|
||||
//
|
||||
this.pantstexidToolStripMenuItem.Name = "pantstexidToolStripMenuItem";
|
||||
this.pantstexidToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.pantstexidToolStripMenuItem.Text = "%pantstexid%";
|
||||
this.pantstexidToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// extraToolStripMenuItem
|
||||
//
|
||||
this.extraToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
|
@ -860,83 +913,83 @@ partial class ClientinfoEditor
|
|||
this.iconeToolStripMenuItem,
|
||||
this.iconToolStripMenuItem});
|
||||
this.extraToolStripMenuItem.Name = "extraToolStripMenuItem";
|
||||
this.extraToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.extraToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.extraToolStripMenuItem.Text = "Extra";
|
||||
//
|
||||
// extraToolStripMenuItem1
|
||||
//
|
||||
this.extraToolStripMenuItem1.Name = "extraToolStripMenuItem1";
|
||||
this.extraToolStripMenuItem1.Size = new System.Drawing.Size(127, 22);
|
||||
this.extraToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
|
||||
this.extraToolStripMenuItem1.Text = "%extra%";
|
||||
this.extraToolStripMenuItem1.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// extradToolStripMenuItem
|
||||
//
|
||||
this.extradToolStripMenuItem.Name = "extradToolStripMenuItem";
|
||||
this.extradToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.extradToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.extradToolStripMenuItem.Text = "%extrad%";
|
||||
this.extradToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// hat4ToolStripMenuItem
|
||||
//
|
||||
this.hat4ToolStripMenuItem.Name = "hat4ToolStripMenuItem";
|
||||
this.hat4ToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.hat4ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.hat4ToolStripMenuItem.Text = "%hat4%";
|
||||
this.hat4ToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// hat4dToolStripMenuItem
|
||||
//
|
||||
this.hat4dToolStripMenuItem.Name = "hat4dToolStripMenuItem";
|
||||
this.hat4dToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.hat4dToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.hat4dToolStripMenuItem.Text = "%hat4d%";
|
||||
this.hat4dToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// iconeToolStripMenuItem
|
||||
//
|
||||
this.iconeToolStripMenuItem.Name = "iconeToolStripMenuItem";
|
||||
this.iconeToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.iconeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.iconeToolStripMenuItem.Text = "%icone%";
|
||||
this.iconeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// iconToolStripMenuItem
|
||||
//
|
||||
this.iconToolStripMenuItem.Name = "iconToolStripMenuItem";
|
||||
this.iconToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
|
||||
this.iconToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.iconToolStripMenuItem.Text = "%icon%";
|
||||
this.iconToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// charappToolStripMenuItem
|
||||
//
|
||||
this.charappToolStripMenuItem.Name = "charappToolStripMenuItem";
|
||||
this.charappToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.charappToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.charappToolStripMenuItem.Text = "%charapp%";
|
||||
this.charappToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// loadoutToolStripMenuItem
|
||||
//
|
||||
this.loadoutToolStripMenuItem.Name = "loadoutToolStripMenuItem";
|
||||
this.loadoutToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.loadoutToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.loadoutToolStripMenuItem.Text = "%loadout%";
|
||||
this.loadoutToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// nameToolStripMenuItem
|
||||
//
|
||||
this.nameToolStripMenuItem.Name = "nameToolStripMenuItem";
|
||||
this.nameToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
|
||||
this.nameToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.nameToolStripMenuItem.Text = "%name%";
|
||||
this.nameToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// idToolStripMenuItem
|
||||
//
|
||||
this.idToolStripMenuItem.Name = "idToolStripMenuItem";
|
||||
this.idToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
|
||||
this.idToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.idToolStripMenuItem.Text = "%id%";
|
||||
this.idToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// tripcodeToolStripMenuItem
|
||||
//
|
||||
this.tripcodeToolStripMenuItem.Name = "tripcodeToolStripMenuItem";
|
||||
this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
|
||||
this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.tripcodeToolStripMenuItem.Text = "%tripcode%";
|
||||
this.tripcodeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
|
|
@ -952,14 +1005,14 @@ partial class ClientinfoEditor
|
|||
// donothingToolStripMenuItem
|
||||
//
|
||||
this.donothingToolStripMenuItem.Name = "donothingToolStripMenuItem";
|
||||
this.donothingToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||
this.donothingToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.donothingToolStripMenuItem.Text = "%donothing%";
|
||||
this.donothingToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// disabledToolStripMenuItem
|
||||
//
|
||||
this.disabledToolStripMenuItem.Name = "disabledToolStripMenuItem";
|
||||
this.disabledToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||
this.disabledToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.disabledToolStripMenuItem.Text = "%disabled%";
|
||||
this.disabledToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
|
|
@ -1100,12 +1153,40 @@ partial class ClientinfoEditor
|
|||
this.checkBox5.UseVisualStyleBackColor = true;
|
||||
this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged);
|
||||
//
|
||||
// portToolStripMenuItem
|
||||
// facetexlocalToolStripMenuItem
|
||||
//
|
||||
this.portToolStripMenuItem.Name = "portToolStripMenuItem";
|
||||
this.portToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.portToolStripMenuItem.Text = "%port%";
|
||||
this.portToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
this.facetexlocalToolStripMenuItem.Name = "facetexlocalToolStripMenuItem";
|
||||
this.facetexlocalToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.facetexlocalToolStripMenuItem.Text = "%facetexlocal%";
|
||||
this.facetexlocalToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// tshirttexidlocalToolStripMenuItem
|
||||
//
|
||||
this.tshirttexidlocalToolStripMenuItem.Name = "tshirttexidlocalToolStripMenuItem";
|
||||
this.tshirttexidlocalToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.tshirttexidlocalToolStripMenuItem.Text = "%tshirttexidlocal%";
|
||||
this.tshirttexidlocalToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// shirttexidlocalToolStripMenuItem
|
||||
//
|
||||
this.shirttexidlocalToolStripMenuItem.Name = "shirttexidlocalToolStripMenuItem";
|
||||
this.shirttexidlocalToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.shirttexidlocalToolStripMenuItem.Text = "%shirttexidlocal%";
|
||||
this.shirttexidlocalToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// pantstexidlocalToolStripMenuItem
|
||||
//
|
||||
this.pantstexidlocalToolStripMenuItem.Name = "pantstexidlocalToolStripMenuItem";
|
||||
this.pantstexidlocalToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.pantstexidlocalToolStripMenuItem.Text = "%pantstexidlocal%";
|
||||
this.pantstexidlocalToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// localizeonlineclothingToolStripMenuItem
|
||||
//
|
||||
this.localizeonlineclothingToolStripMenuItem.Name = "localizeonlineclothingToolStripMenuItem";
|
||||
this.localizeonlineclothingToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.localizeonlineclothingToolStripMenuItem.Text = "%localizeonlineclothing%";
|
||||
this.localizeonlineclothingToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click);
|
||||
//
|
||||
// ClientinfoEditor
|
||||
//
|
||||
|
|
@ -1257,4 +1338,13 @@ partial class ClientinfoEditor
|
|||
private System.Windows.Forms.ToolStripMenuItem argstringToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem addValidateTagsForRelativePathToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem portToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem facetexidToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem tshirttexidToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem shirttexidToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem pantstexidToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem facetexlocalToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem tshirttexidlocalToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem shirttexidlocalToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem pantstexidlocalToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem localizeonlineclothingToolStripMenuItem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,8 +163,6 @@
|
|||
<Compile Include="Classes\Launcher\SplashLoader.cs" />
|
||||
<Compile Include="Classes\Launcher\TreeNodeHelper.cs" />
|
||||
<Compile Include="Classes\LocalVars.cs" />
|
||||
<Compile Include="Classes\SDK\Downloader.cs" />
|
||||
<Compile Include="Classes\SDK\ROBLOXHelpers.cs" />
|
||||
<Compile Include="Forms\Decoder.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ Changes from v11.2021.1:
|
|||
New Features:
|
||||
- The Asset SDK Asset Localizer is now known as the Asset Fixer!
|
||||
- Added the ability to "fix" all asset URLs by changing them to a URL of your choice!
|
||||
- Added T-Shirt support to 2007E/2007E-Shaders.
|
||||
- T-Shirts loaded with Roblox Asset URLs/Redirects are not supported due to 2 issues with 2007e: Roblox Asset URLs/Redirects do not work properly in 2007E if it's a texture and using anything to get the current texture value for a ShirtGraphic or Decal returns a "bad cast" error.
|
||||
- As a result, T-Shirts loaded with Roblox Asset URLs/Redirects will not load in 2007e.
|
||||
|
||||
Enhancements:
|
||||
- Added an additional warning about certain GUI elements being disabled in later clients when No3D is selected.
|
||||
|
|
@ -11,6 +14,10 @@ Enhancements:
|
|||
- The server browser no longer requires a server to be the same exact version as the current running version of Novetus.
|
||||
- The server browser now displays versions in red if they're not the same exact version.
|
||||
- The master server security warning will now show up once for every Novetus session.
|
||||
- Added ClientScript Variables:
|
||||
- %tshirttexid%, %shirttexid%, %pantstexid%, %facetexid% - Returns the texture URL for the respective online clothing type. Returns nothing if the URL is invalid, the item isn't using Online Clothing, or %localizeonlineclothing% is not defined in the script.
|
||||
- %tshirttexidlocal%, %shirttexidlocal%, %pantstexidlocal%, %facetexlocal%" - Returns the texture rbxasset URL for the respective online clothing type. Returns nothing if the URL is invalid, the item isn't using Online Clothing, or %localizeonlineclothing% is not defined in the script. Only the client who downloads the clothing would be able to see it.
|
||||
- %localizeonlineclothing% - Grabs texture IDS for the %texid% variables and localizes the texture for the %texidlocal% variables. This WILL increase load times of your client depending on how many items are being downloaded.
|
||||
|
||||
Fixes:
|
||||
- Fixed the URL Override box in the Asset SDK not being functional.
|
||||
|
|
@ -21,6 +28,7 @@ Fixes:
|
|||
- Fixed small decoding issues with the splash system.
|
||||
- Fixed the Stylish interface not showing a warning when hosting a seperate master server.
|
||||
- Fixed the Stylish interface not pinging the master server.
|
||||
- Fixed some clients not functioning properly with Wine (Credits to man-of-eel in pull request #27).
|
||||
----------------------------------------------------------------------------
|
||||
1.3 v11.2021.1
|
||||
Changes from Pre-Release 5:
|
||||
|
|
|
|||
|
|
@ -51,6 +51,9 @@ Player:
|
|||
%faced%, %headd%, %tshirtd%, %shirtd%, %pantsd%, %hat1d%, %hat2d%, %hat3d%, %extrad%, %hat4d% - Returns the rbxasset:// file paths of each individual item. May return as a URL for the item if it is a URL. Use single quotation marks (').
|
||||
%headcolor%, %torsocolor%, %larmcolor%, %llegcolor%, %rarmcolor%, %rlegcolor% - Returns the BrickColor IDs for individual body part colors.
|
||||
%loadout% - Returns the player's complete current appearance, seperated by commas. Used for loading the loadout with scripts like CSConnect.
|
||||
%tshirttexid%, %shirttexid%, %pantstexid%, %facetexid% - Returns the texture URL for the respective online clothing type. Returns nothing if the URL is invalid, the item isn't using Online Clothing, or %localizeonlineclothing% is not defined in the script.
|
||||
%tshirttexidlocal%, %shirttexidlocal%, %pantstexidlocal%, %facetexlocal%" - Returns the texture rbxasset URL for the respective online clothing type. Returns nothing if the URL is invalid, the item isn't using Online Clothing, or %localizeonlineclothing% is not defined in the script.
|
||||
%localizeonlineclothing% - Grabs texture IDS for the %texid% variables and localizes the texture for the %texidlocal% variables. This WILL increase load times of your client depending on how many items are being downloaded.
|
||||
|
||||
Debugging/Misc:
|
||||
%donothing% - Does exactly as it implies. Useful for debugging tags, but doesn't need to be used as it is called automatically if there is an exception when reading tags. Used internally to suppress errors.
|
||||
|
|
|
|||
|
|
@ -78,6 +78,34 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
pcall(function()
|
||||
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
|
||||
end)
|
||||
elseif (newVal.Name == "T-Shirt") then
|
||||
pcall(function()
|
||||
local newTShirt = "";
|
||||
if (string.match(newVal.Value, "http") == "http") then
|
||||
if (string.match(newVal.Value, "?id=") ~= "?id=") then
|
||||
newWaitForChild(charparts[2],"roblox"):remove()
|
||||
newDecal = Instance.new("Decal")
|
||||
newDecal.Name = "novetus"
|
||||
newDecal.Texture = newVal.Value
|
||||
newDecal.Face = 5
|
||||
newDecal.Parent = charparts[2]
|
||||
end
|
||||
else
|
||||
newTShirt = game.Workspace:insertContent(path.."tshirts/"..newVal.Value)
|
||||
if newTShirt[1] then
|
||||
if newTShirt[1].className == "ShirtGraphic" then
|
||||
newWaitForChild(charparts[2],"roblox"):remove()
|
||||
newDecal = Instance.new("Decal")
|
||||
newDecal.Name = "novetus"
|
||||
newDecal.Face = 5
|
||||
newDecal.Parent = charparts[2]
|
||||
newTShirt[1].Parent = newChar
|
||||
else
|
||||
newTShirt[1]:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif (newVal.Name == "Extra") then
|
||||
pcall(function()
|
||||
local newItem = game.Workspace:insertContent(path.."custom/"..newVal.Value)
|
||||
|
|
@ -85,7 +113,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
if newItem[1].className == "Decal" then
|
||||
newWaitForChild(charparts[1],"face"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
newItem[1].Face = "Front"
|
||||
newItem[1].Face = 5
|
||||
elseif newPart[1].className == "SpecialMesh" or newPart[1].className == "CylinderMesh" or newPart[1].className == "BlockMesh" then
|
||||
newWaitForChild(charparts[1],"Mesh"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
|
|
@ -98,7 +126,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
end
|
||||
end
|
||||
|
||||
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
local newCharApp = Instance.new("IntValue",Player)
|
||||
newCharApp.Name = "Appearance"
|
||||
--BODY COLORS
|
||||
|
|
@ -147,6 +175,21 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso
|
|||
indexValue.Parent = BodyColor
|
||||
indexValue.Value = i
|
||||
end
|
||||
--T-SHIRT
|
||||
local newTShirt = Instance.new("StringValue",newCharApp)
|
||||
if (TShirtID ~= nil) then
|
||||
newTShirt.Value = TShirtID
|
||||
else
|
||||
newTShirt.Value = "NoTShirt.rbxm"
|
||||
end
|
||||
newTShirt.Name = "T-Shirt"
|
||||
local newTShirtTexID = Instance.new("StringValue",newTShirt)
|
||||
if (TShirtTexID ~= nil) then
|
||||
newTShirtTexID.Value = TShirtTexID
|
||||
else
|
||||
newTShirtTexID.Value = ""
|
||||
end
|
||||
newTShirtTexID.Name = "Texture"
|
||||
--EXTRA
|
||||
local newItem = Instance.new("StringValue",newCharApp)
|
||||
if (ItemID ~= nil) then
|
||||
|
|
@ -328,7 +371,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
pcall(function() game.Close:connect(function() Server:stop() end) end)
|
||||
end
|
||||
|
||||
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
|
||||
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,VerifiedScripts,TShirtTexID,Ticket)
|
||||
local suc, err = pcall(function()
|
||||
client = game:service("NetworkClient")
|
||||
player = game:service("Players"):createLocalPlayer(UserID)
|
||||
|
|
@ -340,7 +383,7 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
player:SetAdminMode(true)
|
||||
pcall(function() player.Name=PlayerName or "" end)
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
end)
|
||||
|
||||
local function dieerror(errmsg)
|
||||
|
|
@ -400,14 +443,14 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
end
|
||||
end
|
||||
|
||||
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
|
||||
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,TShirtTexID)
|
||||
game:service("RunService"):run()
|
||||
local plr = game.Players:createLocalPlayer(UserID)
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
plr.Name = PlayerName
|
||||
plr:SetAdminMode(true)
|
||||
plr:LoadCharacter()
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
while true do
|
||||
|
|
|
|||
|
|
@ -78,6 +78,34 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
pcall(function()
|
||||
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
|
||||
end)
|
||||
elseif (newVal.Name == "T-Shirt") then
|
||||
pcall(function()
|
||||
local newTShirt = "";
|
||||
if (string.match(newVal.Value, "http") == "http") then
|
||||
if (string.match(newVal.Value, "?id=") ~= "?id=") then
|
||||
newWaitForChild(charparts[2],"roblox"):remove()
|
||||
newDecal = Instance.new("Decal")
|
||||
newDecal.Name = "novetus"
|
||||
newDecal.Texture = newVal.Value
|
||||
newDecal.Face = 5
|
||||
newDecal.Parent = charparts[2]
|
||||
end
|
||||
else
|
||||
newTShirt = game.Workspace:insertContent(path.."tshirts/"..newVal.Value)
|
||||
if newTShirt[1] then
|
||||
if newTShirt[1].className == "ShirtGraphic" then
|
||||
newWaitForChild(charparts[2],"roblox"):remove()
|
||||
newDecal = Instance.new("Decal")
|
||||
newDecal.Name = "novetus"
|
||||
newDecal.Face = 5
|
||||
newDecal.Parent = charparts[2]
|
||||
newTShirt[1].Parent = newChar
|
||||
else
|
||||
newTShirt[1]:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif (newVal.Name == "Extra") then
|
||||
pcall(function()
|
||||
local newItem = game.Workspace:insertContent(path.."custom/"..newVal.Value)
|
||||
|
|
@ -85,7 +113,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
if newItem[1].className == "Decal" then
|
||||
newWaitForChild(charparts[1],"face"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
newItem[1].Face = "Front"
|
||||
newItem[1].Face = 5
|
||||
elseif newPart[1].className == "SpecialMesh" or newPart[1].className == "CylinderMesh" or newPart[1].className == "BlockMesh" then
|
||||
newWaitForChild(charparts[1],"Mesh"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
|
|
@ -98,7 +126,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
end
|
||||
end
|
||||
|
||||
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
local newCharApp = Instance.new("IntValue",Player)
|
||||
newCharApp.Name = "Appearance"
|
||||
--BODY COLORS
|
||||
|
|
@ -147,6 +175,21 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso
|
|||
indexValue.Parent = BodyColor
|
||||
indexValue.Value = i
|
||||
end
|
||||
--T-SHIRT
|
||||
local newTShirt = Instance.new("StringValue",newCharApp)
|
||||
if (TShirtID ~= nil) then
|
||||
newTShirt.Value = TShirtID
|
||||
else
|
||||
newTShirt.Value = "NoTShirt.rbxm"
|
||||
end
|
||||
newTShirt.Name = "T-Shirt"
|
||||
local newTShirtTexID = Instance.new("StringValue",newTShirt)
|
||||
if (TShirtTexID ~= nil) then
|
||||
newTShirtTexID.Value = TShirtTexID
|
||||
else
|
||||
newTShirtTexID.Value = ""
|
||||
end
|
||||
newTShirtTexID.Name = "Texture"
|
||||
--EXTRA
|
||||
local newItem = Instance.new("StringValue",newCharApp)
|
||||
if (ItemID ~= nil) then
|
||||
|
|
@ -328,7 +371,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
pcall(function() game.Close:connect(function() Server:stop() end) end)
|
||||
end
|
||||
|
||||
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
|
||||
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,VerifiedScripts,TShirtTexID,Ticket)
|
||||
local suc, err = pcall(function()
|
||||
client = game:service("NetworkClient")
|
||||
player = game:service("Players"):createLocalPlayer(UserID)
|
||||
|
|
@ -340,7 +383,7 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
player:SetAdminMode(true)
|
||||
pcall(function() player.Name=PlayerName or "" end)
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
end)
|
||||
|
||||
local function dieerror(errmsg)
|
||||
|
|
@ -400,14 +443,14 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
end
|
||||
end
|
||||
|
||||
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
|
||||
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,TShirtTexID)
|
||||
game:service("RunService"):run()
|
||||
local plr = game.Players:createLocalPlayer(UserID)
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
plr.Name = PlayerName
|
||||
plr:SetAdminMode(true)
|
||||
plr:LoadCharacter()
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,TShirtTexID)
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
while true do
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
if newItem[1].className == "Decal" then
|
||||
newWaitForChild(charparts[1],"face"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
newItem[1].Face = "Front"
|
||||
newItem[1].Face = 5
|
||||
elseif newPart[1].className == "SpecialMesh" or newPart[1].className == "CylinderMesh" or newPart[1].className == "BlockMesh" then
|
||||
newWaitForChild(charparts[1],"Mesh"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
if newItem[1].className == "Decal" then
|
||||
newWaitForChild(charparts[1],"face"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
newItem[1].Face = "Front"
|
||||
newItem[1].Face = 5
|
||||
elseif newPart[1].className == "SpecialMesh" or newPart[1].className == "CylinderMesh" or newPart[1].className == "BlockMesh" then
|
||||
newWaitForChild(charparts[1],"Mesh"):remove()
|
||||
newItem[1].Parent = charparts[1]
|
||||
|
|
|
|||
Loading…
Reference in New Issue