Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- assert(syn, "This cannot be run due to missing functionality w/ your exploit.")
- assert(Config.Text, "No string has been provided.")
- local Format_Types = {} do
- Format_Types.Font_Modifiers = {
- Format = [[<%s>]],
- Escape = [[</%s>]]
- }
- Format_Types.Font = {
- Format = [[<font %s="%s">]],
- Escape = [[</font>]]
- }
- Format_Types.Stroke = {
- Format = [[<thickness="%s" transparency="%s"]],
- Escape = [[</stroke>]]
- }
- Format_Types.Color = {
- Format = [[<%s color="%s">]],
- Escape = [[</%s>]]
- }
- end
- --//Loose Code
- task.defer(function()
- local _Text = ""
- if #Config.Gradient_Settings.Colours > 0 and Config.Gradient_Settings.Colour_Type then
- local Split_String = string.split(Config.Text, "")
- local Gradient = Generate_Gradient(#Split_String, Config.Gradient_Settings.Colours)
- for Index, Character in ipairs(Split_String) do
- _Text = _Text..string.format(Format_Types.Color["Format"], Config.Gradient_Settings.Colour_Type, Generate_Hex(Gradient[Index]))..Character..string.format(Format_Types.Color["Escape"], Config.Gradient_Settings.Colour_Type)
- end
- if Config.Stroke_Settings.Enabled and Config.Gradient_Settings.Colour_Type == "font" then
- _Text = string.format(Format_Types.Color["Format"], "stroke", Generate_Hex(Config.Stroke_Settings.Colour)).._Text..string.format(Format_Types.Color["Escape"], "stroke")
- elseif Config.Gradient_Settings.Colour_Type == "stroke" then
- _Text = string.format(Format_Types.Color["Format"], "font", Generate_Hex(Config.Font_Settings.Colour)).._Text..string.format(Format_Types.Color["Escape"], "font")
- end
- else
- _Text = Config.Text
- end
- if #Config.Gradient_Settings.Colours <= 0 then
- if Config.Stroke_Settings.Enabled then
- _Text = string.format(Format_Types.Color["Format"], "stroke", Generate_Hex(Config.Stroke_Settings.Colour)).._Text..string.format(Format_Types.Color["Escape"], "stroke")
- end
- _Text = string.format(Format_Types.Color["Format"], "font", Generate_Hex(Config.Font_Settings.Colour)).._Text..string.format(Format_Types.Color["Escape"], "font")
- end
- if Config.Font_Settings.Font ~= "" then
- _Text = string.format(Format_Types.Font["Format"], "face", Config.Font_Settings.Font).._Text..Format_Types.Font["Escape"]
- end
- if Config.Font_Settings.Size ~= nil then
- _Text = string.format(Format_Types.Font["Format"], "size", Config.Font_Settings.Size).._Text..Format_Types.Font["Escape"]
- end
- if Config.Font_Settings.Italics == true then
- _Text = string.format(Format_Types.Font_Modifiers["Format"], "u").._Text..string.format(Format_Types.Font_Modifiers["Escape"], "u")
- end
- if Config.Font_Settings.Bold == true then
- _Text = string.format(Format_Types.Font_Modifiers["Format"], "b").._Text..string.format(Format_Types.Font_Modifiers["Escape"], "b")
- end
- if Config.Font_Settings.Strikethrough == true then
- _Text = string.format(Format_Types.Font_Modifiers["Format"], "s").._Text..string.format(Format_Types.Font_Modifiers["Escape"], "s")
- end
- if Config.Font_Settings.Underline == true then
- _Text = string.format(Format_Types.Font_Modifiers["Format"], "u").._Text..string.format(Format_Types.Font_Modifiers["Escape"], "u")
- end
- if Config.Copy_To_Clipboard then
- syn.write_clipboard(tostring(_Text))
- end
- getgenv().Formatted_Text = tostring(_Text)
- print(#string.split(_Text, ""))
- end)
- --//Functions
- local function Find_Colours(Current_Colour, Next_Colour, Step)
- local Interpolate = function(Start, Goal, Step)
- local Types = {["R"] = 0, ["G"] = 0, ["B"] = 0} do
- for Type, Value in pairs(Types) do
- Types[Type] = (Start[Type] + (Goal[Type] - Start[Type]) * Step) * 255
- end
- end
- return Color3.fromRGB(Types.R, Types.G, Types.B)
- end
- local Values = {} do
- for Int = Step, 1, Step do
- Values[#Values + 1] = Interpolate(Current_Colour, Next_Colour, Int)
- end
- return Values
- end
- end
- Generate_Gradient = function(Iterations, Colours)
- local Gradient = {} do
- for Index, Colour in ipairs(Colours) do
- if Index == 1 then
- Gradient[#Gradient + 1] = Colour
- end
- if Colours[Index + 1] then
- local Values = Find_Colours(Colour, Colours[Index + 1], (1 / math.floor(Iterations / (#Colours - 1) + 0.5)))
- for _, _Value in ipairs(Values) do
- if #Gradient < Iterations then
- Gradient[#Gradient + 1] = _Value
- end
- end
- end
- end
- end
- return Gradient
- end
- local function Convert_Colour(Colour)
- return math.floor(Colour.R * 255) * 256 ^ 2 + math.floor(Colour.G * 255) * 256 + math.floor(Colour.B * 255)
- end
- Generate_Hex = function(Colour)
- local Integer = Convert_Colour(Colour)
- local Result = ""
- local Hex_Chars = {"A", "B", "C", "D", "E", "F"} do
- repeat
- local Remainder = Integer % 16
- local Char = tostring(Remainder)
- if Remainder >= 10 then
- Char = Hex_Chars[(1 + Remainder) - 10]
- end
- Integer = math.floor(Integer / 16)
- Result = Result..Char
- until Integer <= 0
- end
- return "#"..string.reverse(Result)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement