Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- removeEventHandler("onClientRender", root, Nametag:getSingleton().m_Draw, true, "high")
- function Nametag:draw()
- if DEBUG then ExecTimeRecorder:getSingleton():startRecording("3D/Nametag") end
- local cx,cy,cz = getCameraMatrix()
- local bRifleCheck = self:_weaponCheck()
- local lpX, lpY, lpZ = getElementPosition(localPlayer)
- for _, player in pairs(getElementsByType("player", root, true)) do
- if player ~= localPlayer then
- if DEBUG then ExecTimeRecorder:getSingleton():addIteration("3D/Nametag") end
- setPlayerNametagShowing(player, false)
- local pX, pY, pZ = getElementPosition(player)
- local phX, phY, phZ = player:getBonePosition(8)
- local bDistance = getDistanceBetweenPoints3D(cx,cy,cz, pX, pY, pZ)
- if bRifleCheck == player then bDistance = 10 end -- fix the distance if the localPlayer aims at the specific player
- if not localPlayer:isLoggedIn() then return false end
- if (bDistance <= maxDistance) or localPlayer:getPrivateSync("isSpecting") then
- local scx,scy = getScreenFromWorldPosition(pX, pY, pZ + 1.2)
- if scx and scy then
- local bLineOfSight = isLineOfSightClear(cx, cy, cz, phX, phY, phZ, true, false, false, true, false, false, false, localPlayer)
- if bLineOfSight or localPlayer:getPrivateSync("isSpecting") then
- local drawName = getPlayerName(player)
- local wanteds = player:getWanteds()
- local size = math.max(0.5, 1 - bDistance/maxDistance)*0.9
- local alpha = localPlayer:getPrivateSync("isSpecting") and 1 or math.min(1, 1 - (bDistance - maxDistance*0.5)/(maxDistance - maxDistance*0.5))
- local r,g,b = self:getColorFromHP(getElementHealth(player), getPedArmor(player))
- local textWidth = dxGetTextWidth(drawName, 1.5*size, Nametag.font)
- local fontHeight = dxGetFontHeight(1.5*size,Nametag.font)
- if self:drawIcons(player, scx, scy, fontHeight, alpha) then
- scy = scy - fontHeight
- end
- if wanteds > 0 then
- dxDrawImage(scx - textWidth/2 - fontHeight*2, scy - fontHeight*1.1, fontHeight*2.2, fontHeight*2.2, "files/images/Nametag/wanted.png", 0, 0, 0, tocolor(200, 150, 0, 255*alpha))
- dxDrawText(wanteds, scx - textWidth/2 - fontHeight*2, scy - fontHeight*1.1, ( scx - textWidth/2 - fontHeight*2 )+ fontHeight*2.2, (scy - fontHeight*1.1)+ fontHeight*2.4, tocolor(0, 0, 0, 255*alpha), 1.5*size, Nametag.font, "center", "center")
- --dxDrawText(wanteds, scx - textWidth/2 - fontHeight, scy, nil, nil, tocolor(255, 255, 255, 255*alpha), 1.5*size, Nametag.font, "center", "center")
- scx = scx + fontHeight
- end
- if DEBUG then ExecTimeRecorder:getSingleton():addIteration("3D/Nametag", true) end
- dxDrawText(player:getName(), scx + 1,scy + 1, nil, nil, tocolor(0, 0, 0, 255*alpha), 2*size, Nametag.font, "center", "center")
- dxDrawText(player:getName(), scx,scy, nil, nil, tocolor(r, g, b, 255*alpha), 2*size, Nametag.font, "center", "center")
- end
- end
- end
- end
- end
- if DEBUG then ExecTimeRecorder:getSingleton():endRecording("3D/Nametag") end
- end
- addEventHandler("onClientRender", root, Nametag:getSingleton().m_Draw, true, "high")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement