آلسلام عليكم ورحمة الله وبركاته 
local g_Root = getRootElement() 
local g_ResRoot = getResourceRootElement(getThisResource()) 
local g_Me = getLocalPlayer() 
  
local DISTANCE_FRONT_BEHIND = 0.03 
local TIME_TO_DISPLAY = 2000 
local FONT = "font.ttf" 
  
local frontTick 
local behindTick 
local delayDisplayFront = dxText:create("", 0.5, 0.37, true, FONT, 1.9, "center") 
local delayDisplayBehind = dxText:create("", 0.5, 0.43, true, FONT, 1.9, "center") 
delayDisplayFront:color(255, 0, 0) 
delayDisplayBehind:color(0, 255, 0) 
  
addEvent("showDelay", true) 
addEventHandler("showDelay", g_Root, 
    function(delayTime, optional) 
        if tonumber(optional) then 
            local cps = getElementData(g_Me, "race.checkpoint") - optional 
            if cps < 2 then 
                cps = "" 
            else 
                cps = "(-"..cps.."CPs) " 
            end 
            delayDisplayBehind:text("-"..msToTimeStr(delayTime).." "..cps..string.gsub(getPlayerName(source), "#%x%x%x%x%x%x", "")) 
            delayDisplayBehind:visible(true) 
            behindTick = getTickCount() 
            setTimer(hideDelayDisplay, TIME_TO_DISPLAY, 1, false) 
        elseif type(optional) == "table" then 
            if delayTime < 0 then 
                -- outputChatBox("-"..msToTimeStr(-delayTime).." current record") 
                delayDisplayFront:text("+"..msToTimeStr(-delayTime).." record #"..optional[1]) 
                delayDisplayFront:color(255, 255, 0) 
            elseif delayTime > 0 then 
                -- outputChatBox("+"..msToTimeStr(delayTime).." current record") 
                delayDisplayFront:text("-"..msToTimeStr(delayTime).." record #"..optional[1]) 
                delayDisplayFront:color(0, 255, 255) 
            end 
            delayDisplayFront:visible(true) 
            frontTick = getTickCount() 
            setTimer(hideDelayDisplay, TIME_TO_DISPLAY, 1, true) 
        else 
            local cps = getElementData(source, "race.checkpoint") - getElementData(g_Me, "race.checkpoint") 
            if cps < 2 then 
                cps = "" 
            else 
                cps = "(+"..cps.."CPs) " 
            end 
            delayDisplayFront:text("+"..msToTimeStr(delayTime).." "..cps..string.gsub(getPlayerName(source), "#%x%x%x%x%x%x", "")) 
            delayDisplayFront:color(255, 0, 0) 
            delayDisplayFront:visible(true) 
            frontTick = getTickCount() 
            setTimer(hideDelayDisplay, TIME_TO_DISPLAY, 1, true) 
        end 
    end 
) 
  
function hideDelayDisplay(front) 
    if front == "both" then 
        delayDisplayFront:visible(false) 
        delayDisplayBehind:visible(false) 
    elseif front then 
        local pastTime = getTickCount() - frontTick 
        if pastTime >= TIME_TO_DISPLAY then 
            delayDisplayFront:visible(false) 
        else 
            if pastTime < 50 then pastTime = 50 end 
            setTimer(hideDelayDisplay, pastTime, 1, true) 
            -- outputChatBox("front dalassen") 
        end 
    else 
        local pastTime = getTickCount() - behindTick 
        if pastTime >= TIME_TO_DISPLAY then 
            delayDisplayBehind:visible(false) 
        else 
            if pastTime < 50 then pastTime = 50 end 
            setTimer(hideDelayDisplay, pastTime, 1, false) 
            -- outputChatBox("behind dalassen") 
        end 
    end 
end 
  
addEventHandler('onClientResourceStart', g_ResRoot, 
    function() 
        local settingsFile = xmlLoadFile("settings.xml") 
        if settingsFile then 
            local pos = xmlNodeGetAttributes(settingsFile) 
            delayDisplayFront:position(pos.x, pos.y - DISTANCE_FRONT_BEHIND) 
            delayDisplayBehind:position(pos.x, pos.y + DISTANCE_FRONT_BEHIND) 
        else 
            settingsFile = xmlCreateFile("settings.xml","settings") 
            xmlNodeSetAttribute(settingsFile,"x",0.5) 
            xmlNodeSetAttribute(settingsFile,"y",0.4) 
        end 
        xmlSaveFile(settingsFile) 
        xmlUnloadFile(settingsFile) 
    end 
) 
  
addCommandHandler("setdelaypos", 
    function(cmd,x,y) 
        if x and y then 
            if tonumber(x) and tonumber(y) then 
                delayDisplayFront:position(x, y - DISTANCE_FRONT_BEHIND) 
                delayDisplayBehind:position(x, y + DISTANCE_FRONT_BEHIND) 
                delayDisplayFront:text("FRONT") 
                delayDisplayBehind:text("BEHIND") 
                delayDisplayFront:color(255, 0, 0) 
                delayDisplayBehind:color(0, 255, 0) 
                delayDisplayFront:visible(true) 
                delayDisplayBehind:visible(true) 
                setTimer(hideDelayDisplay, TIME_TO_DISPLAY, 1, "both") 
                local settingsFile = xmlLoadFile("settings.xml") 
                if settingsFile then 
                    xmlNodeSetAttribute(settingsFile,"x",x) 
                    xmlNodeSetAttribute(settingsFile,"y",y) 
                end 
                xmlSaveFile(settingsFile) 
                xmlUnloadFile(settingsFile) 
            else 
                outputChatBox("WRONG PARAMETERS! Syntax is /setdelaypos x y", 255, 0, 0) 
            end 
        else 
            outputChatBox("WRONG PARAMETERS! Syntax is /setdelaypos x y", 255, 0, 0) 
        end 
    end 
) 
  
function msToTimeStr(ms) 
    if not ms then 
        return '' 
    end 
    local centiseconds = tostring(math.floor(math.fmod(ms, 1000)/10)) 
    if #centiseconds == 1 then 
        centiseconds = '0' .. centiseconds 
    end 
    local s = math.floor(ms / 1000) 
    local seconds = tostring(math.fmod(s, 60)) 
    if #seconds == 1 then 
        seconds = '0' .. seconds 
    end 
    local minutes = tostring(math.floor(s / 60)) 
    return minutes .. ':' .. seconds .. ':' .. centiseconds 
end 
  
 
لاهنتم ابي اععدل على الخط حق  
dxtext 
جرب هنا 
local FONT = "font.ttf" 
  
local frontTick 
local behindTick 
local delayDisplayFront = dxText:create("", 0.5, 0.37, true, FONT, 1.9, "center") 
  
 
بس ماظبط !! حاولت اغير كم مره وش الخطأ منه ؟