Jump to content

Notification System [HELP]


Recommended Posts

CLIENT SIDE

sx,sy = guiGetScreenSize () 
addEvent ("onNotificationWindowHide",false) 
addEvent ("onNotificationWindowShow",false) 
box = false 
  
function showBox(value, str) 
    -- value 1 - Info 
    -- value 2 - Error 
    -- value 3 - warning 
    --if box == false then 
    if str and type(str) == "string" and string.len(str) > 0 then 
        box = true 
        if value == "info" then  
            showTipBox (str,"img/info.png") 
            outputConsole ("[iNFO]" .. str) 
        elseif value == "error" then  
            showTipBox (str,"img/error.png") 
            outputConsole ("[ERROR]" .. str) 
        elseif value == "warning" then  
            showTipBox (str,"img/warning.png") 
            outputConsole ("[WARNING]" .. str) 
        end 
    end 
    --else 
    --  return false 
    --end 
end 
addEvent("CreateBox", true) 
addEventHandler("CreateBox", getRootElement(), showBox) 
  
addEventHandler ("onNotificationWindowHide",getRootElement(), 
    function () 
        box = false 
    end 
) 
     
tipBox = {} 
tipBox.path = "" 
tipBox.show = false 
tipBox.state = nil 
tipBox.string = nil 
tipBox.starTick = nil 
tipBox.currentY = nil 
tipBox.time = 800 
tipBox.next = nil 
tipBox.nextPath = "" 
tipBox.timer = nil 
tipBox.startY = -180 
tipBox.stopY = 30 
  
function showTipBox (str,path) 
    if str then 
        if path == nil then 
            path = "img/info.png" 
        end 
        if fileExists (path) then 
            if tipBox.show == true then 
                tipBox.next = str 
                tipBox.nextPath = path 
            else 
                tipBox.path = path 
                tipBox.show = true 
                tipBox.state = "starting" 
                tipBox.string = str 
                tipBox.startTick = getTickCount() 
                triggerEvent ("onNotificationWindowShow",getRootElement()) 
            end 
        end 
    end 
end 
addEvent("CreateTipBox", true) 
addEventHandler("CreateTipBox", getRootElement(), showTipBox) 
  
 local screenW, screenH = guiGetScreenSize() 
  
  
addEventHandler ("onClientRender", getRootElement(), 
    function () 
        if tipBox.show == true and tipBox.string then 
            local width = dxGetTextWidth (tipBox.string, 1, "default-bold") 
            if width then 
                if tipBox.state == "starting" then 
                    local progress = (getTickCount() - tipBox.startTick) / tipBox.time 
                    local intY = interpolateBetween ( 
                        tipBox.startY,0,0, 
                        tipBox.stopY,0,0, 
                        progress,"OutElastic" 
                    ) 
                    if intY then 
                        tipBox.currentY = intY 
                    else 
                        tipBox.currentY = 100 
                    end 
                    if progress > 1 then 
                        tipBox.state = "showing" 
                        tipBox.timer = setTimer ( 
                            function () 
                                tipBox.startTick = getTickCount() 
                                tipBox.state = "hiding" 
                            end 
                        ,string.len(tipBox.string)*45+800,1) 
                    end 
                elseif tipBox.state == "showing" then 
                    tipBox.currentY = tipBox.stopY 
                elseif tipBox.state == "hiding" then 
                    local progress = (getTickCount() - tipBox.startTick) / (tipBox.time) 
                    local intY = interpolateBetween ( 
                        tipBox.stopY,0,0, 
                        tipBox.startY,0,0, 
                        progress,"Linear" 
                    ) 
                    if intY then 
                        tipBox.currentY = intY 
                    else 
                        tipBox.currentY = 100 
                    end 
                    if progress > 1 then 
                        triggerEvent ("onNotificationWindowHide",getRootElement()) 
                        if tipBox.next then 
                            if isTimer(tipBox.timer) then 
                                killTimer(tipBox.timer) 
                            end 
                            tipBox.show = true 
                            tipBox.state = "starting" 
                            tipBox.string = tipBox.next 
                            tipBox.startTick = getTickCount() 
                            tipBox.next = nil 
                            tipBox.path = tipBox.nextPath 
                            return 
                        else 
                            tipBox.show = false 
                            tipBox.state = nil 
                            tipBox.string = nil 
                            return 
                        end 
                    end 
                else 
                    return 
                end 
                local width = 512 
                local x,y = sx/0.85 - width/0.85, tipBox.currentY 
                local textX,textY = x+15,tipBox.currentY+5 
                local textWidth,textHeight = 363,106 
                dxDrawRectangle(x,y, screenW * 0.2632, screenH * 0.0859, tocolor(0, 0, 0, 150), false) 
                dxDrawRectangle(x,y, screenW * 0.0051, screenH * 0.0859, tocolor(36, 112, 36,150), false) 
                --dxDrawImage (x,y,width,256,tipBox.path,0,0,0,tocolor(255,255,255),true) 
                dxDrawText (tipBox.string,textX,textY,textX+textWidth,textY+textHeight,tocolor(222,222,222),1,"arial","left", "top",false,true,true) 
            end 
        end 
    end 
) 

SERVER SIDE

function showBox(player, value, str) 
    if isElement(player) then 
        triggerClientEvent(player, "CreateBox", getRootElement(), value, str) 
    end 
end 

I have adjusted/modified and adapted by creating a notification system but players have reported that they don't see it. I seem to see it perfectly in all resolutions. Any help?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...