Jump to content

removeEventHandler Issue


Mann56

Recommended Posts

Hello guys,

I've been making a script where i am outputting text on user's click, but it doesn't seem to fade away after timer does it's job. Any help?

  
function addVehScreenInfo ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement ) 
        if ( clickedElement ) then 
                local elementType = getElementType ( clickedElement ) 
                if elementType == "vehicle" then 
                     
                    local occupants = getVehicleOccupants(clickedElement) 
                    function drawtheScene() 
                        dxDrawRectangle(absoluteX-15,absoluteY-20,300,100,tocolor(0,0,0,75),false)  
                        dxDrawText(getVehicleName(clickedElement),absoluteX,absoluteY,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
                        dxDrawText("Driver : " ..getPlayerName(occupants[0]).."",absoluteX,absoluteY+20,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
                    end 
                    addEventHandler("onClientRender",root,drawtheScene) 
                    setTimer ( stopVehRender,2000, 1) 
                end 
        end 
end 
addEventHandler ( "onClientClick", getRootElement(), addVehScreenInfo ) 
  
function stopVehRender() 
    removeEventHandler("onClientRender",root,drawtheScene) 
end 
  

Link to comment
function addVehScreenInfo ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement ) 
        if ( clickedElement ) then 
                local elementType = getElementType ( clickedElement ) 
                if elementType == "vehicle" then 
                    
                    local occupants = getVehicleOccupants(clickedElement) 
                    function drawtheScene() 
                        dxDrawRectangle(absoluteX-15,absoluteY-20,300,100,tocolor(0,0,0,75),false) 
                        dxDrawText(getVehicleName(clickedElement),absoluteX,absoluteY,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
                        dxDrawText("Driver : " ..getPlayerName(occupants[0]).."",absoluteX,absoluteY+20,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
                    end 
                    addEventHandler("onClientRender",root,drawtheScene) 
                    setTimer(function() removeEventHandler("onClientRender", root, drawtheScene) end, 2000, 1) 
                end 
        end 
end 
addEventHandler ( "onClientClick", getRootElement(), addVehScreenInfo ) 

Link to comment

I saw your pm, try this

local clickedElement = nil  
local absoluteX = nil  
local absoluteY = nil  
  
function addVehScreenInfo (button, state, absX, absY, wx, wy, wz, element) 
    if element and getElementType(element) == "vehicle" then 
        clickedElement = element 
        absoluteX = absX 
        absoluteY = absY 
        removeEventHandler("onClientRender",root,drawtheScene) 
        addEventHandler("onClientRender",root,drawtheScene) 
        setTimer(function() removeEventHandler("onClientRender", root, drawtheScene) end, 2000, 1) 
    end 
end 
addEventHandler ("onClientClick", getRootElement(), addVehScreenInfo,true) 
  
function drawtheScene() 
    dxDrawRectangle(absoluteX-15,absoluteY-20,300,100,tocolor(0,0,0,75),false) 
   dxDrawText(getVehicleName(clickedElement),absoluteX,absoluteY,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
    dxDrawText("Driver : " ..getPlayerName(getVehicleOccupants(clickedElement)[0]).."",absoluteX,absoluteY+20,300,20,tocolor(255,255,255,255),sx*0.7,"bankgothic") 
end 

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...