Ejemplo n.º 1
0
        public static string CompileScript(string ClientName, string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true)
        {
            string start = tag;
            string end   = endtag;

            FileFormat.ClientInfo info = GlobalFuncs.GetClientInfoValues(ClientName);

            ScriptType type = GetTypeFromTag(start);

            //we must have the ending tag before we continue.
            if (string.IsNullOrWhiteSpace(end))
            {
                return("");
            }

            if (usesharedtags)
            {
                string sharedstart = "<shared>";
                string sharedend   = "</shared>";

                if (code.Contains(sharedstart) && code.Contains(sharedend))
                {
                    start = sharedstart;
                    end   = sharedend;
                }
            }

            if (info.Fix2007)
            {
                Generator.GenerateScriptForClient(type);
            }

            string extractedCode = GetArgsFromTag(code, start, end);

            if (extractedCode.Contains("%donothing%"))
            {
                return("");
            }

            string WebServer_CustomPlayerDir = "http://" + GlobalVars.IP + ":" + (GlobalVars.UserConfiguration.WebServerPort.ToString()).ToString() + "/charcustom/";
            string WebServer_HatDir          = WebServer_CustomPlayerDir + "hats/";
            string WebServer_FaceDir         = WebServer_CustomPlayerDir + "faces/";
            string WebServer_HeadDir         = WebServer_CustomPlayerDir + "heads/";
            string WebServer_TShirtDir       = WebServer_CustomPlayerDir + "tshirts/";
            string WebServer_ShirtDir        = WebServer_CustomPlayerDir + "shirts/";
            string WebServer_PantsDir        = WebServer_CustomPlayerDir + "pants/";
            string WebServer_ExtraDir        = WebServer_CustomPlayerDir + "custom/";

#if LAUNCHER
            string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(Assembly.GetExecutingAssembly().Location) : "";
#else
            string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(GlobalPaths.RootPathLauncher + "\\Novetus.exe") : "";
#endif
            string md5script = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") : "";
            string md5exe    = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(rbxexe) : "";
            string md5s      = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
            string compiled  = extractedCode.Replace("%version%", GlobalVars.ProgramInformation.Version)
                               .Replace("%mapfile%", mapfile)
                               .Replace("%luafile%", luafile)
                               .Replace("%charapp%", GlobalVars.UserCustomization.CharacterID)
                               .Replace("%ip%", GlobalVars.IP)
                               .Replace("%port%", GlobalVars.UserConfiguration.RobloxPort.ToString())
                               .Replace("%name%", GlobalVars.UserConfiguration.PlayerName)
                               .Replace("%icone%", ConvertIconStringToInt().ToString())
                               .Replace("%icon%", GlobalVars.UserCustomization.Icon)
                               .Replace("%id%", GlobalVars.UserConfiguration.UserID.ToString())
                               .Replace("%face%", GlobalVars.UserCustomization.Face)
                               .Replace("%head%", GlobalVars.UserCustomization.Head)
                               .Replace("%tshirt%", GlobalVars.UserCustomization.TShirt)
                               .Replace("%shirt%", GlobalVars.UserCustomization.Shirt)
                               .Replace("%pants%", GlobalVars.UserCustomization.Pants)
                               .Replace("%hat1%", GlobalVars.UserCustomization.Hat1)
                               .Replace("%hat2%", GlobalVars.UserCustomization.Hat2)
                               .Replace("%hat3%", GlobalVars.UserCustomization.Hat3)
                               .Replace("%faced%", GlobalVars.UserCustomization.Face.Contains("http://") ? GlobalVars.UserCustomization.Face : GlobalPaths.faceGameDir + GlobalVars.UserCustomization.Face)
                               .Replace("%headd%", GlobalPaths.headGameDir + GlobalVars.UserCustomization.Head)
                               .Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalPaths.tshirtGameDir + GlobalVars.UserCustomization.TShirt)
                               .Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalPaths.shirtGameDir + GlobalVars.UserCustomization.Shirt)
                               .Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalPaths.pantsGameDir + GlobalVars.UserCustomization.Pants)
                               .Replace("%hat1d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat1)
                               .Replace("%hat2d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat2)
                               .Replace("%hat3d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat3)
                               .Replace("%headcolor%", GlobalVars.UserCustomization.HeadColorID.ToString())
                               .Replace("%torsocolor%", GlobalVars.UserCustomization.TorsoColorID.ToString())
                               .Replace("%larmcolor%", GlobalVars.UserCustomization.LeftArmColorID.ToString())
                               .Replace("%llegcolor%", GlobalVars.UserCustomization.LeftLegColorID.ToString())
                               .Replace("%rarmcolor%", GlobalVars.UserCustomization.RightArmColorID.ToString())
                               .Replace("%rlegcolor%", GlobalVars.UserCustomization.RightLegColorID.ToString())
                               .Replace("%md5launcher%", md5dir)
                               .Replace("%md5script%", info.ScriptMD5)
                               .Replace("%md5exe%", info.ClientMD5)
                               .Replace("%md5scriptd%", md5script)
                               .Replace("%md5exed%", md5exe)
                               .Replace("%limit%", GlobalVars.UserConfiguration.PlayerLimit.ToString())
                               .Replace("%extra%", GlobalVars.UserCustomization.Extra)
                               .Replace("%hat4%", GlobalVars.UserCustomization.Extra)
                               .Replace("%extrad%", GlobalPaths.extraGameDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%hat4d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%args%", GetRawArgsForType(type, md5s, luafile))
                               .Replace("%facews%", GlobalVars.UserCustomization.Face.Contains("http://") ? GlobalVars.UserCustomization.Face : WebServer_FaceDir + GlobalVars.UserCustomization.Face)
                               .Replace("%headws%", WebServer_HeadDir + GlobalVars.UserCustomization.Head)
                               .Replace("%tshirtws%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : WebServer_TShirtDir + GlobalVars.UserCustomization.TShirt)
                               .Replace("%shirtws%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : WebServer_ShirtDir + GlobalVars.UserCustomization.Shirt)
                               .Replace("%pantsws%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : WebServer_PantsDir + GlobalVars.UserCustomization.Pants)
                               .Replace("%hat1ws%", WebServer_HatDir + GlobalVars.UserCustomization.Hat1)
                               .Replace("%hat2ws%", WebServer_HatDir + GlobalVars.UserCustomization.Hat2)
                               .Replace("%hat3ws%", WebServer_HatDir + GlobalVars.UserCustomization.Hat3)
                               .Replace("%extraws%", WebServer_ExtraDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%hat4ws%", WebServer_HatDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%mapfiled%", GlobalPaths.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\").Replace(@"/", @"\"))
                               .Replace("%mapfilec%", GlobalFuncs.CopyMapToRBXAsset())
                               .Replace("%tripcode%", GlobalVars.UserConfiguration.PlayerTripcode)
                               .Replace("%scripttype%", Generator.GetNameForType(type))
                               .Replace("%addonscriptpath%", GlobalPaths.AddonScriptPath);
            return(compiled);
        }
Ejemplo n.º 2
0
        public static string CompileScript(string ClientName, string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true)
        {
            string start = tag;
            string end   = endtag;

            FileFormat.ClientInfo info = GlobalFuncs.GetClientInfoValues(ClientName);

            ScriptType type = GetTypeFromTag(start);

            //we must have the ending tag before we continue.
            if (string.IsNullOrWhiteSpace(end))
            {
                return("");
            }

            if (usesharedtags)
            {
                string sharedstart = "<shared>";
                string sharedend   = "</shared>";

                if (code.Contains(sharedstart) && code.Contains(sharedend))
                {
                    start = sharedstart;
                    end   = sharedend;
                }
            }

            if (info.Fix2007)
            {
                Generator.GenerateScriptForClient(type);
            }

            string extractedCode = GetArgsFromTag(code, start, end);

            if (extractedCode.Contains("%donothing%"))
            {
                return("");
            }

#if LAUNCHER
            string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(Assembly.GetExecutingAssembly().Location) : "";
#else
            string md5dir = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(GlobalPaths.RootPathLauncher + "\\Novetus.exe") : "";
#endif
            string md5script = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalPaths.ScriptName + ".lua") : "";
            string md5exe    = !info.AlreadyHasSecurity ? SecurityFuncs.GenerateMD5(rbxexe) : "";
            string md5sd     = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
            string md5s      = "'" + info.ClientMD5 + "','" + md5dir + "','" + info.ScriptMD5 + "'";
            string compiled  = extractedCode.Replace("%version%", GlobalVars.ProgramInformation.Version)
                               .Replace("%mapfile%", mapfile)
                               .Replace("%luafile%", luafile)
                               .Replace("%charapp%", GlobalVars.UserCustomization.CharacterID)
                               .Replace("%ip%", GlobalVars.IP)
                               .Replace("%port%", GlobalVars.UserConfiguration.RobloxPort.ToString())
                               .Replace("%joinport%", GlobalVars.JoinPort.ToString())
                               .Replace("%name%", GlobalVars.UserConfiguration.PlayerName)
                               .Replace("%icone%", ConvertIconStringToInt().ToString())
                               .Replace("%icon%", GlobalVars.UserCustomization.Icon)
                               .Replace("%id%", GlobalVars.UserConfiguration.UserID.ToString())
                               .Replace("%face%", GlobalVars.UserCustomization.Face)
                               .Replace("%head%", GlobalVars.UserCustomization.Head)
                               .Replace("%tshirt%", GlobalVars.UserCustomization.TShirt)
                               .Replace("%shirt%", GlobalVars.UserCustomization.Shirt)
                               .Replace("%pants%", GlobalVars.UserCustomization.Pants)
                               .Replace("%hat1%", GlobalVars.UserCustomization.Hat1)
                               .Replace("%hat2%", GlobalVars.UserCustomization.Hat2)
                               .Replace("%hat3%", GlobalVars.UserCustomization.Hat3)
                               .Replace("%faced%", GlobalVars.UserCustomization.Face.Contains("http://") ? GlobalVars.UserCustomization.Face : GlobalPaths.faceGameDir + GlobalVars.UserCustomization.Face)
                               .Replace("%headd%", GlobalPaths.headGameDir + GlobalVars.UserCustomization.Head)
                               .Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalPaths.tshirtGameDir + GlobalVars.UserCustomization.TShirt)
                               .Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalPaths.shirtGameDir + GlobalVars.UserCustomization.Shirt)
                               .Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalPaths.pantsGameDir + GlobalVars.UserCustomization.Pants)
                               .Replace("%hat1d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat1)
                               .Replace("%hat2d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat2)
                               .Replace("%hat3d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Hat3)
                               .Replace("%headcolor%", GlobalVars.UserCustomization.HeadColorID.ToString())
                               .Replace("%torsocolor%", GlobalVars.UserCustomization.TorsoColorID.ToString())
                               .Replace("%larmcolor%", GlobalVars.UserCustomization.LeftArmColorID.ToString())
                               .Replace("%llegcolor%", GlobalVars.UserCustomization.LeftLegColorID.ToString())
                               .Replace("%rarmcolor%", GlobalVars.UserCustomization.RightArmColorID.ToString())
                               .Replace("%rlegcolor%", GlobalVars.UserCustomization.RightLegColorID.ToString())
                               .Replace("%md5launcher%", md5dir)
                               .Replace("%md5script%", info.ScriptMD5)
                               .Replace("%md5exe%", info.ClientMD5)
                               .Replace("%md5scriptd%", md5script)
                               .Replace("%md5exed%", md5exe)
                               .Replace("%md5s%", md5s)
                               .Replace("%md5sd%", md5sd)
                               .Replace("%limit%", GlobalVars.UserConfiguration.PlayerLimit.ToString())
                               .Replace("%extra%", GlobalVars.UserCustomization.Extra)
                               .Replace("%hat4%", GlobalVars.UserCustomization.Extra)
                               .Replace("%extrad%", GlobalPaths.extraGameDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%hat4d%", GlobalPaths.hatGameDir + GlobalVars.UserCustomization.Extra)
                               .Replace("%mapfiled%", GlobalPaths.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\").Replace(@"/", @"\"))
                               .Replace("%mapfilec%", extractedCode.Contains("%mapfilec%") ? GlobalFuncs.CopyMapToRBXAsset() : "")
                               .Replace("%tripcode%", GlobalVars.PlayerTripcode)
                               .Replace("%scripttype%", Generator.GetNameForType(type))
                               .Replace("%addonscriptpath%", GlobalPaths.AddonScriptPath)
                               .Replace("%notifications%", GlobalVars.UserConfiguration.ShowServerNotifications.ToString().ToLower())
                               .Replace("%loadout%", code.Contains("<solo>") ? GlobalVars.soloLoadout : GlobalVars.Loadout)
                               .Replace("%doublequote%", "\"")
                               .Replace("%validatedextrafiles%", GlobalVars.ValidatedExtraFiles.ToString())
                               .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)
                               .Replace("%newgui%", GlobalVars.UserConfiguration.NewGUI.ToString().ToLower());

            if (compiled.Contains("%disabled%"))
            {
                MessageBox.Show("This option has been disabled for this client.", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return("");
            }

            return(compiled);
        }