mr.Extreme Posted January 29, 2014 Share Posted January 29, 2014 اسلام عليكم شبااب انا بدي نيم تاج يظهر علشان اقدر اعدل وشكرا Link to comment
mr.Extreme Posted January 29, 2014 Author Share Posted January 29, 2014 srfont = dxCreateFont("DFHEIMDU_id.ttf",16) g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_Players = getElementsByType('player') g_Me = getLocalPlayer() nametag = {} local nametags = {} local g_screenX,g_screenY = guiGetScreenSize() local bHideNametags = false local NAMETAG_SCALE = 0.3 --Overall adjustment of the nametag, use this to resize but constrain proportions local NAMETAG_ALPHA_DISTANCE = 50 --Distance to start fading out local NAMETAG_DISTANCE = 100 --Distance until we're gone local NAMETAG_ALPHA = 255 --The overall alpha level of the nametag --The following arent actual pixel measurements, they're just proportional constraints local NAMETAG_TEXT_BAR_SPACE = 1 local NAMETAG_WIDTH = 50 local NAMETAG_HEIGHT = 5 local NAMETAG_TEXTSIZE = 0.3 local NAMETAG_OUTLINE_THICKNESS = 1.2 -- local NAMETAG_ALPHA_DIFF = NAMETAG_DISTANCE - NAMETAG_ALPHA_DISTANCE NAMETAG_SCALE = 1/NAMETAG_SCALE * 800 / g_screenY -- Ensure the name tag doesn't get too big local maxScaleCurve = { {0, 0}, {3, 3}, {13, 5} } -- Ensure the text doesn't get too small/unreadable local textScaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } -- Make the text a bit brighter and fade more gradually local textAlphaCurve = { {0, 0}, {25, 100}, {120, 190}, {255, 190} } setPedTargetingMarkerEnabled ( false ) function nametag.create ( player ) nametags[player] = true end function nametag.destroy ( player ) nametags[player] = nil end addEventHandler ( "onClientPreRender", g_Root, function() if getElementData(getLocalPlayer(), "state.hud") == "disabled" then return end -- Hideous quick fix -- for i,player in ipairs(g_Players) do if isElement(player) then if player ~= g_Me then setPlayerNametagShowing ( player, false ) if not nametags[player] then nametag.create ( player ) end end end end if bHideNametags then return end local x,y,z = getCameraMatrix() for player in pairs(nametags) do while true do if not isElement(player) then break end if getElementDimension(player) ~= getElementDimension(g_Me) then break end local px,py,pz = getElementPosition ( player ) if not isLineOfSightClear(x, y, z, px, py, pz, true, false, false, true, false, true) then break end local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if pdistance <= NAMETAG_DISTANCE then --Get screenposition local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) if not sx or not sy then break end --Calculate our components local scale = 1/(NAMETAG_SCALE * (pdistance / NAMETAG_DISTANCE)) local alpha = ((pdistance - NAMETAG_ALPHA_DISTANCE) / NAMETAG_ALPHA_DIFF) alpha = (alpha < 0) and NAMETAG_ALPHA or NAMETAG_ALPHA-(alpha*NAMETAG_ALPHA) scale = math.evalCurve(maxScaleCurve,scale) local textscale = math.evalCurve(textScaleCurve,scale) local textalpha = math.evalCurve(textAlphaCurve,alpha) local outlineThickness = NAMETAG_OUTLINE_THICKNESS*(scale) --Draw our text local playerName = getPlayerName(player):gsub("#%x%x%x%x%x%x","") local r,g,b = getPlayerNametagColor(player) local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 local w = dxGetTextWidth(playerName, textscale * NAMETAG_TEXTSIZE, srfont) / 2 local myR = getElementData(localPlayer, "reputation.reputation") local playerR = getElementData(player, "reputation.reputation") local drawX = sx - NAMETAG_WIDTH*scale/2 drawY = sy + offset local width,height = NAMETAG_WIDTH*scale, NAMETAG_HEIGHT*scale dxDrawText ( playerName, sx, sy - offset, sx, sy - offset, tocolor(0,0,0,255), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false, true, true ) if myR and playerR then if getElementData(localPlayer, "reputation.criminal") == false and getElementData(player, "reputation.criminal") == false then rr, rg, rb = 158, 210, 229 elseif getElementData(localPlayer, "reputation.criminal") == true and getElementData(player, "reputation.criminal") == false then rr, rg, rb = 217, 25, 31 elseif getElementData(localPlayer, "reputation.criminal") == false and getElementData(player, "reputation.criminal") == true then rr, rg, rb = 217, 25, 31 elseif getElementData(localPlayer, "reputation.criminal") == true and getElementData(player, "reputation.criminal") == true then rr, rg, rb = 246, 231, 89 end else rr, rg, rb = r, g, b end dxDrawText ( playerName, sx, sy - offset, sx, sy - offset, tocolor(rr,rg,rb,255), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false, true, true ) nameWidth = dxGetTextWidth ( playerName, textscale*NAMETAG_TEXTSIZE, srfont ) teamWidth = nameWidth local team = getPlayerTeam(player) if team then dxDrawText ( "["..getTeamName(team).."]", sx, sy - offset + 6*scale, sx, sy - offset + 6*scale, tocolor(0,0,0,255), textscale*NAMETAG_TEXTSIZE*0.75, srfont, "center", "bottom", false, false, false, true, true ) dxDrawText ( "["..getTeamName(team).."]", sx, sy - offset + 6*scale, sx, sy - offset + 6*scale, tocolor(rr,rg,rb,255), textscale*NAMETAG_TEXTSIZE*0.75, srfont, "center", "bottom", false, false, false, true, true ) teamWidth = dxGetTextWidth ( "["..getTeamName(team).."]", textscale*NAMETAG_TEXTSIZE*0.75, srfont ) end local imageSize = dxGetFontHeight ( textscale*NAMETAG_TEXTSIZE, srfont ) if getElementData(player, "reputation.class") and fileExists ( ":reputation/class/classicon_"..getElementData(player, "reputation.class")..".png" ) then dxDrawImage ( sx - math.max(nameWidth/2, teamWidth/2) - imageSize - 1*scale, sy - imageSize, imageSize, imageSize, ":reputation/class/classicon_"..getElementData(player, "reputation.class")..".png" ) end if getElementData(player, "reputation.status") and fileExists ( ":reputation/reputation/goodevil_"..getElementData(player, "reputation.status")..".png" ) then dxDrawImage ( sx + math.max(nameWidth/2, teamWidth/2) + 1*scale, sy - imageSize, imageSize, imageSize, ":reputation/reputation/goodevil_"..getElementData(player, "reputation.status")..".png" ) end end break end end end ) ---------------THE FOLLOWING IS THE MANAGEMENT OF NAMETAGS----------------- addEventHandler('onClientResourceStart', g_Root, function() for i,player in ipairs(getElementsByType"player") do if player ~= g_Me then nametag.create ( player ) end end end ) addEventHandler ( "onClientPlayerJoin", g_Root, function() if source == g_Me then return end setPlayerNametagShowing ( source, false ) nametag.create ( source ) end ) addEventHandler ( "onClientPlayerQuit", g_Root, function() nametag.destroy ( source ) end ) -- Math functions function math.lerp(from,to,alpha) return from + (to-from) * alpha end -- curve is { {x1, y1}, {x2, y2}, {x3, y3} ... } function math.evalCurve( curve, input ) -- First value if input[1][1] then return curve[1][2] end -- Interp value for idx=2,#curve do if input[idx][1] then local x1 = curve[idx-1][1] local y1 = curve[idx-1][2] local x2 = curve[idx][1] local y2 = curve[idx][2] -- Find pos between input points local alpha = (input - x1)/(x2 - x1); -- Map to output points return math.lerp(y1,y2,alpha) end end -- Last value return curve[#curve][2] end function dxDrawColorText(str, ax, ay, bx, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) local pat = "(.-)#(%x%x%x%x%x%x)" local s, e, cap, col = str:find(pat, 1) local last = 1 while s do if s ~= 1 or cap ~= "" then local w = dxGetTextWidth(cap, scale, font) dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) ax = ax + w color = tocolor(tonumber("0x"..string.sub(col, 1, 2)), tonumber("0x"..string.sub(col, 3, 4)), tonumber("0x"..string.sub(col, 5, 6)), 255) end last = e+1 s, e, cap, col = str:find(pat, last) end if last <= #str then cap = str:sub(last) local w = dxGetTextWidth(cap, scale, font) dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) end end Link to comment
mr.Extreme Posted January 29, 2014 Author Share Posted January 29, 2014 شباااب لو سمحتم بدي مساعدة Link to comment
mr.Extreme Posted January 31, 2014 Author Share Posted January 31, 2014 اطرح كودكـ! prestege انا طرحت اكوادي ما بدك تقلي كيف اخلي يظهر علشان اقدر اعدل Link to comment
فاّرس Posted January 31, 2014 Share Posted January 31, 2014 داخل حدث الرندر كيف تبيه يظهر ؟ false بقيمه setPlayerNametagShowing الحين بما انك حاط Link to comment
mr.Extreme Posted February 2, 2014 Author Share Posted February 2, 2014 انا حطيت true بس ما يظهر في عندك فكرة تخلية يظهر Link to comment
iPrestege Posted February 2, 2014 Share Posted February 2, 2014 التاج ذا مو الاصلي شوف اذا خش الاعب يخفي التاج الاصلي شيل هذا المود وطفية وجرب . Link to comment
mr.Extreme Posted February 2, 2014 Author Share Posted February 2, 2014 التاج ذا مو الاصلي شوف اذا خش الاعب يخفي التاج الاصلي شيل هذا المود وطفية وجرب . انت ما فهمتني وش قصدي انا بدي nametags يظهر علي شاشة علشان اقدر اعدل علية Link to comment
فاّرس Posted February 6, 2014 Share Posted February 6, 2014 false[/u] سطر 55 انت حاط مع الرندر؟ setPlayerNametagShowing واصلا ليه انت حاط خليه خارج الرندر Link to comment
mr.Extreme Posted February 6, 2014 Author Share Posted February 6, 2014 هذا الكود موجود من قبل Link to comment
فاّرس Posted February 6, 2014 Share Posted February 6, 2014 الحين انت وش تبي تسوي بالضبط؟ يعني تبي تسوي تاج غير الي بالفنكشن؟ لأن اشوفك مسوي فنكشنات ,, Link to comment
mr.Extreme Posted February 6, 2014 Author Share Posted February 6, 2014 بدي يظهر نيم تاج يظهر علي شاشة علشان اقدر اعدل علية بس هذا المطلوب وشكرا Link to comment
فاّرس Posted February 6, 2014 Share Posted February 6, 2014 طيب الحين وش ذي الاكواد الي انت حاطها؟ لحالها؟ setPlayerNametagShowing ليه ما تستخدم Link to comment
mr.Extreme Posted February 6, 2014 Author Share Posted February 6, 2014 المود دا قديم اخذتة من واحد معدل والله ما عرفت ازبطه Link to comment
mr.Extreme Posted February 6, 2014 Author Share Posted February 6, 2014 كيف اقدر خلية لحالها الكود setPlayerNameTagShowing Link to comment
mr.Extreme Posted February 6, 2014 Author Share Posted February 6, 2014 كيف اركبة )))) Link to comment
فاّرس Posted February 6, 2014 Share Posted February 6, 2014 -- Server Side # for k,v in ipairs(getElementsByType('player')) do setPlayerNametagShowing(v,true) end Link to comment
فاّرس Posted February 6, 2014 Share Posted February 6, 2014 -- Server Side # addEventHandler('onResourceStart',resourceRoot,function() for k,v in ipairs(getElementsByType('player')) do setPlayerNametagShowing(v,true) end end ) جرب كذا , مع اني اظن مافيه فرق Link to comment
mr.Extreme Posted February 7, 2014 Author Share Posted February 7, 2014 روح اكتب في ف8tete_!_ بعدين يفتح لك لوحة هذه خاصة بتهكير MTA اوكي ؟؟ بعدين روح اكتب tapldog مجربة 11564 $ Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now