You should learn how to read the error. 
Server: 
  
function givePlayerWeapon ( ) 
    giveWeapon ( source, 31, 200 ) 
end 
addEvent( "onMarker", true ) 
addEventHandler( "onMarker", getRootElement(), givePlayerWeapon ) 
-------------------------------------------------------------------- 
function takePlayerWeapon ( ) 
    takeWeapon ( source, 31, 200 ) 
end 
addEvent( "onMarker2", true ) 
addEventHandler( "onMarker2", getRootElement(), takePlayerWeapon ) 
 
Client: 
local marker = createMarker(-2596.625, 579.358, 14, 'cylinder', 2.0, 255, 0, 0, 150) 
    addEventHandler("onClientMarkerHit",root, 
        function(h) 
            if h == localPlayer and source == marker then 
                addEventHandler("onClientRender",root,drawText) 
                    setElementFrozen ( h, true ) 
                    triggerServerEvent ( "onMarker", localPlayer) 
            end 
        end 
    ) 
      
    function drawText() 
        dxDrawText("Prees F To Exit!",423.0,601.0,623.0,637.0,tocolor(255,255,255,255),2.0,"clear","left","top",false,false,false) 
      
      
    end 
      
    function undo() 
              removeEventHandler("onClientRender", root,drawText) 
              setElementFrozen ( localPlayer, false ) 
              triggerServerEvent ( "onMarker2", localPlayer ) 
    end 
    bindKey ( "c", "up", h )