Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local enableBlips = true
- local renderNorthBlip = true
- local alwaysRenderMap = false
- local worldW, worldH = 3000,3000
- local blip = 8
- local rt = dxCreateRenderTarget(290*2,175*2, true)
- local sx, sy = guiGetScreenSize()
- local xFactor, yFactor = sx/1366,sy/768
- local yFactor = xFactor
- function findRotation(x1,y1,x2,y2)
- local t = -math.deg(math.atan2(x2-x1,y2-y1))
- if t < 0 then t = t + 360 end;
- return t;
- end
- function getPointFromDistanceRotation(x, y, dist, angle)
- local a = math.rad(90 - angle);
- local dx = math.cos(a) * dist;
- local dy = math.sin(a) * dist;
- return x+dx, y+dy;
- end
- addEvent("dajRadarDaleko", true)
- addEventHandler("dajRadarDaleko", getRootElement(), function()
- rt = dxCreateRenderTarget(290*getElementData(localPlayer, "daleko_radar"),175*getElementData(localPlayer, "daleko_radar"), true)
- ile = getElementData(localPlayer, "daleko_radar")
- blip = 12 / getElementData(localPlayer, "daleko_radar")
- end)
- function RADAR()
- local mW, mH = dxGetMaterialSize(rt)
- local x, y = getElementPosition(localPlayer)
- local X, Y = mW/2 -(x/(6000/worldW)), mH/2 +(y/(6000/worldH))
- local camX,camY,camZ = getElementRotation(getCamera())
- dxSetRenderTarget(rt, true)
- if alwaysRenderMap or getElementInterior(localPlayer) == 0 then
- dxDrawImage(X - worldW/2, mH/5 + (Y - worldH/2), worldW, worldH, "gfx/world.png", camZ, (x/(6000/worldW)), -(y/(6000/worldH)), tocolor(255, 255, 255, 255))
- --
- dxSetRenderTarget()
- dxDrawImage((18-25)*xFactor, sy-((216-40))*yFactor, (293+31)*xFactor, (177)*yFactor, "gfx/radarbg.png", 0, 0, 0, tocolor(0, 0, 0, 200))
- dxDrawImage((30+5-25)*xFactor, sy-((200+5-40))*yFactor, (270+20)*xFactor, (155)*yFactor, rt, 0, 0, 0, tocolor(255, 255, 255, 255))
- dxDrawImage((30+5-25)*xFactor, sy-((200+5-40))*yFactor, (270+20)*xFactor, (155)*yFactor, rt, 0, 0, 0, tocolor(255, 255, 255, 255))
- --# Blips
- local rx, ry, rz = getElementRotation(localPlayer)
- local lB = (33-23)*xFactor
- local rB = (8+290+2)*xFactor
- local tB = sy-(208-43)*yFactor
- local bB = tB + (155-2)*yFactor
- local cX, cY = (rB+lB)/2, (tB+bB)/2 +(30)*yFactor
- local toLeft, toTop, toRight, toBottom = cX-lB, cY-tB, rB-cX, bB-cY
- for k, v in ipairs(getElementsByType("blip")) do
- local bx, by = getElementPosition(v)
- local actualDist = getDistanceBetweenPoints2D(x, y, bx, by)
- local maxDist = getBlipVisibleDistance(v)
- if actualDist <= maxDist and getElementDimension(v)==getElementDimension(localPlayer) and getElementInterior(v)==getElementInterior(localPlayer) then
- if not getElementData(localPlayer, "daleko_radar") then
- ile = 2
- else
- ile = getElementData(localPlayer, "daleko_radar")
- end
- local dist = actualDist/(6000*ile/((worldW+worldH)/2))
- local rot = findRotation(bx, by, x, y)-camZ
- local bpx, bpy = getPointFromDistanceRotation(cX, cY, math.min(dist, math.sqrt(toTop^2 + toRight^2)), rot)
- local bpx = math.max(lB, math.min(rB, bpx))
- local bpy = math.max(tB, math.min(bB, bpy))
- local bid = getElementData(v, "customIcon") or getBlipIcon(v)
- local _, _, _, bcA = getBlipColor(v)
- local bcR, bcG, bcB = 255, 255, 255
- if getBlipIcon(v) == 0 then
- bcR, bcG, bcB = getBlipColor(v)
- end
- local bS = getBlipSize(v)
- dxDrawImage(bpx -(blip*bS)*xFactor/2, bpy -(blip*bS)*yFactor/2, (blip*bS)*xFactor, (blip*bS)*yFactor, "gfx/blip/"..bid..".png", 0, 0, 0, tocolor(bcR, bcG, bcB, bcA))
- end
- if renderNorthBlip then
- local rot = -camZ+180
- local bpx, bpy = getPointFromDistanceRotation(cX, cY, math.sqrt(toTop^2 + toRight^2), rot)
- local bpx = math.max(lB, math.min(rB, bpx))
- local bpy = math.max(tB, math.min(bB, bpy))
- local dist = getDistanceBetweenPoints2D(cX, cY, bpx, bpy)
- local bpx, bpy = getPointFromDistanceRotation(cX, cY, dist, rot)
- if bpx and bpy then
- local bpx = math.max(lB, math.min(rB, bpx))
- local bpy = math.max(tB, math.min(bB, bpy))
- dxDrawImage(bpx -(blip*2)/2,bpy -(blip*2)/2,blip*2,blip*2,"gfx/blip/4.png",0,0,0)
- end
- end
- dxDrawImage((cX -(blip*2)*xFactor/2)+2,cY -(blip*2)*yFactor/2,(blip*2)*xFactor-2,(blip*2)*yFactor, "gfx/player.png", camZ-rz, 0, 0)
- end
- end
- addEventHandler("onClientRender", root, RADAR)
- function Visible()
- if isVisible then
- addEventHandler("onClientRender", root, RADAR)
- else
- removeEventHandler("onClientRender", root, RADAR)
- end
- isVisible = not isVisible
- end
- bindKey ("F11", "down", Visible)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement