Ad
Log in to vote
0

Sliding GUI Text is out of place - help?

Asked by 7 years ago

Hello! I'm making a Sliding GUI Text that will be synced with my website. However, the problem is, is that obviously because when there is a lot of text, the text is positioned somewhere else or it cuts off part of it. Is there a way to fix that? Currently I have this:

place = "Place1"

function explode(str, separator, withpattern) -- credit: https://code.google.com/p/divranspack/source/browse/trunk/+divranspack/Non+Gmod+Things/Minecraft+Lua+Server/luadriver/string.lua?r=475
        if separator == "" then
                local ret = {}
                for i=1,#str do
                        ret[i] = string.sub(str,i,i)
                end
                return ret
        end
    local ret = {}
    local index,lastPosition = 1,1
    if not withpattern then separator = string.gsub( separator, "[%-%^%$%(%)%%%.%[%]%*%+%?]", "%%%1" ) end
    for startPosition,endPosition in string.gmatch( str, "()" .. separator.."()" ) do
        ret[index] = string.sub( str, lastPosition, startPosition-1)
        index = index + 1
        lastPosition = endPosition
    end
    ret[index] = string.sub( str, lastPosition)
    return ret
end

pages = {}
curpage = ""
curpagen = 0

prevsav = ""

coroutine.resume(coroutine.create(function()
    while true do
        local sav = game:GetService("HttpService"):GetAsync("http://www.mxmcube.net/billy/news/news.php",true)
        if sav ~= prevsav then
            prevsav = sav
            local pages2 = explode(sav,"(;break;)")
            if #pages2 >= 1 then
                for i,_ in pairs(pages) do
                    table.remove(pages,i)
                end
                for _,v in pairs(pages2) do
                    local one,x = string.gsub(v,"%%player%%",script.Parent.Parent.Parent.Parent.Parent.Name)
                    local two,x = string.gsub(one,"%%place%%",place)
                    table.insert(pages,two)
                end
            else
                for i,_ in pairs(pages) do
                    table.remove(pages,i)
                end
                table.insert(pages,sav)
            end
            curpagen = 1
            curpage = pages[1]
        end
        wait(4)
    end
end))

repeat wait() until #pages >= 1
coroutine.resume(coroutine.create(function()
    script.Parent.TextLabel.Size = UDim2.new(0,1,1,0)
    script.Parent.TextLabel.Position = UDim2.new(tonumber("1."..string.len(script.Parent.TextLabel.Text).."")/2,0,0,0) -- problem here
    script.Parent.TextLabel.TextTransparency = i
    script.Parent.TextLabel.TextStrokeTransparency = i
    while true do
        curpagen = curpagen + 1
        if curpagen > #pages then
            curpagen = 1
        end
        curpage = pages[curpagen]
        script.Parent.TextLabel.Text = curpage
        script.Parent.TextLabel.Size = UDim2.new(0,1,1,0)
        local ting = tonumber("1."..(string.len(script.Parent.TextLabel.Text)/2).."") -- problem here
        print(ting,reps)
        script.Parent.TextLabel.Position = UDim2.new(ting,0,0,0)
        script.Parent.TextLabel:TweenPosition(UDim2.new(0,0,0,0),"Out","Linear",30,false,nil) -- problem here
        coroutine.resume(coroutine.create(function()
            for i=1,0,-0.1 do
                script.Parent.TextLabel.TextTransparency = i
                script.Parent.TextLabel.TextStrokeTransparency = i
                wait(0.1)
            end
        end))
        wait(29)
        for i=0,1,0.1 do
            script.Parent.TextLabel.TextTransparency = i
            script.Parent.TextLabel.TextStrokeTransparency = i
            wait(0.1)
        end
    end
end))

Does anyone know something like a mathematical formulae for a sliding text GUI that is properly positioned? Thank you.

Answer this question