Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- hud = {}
- local s = {guiGetScreenSize()}
- local MimgW,MimgH = 1200*3,1200*3
- local map_width,map_height = 1200,1200
- function hud:con ()
- bindKey("z", "down", "chatbox", "globalchat")
- self.player = localPlayer
- self.vertical = 0
- self.horizontal = 0
- self.rot = 0
- self.jumps = 0
- self.camrot = 0
- self.rowoffset = 15
- self.width, self.height = 1200,1200
- self.currentZoomState = 0.5
- self.fg = dxCreateRenderTarget ( s[1]*400/1440,s[2]*200/900,true )
- self.fg_shader = dxCreateShader("files/textureReplace.fx")
- self.radiation = dxCreateRenderTarget ( s[1]*500/1440,s[2]*300/900,true )
- self.radiation_shader = dxCreateShader("files/textureReplace.fx")
- self.map = dxCreateRenderTarget ( s[1]*350/1440,s[2]*200/900,true )
- self.map_border = dxCreateRenderTarget ( s[1]*360/1440,s[2]*210/900,true )
- self.map_shader = dxCreateShader("files/textureReplace.fx")
- self.map_border_shader = dxCreateShader("files/textureReplace.fx")
- self.radarTexture = dxCreateTexture("files/images/world.jpg", "dxt1", true, "clamp" )
- self.selfdot = dxCreateTexture("files/images/3.png", "dxt5", true, "clamp" )
- setPlayerHudComponentVisible("ammo",false)
- setPlayerHudComponentVisible("armour",false)
- setPlayerHudComponentVisible("breath",false)
- setPlayerHudComponentVisible("clock",false)
- setPlayerHudComponentVisible("health",false)
- setPlayerHudComponentVisible("money",false)
- setPlayerHudComponentVisible("weapon",false)
- setPlayerHudComponentVisible("wanted",false)
- setPlayerHudComponentVisible("radar",false)
- addEventHandler("onClientHUDRender",getRootElement(),bind(self.draw,self))
- addEventHandler("onClientHUDRender",getRootElement(),bind(self.scoreboard,self))
- end
- function hud:decon()
- self = nil
- end
- function hud:draw()
- if not getElementData(self.player,"loggedin") == true then return end
- for k,v in next,getElementsByType("vehicle") do
- if getElementData(v,"boxelement") then
- if getPedOccupiedVehicle(localPlayer) then
- setElementCollisionsEnabled(getElementData(v,"boxelement"), false)
- else
- setElementCollisionsEnabled(getElementData(v,"boxelement"), true)
- end
- end
- end
- if getDevelopmentMode () == true then
- for k,v in next,getElementsByType("ped") do
- local x,y,z = getElementPosition(v)
- local lx,ly,lz = getElementPosition(localPlayer)
- if getDistanceBetweenPoints3D(x,y,z,lx,ly,lz) < 110 then
- local x,y = getScreenFromWorldPosition(x,y,z-0.4)
- if x and y then
- local hx,hy = getScreenFromWorldPosition(getPedBonePosition ( v, 8 ))
- local nx,ny = getScreenFromWorldPosition(getPedBonePosition ( v, 5 ))
- local lax,lay = getScreenFromWorldPosition(getPedBonePosition ( v, 35 ))
- local rax,ray = getScreenFromWorldPosition(getPedBonePosition ( v, 25 ))
- local hhx,hhy = getScreenFromWorldPosition(getPedBonePosition ( v, 3 ))
- local lfx,lfy = getScreenFromWorldPosition(getPedBonePosition ( v, 44 ))
- local rfx,rfy = getScreenFromWorldPosition(getPedBonePosition ( v, 54 ))
- if hx and hy and nx and ny and lax and lay and rax and ray and hhx and hhy and lfx and lfy and rfx and rfy then
- dxDrawLine(hx,hy,nx,ny,tocolor(200,20,20,255),1)
- dxDrawLine(nx,ny, lax,lay,tocolor(200,20,20,255),1)
- dxDrawLine(nx,ny, rax,ray,tocolor(200,20,20,255),1)
- dxDrawLine(nx,ny, hhx,hhy,tocolor(200,20,20,255),1)
- dxDrawLine(hhx,hhy, lfx,lfy,tocolor(200,20,20,255),1)
- dxDrawLine(hhx,hhy,rfx,rfy,tocolor(200,20,20,255),1)
- end
- end
- end
- end
- for k,v in next,getElementsByType("loot") do
- if getElementData(v,"item") then
- local x,y,z = getElementPosition(v)
- local lx,ly,lz = getElementPosition(localPlayer)
- if getDistanceBetweenPoints3D(x,y,z,lx,ly,lz) < 110 then
- local x,y = getScreenFromWorldPosition(x,y,z-1)
- if x and y then
- dxDrawLine(x-20,y+20,x+20,y+20,tocolor(20,20,200,255),1)
- dxDrawLine(x-20,y+20,x-20,y-20,tocolor(20,20,200,255),1)
- dxDrawLine(x+20,y+20,x+20,y-20,tocolor(20,20,200,255),1)
- dxDrawLine(x-20,y-20,x+20,y-20,tocolor(20,20,200,255),1)
- dxDrawText(getElementData(v,"item").." x "..getElementData(v,"amount"),x,y,x,y)
- end
- end
- end
- end
- end
- local rotation = getPedCameraRotation( localPlayer )
- if rotation > self.rot then
- self.vertical = self.vertical - 2
- self.horizontal = self.horizontal - 2
- if self.vertical < -8 then
- self.vertical = -8
- self.horizontal = -8
- end
- elseif rotation < self.rot then
- self.vertical = self.vertical + 2
- self.horizontal = self.horizontal+ 2
- if self.vertical > 8 then
- self.vertical = 8
- self.horizontal = 8
- end
- end
- if rotation > self.rot then
- self.camrot = self.camrot + 0.5
- if self.camrot > 15 then
- self.camrot = 15
- end
- elseif rotation < self.rot then
- self.camrot = self.camrot - 0.5
- if self.camrot < -15 then
- self.camrot = -15
- end
- end
- for k,v in ipairs(getElementsByType("player")) do
- if getElementData(v,"voice_enabled") == true then
- local x1,y1,z1 = getElementPosition(v)
- local x2,y2,z2 = getElementPosition(localPlayer)
- if getDistanceBetweenPoints3D(x2,y2,z2,x1,y1,z1) > 15 then return end
- local x,y = getScreenFromWorldPosition(x1,y1,z1)
- if x and y then
- dxDrawText("Voice",x,y,x,y)
- end
- end
- end
- if isPlayerMapVisible() then
- local minX,minY,maxX,maxY = getPlayerMapBoundingBox()
- sizeX = maxX - minX
- sizeY = maxY - minY
- --
- sizeX = sizeX/6000
- sizeY = sizeY/6000
- for k,v in ipairs(getElementsByType("ped")) do
- if getElementData(v,"hearth") == true then
- local x,y = getElementPosition(v)
- local mapX = x + 3000
- local mapY = y + 3000
- x = mapX*sizeX + minX
- y = maxY - mapY*sizeY
- dxDrawImage(x-s[1]*10/1440,y-s[2]*10/900, s[1]*20/1440, s[2]*20/900, "files/images/hearth.png",0,0,0,tocolor(255,255,255,255),true)
- dxDrawImage(x-s[1]*10/1440,y-s[2]*10/900, s[1]*20/1440, s[2]*20/900, "files/images/hearth.png",0,0,0,tocolor(255,255,255,255),true)
- dxDrawImage(x-s[1]*10/1440,y-s[2]*10/900, s[1]*20/1440, s[2]*20/900, "files/images/hearth.png",0,0,0,tocolor(255,255,255,255),true)
- --DRAW TO RADAR
- end
- end
- end
- dxSetRenderTarget( self.fg,true )
- dxSetBlendMode("modulate_add")
- dxDrawRectangle ( s[1]*48/1440,s[2]*28/900, s[1]*304/1440,s[2]*24/900 ,tocolor(0,0,0,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*30/900, s[1]*300/1440,s[2]*20/900 ,tocolor(100,20,20,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*30/900, s[1]*300/100*getElementHealth(localPlayer)/1440,s[2]*20/900 ,tocolor(200,20,20,255))
- dxDrawText(100/100*math.floor(getElementHealth(localPlayer)).."%",s[1]*190/1440,s[2]*20/900, s[1]*50/1440,s[2]*60/900,tocolor(255,255,255,255),1,"default-bold","left","center")
- dxDrawRectangle ( s[1]*48/1440,s[2]*58/900, s[1]*304/1440,s[2]*24/900 ,tocolor(0,0,0,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*60/900, s[1]*300/1440,s[2]*20/900 ,tocolor(20,100,20,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*60/900, s[1]*300/100*getElementData(localPlayer,"hunger")/1440,s[2]*20/900 ,tocolor(20,200,20,255))
- dxDrawText(100/100*math.floor(getElementData(localPlayer,"hunger")).."%",s[1]*190/1440,s[2]*80/900, s[1]*50/1440,s[2]*60/900,tocolor(255,255,255,255),1,"default-bold","left","center")
- dxDrawRectangle ( s[1]*48/1440,s[2]*88/900, s[1]*304/1440,s[2]*24/900 ,tocolor(0,0,0,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*90/900, s[1]*300/1440,s[2]*20/900 ,tocolor(20,80,100,255))
- dxDrawRectangle ( s[1]*50/1440,s[2]*90/900, s[1]*300/100*getElementData(localPlayer,"thirst")/1440,s[2]*20/900 ,tocolor(20,120,150,255))
- dxDrawText(100/100*math.floor(getElementData(localPlayer,"thirst")).."%",s[1]*190/1440,s[2]*140/900, s[1]*50/1440,s[2]*60/900,tocolor(255,255,255,255),1,"default-bold","left","center")
- dxSetBlendMode("blend")
- dxSetRenderTarget( )
- dxSetShaderValue(self.fg_shader, "tex", self.fg)
- dxSetShaderTransform(self.fg_shader, 45-self.camrot, 5, 0)
- local width, height = dxGetMaterialSize(self.fg)
- dxSetBlendMode("add")
- dxDrawImage((s[1]-width/1.1)+self.vertical/2, height-s[2]*150/900, width, height, self.fg_shader,0,0,0,tocolor(255,255,255,150))
- dxSetBlendMode("blend")
- if hasItem("GPS") == true then
- local WorldW, WorldH = dxGetMaterialSize(self.radarTexture)
- local mW, mH = dxGetMaterialSize(self.map)
- local x, y = getElementPosition(localPlayer)
- local X = (mW/2)-(x/(6000/WorldW))
- local Y = (mH/2)+(y/(6000/WorldH))
- local prot = getPedRotation( localPlayer )
- local camX,camY,camZ = getElementRotation(getCamera())
- dxSetRenderTarget(self.map, true)
- dxDrawImage(X - WorldW/2, Y - WorldH/2, WorldW, WorldH, self.radarTexture, camZ, (x/(6000/WorldW)), -(y/(6000/WorldH)), tocolor(255, 255, 255, 255))
- dxSetRenderTarget()
- local bW, bH = dxGetMaterialSize(self.map_border)
- dxSetRenderTarget(self.map_border, true)
- dxDrawRectangle(0,0,bW,5,tocolor(0,0,0,150))
- dxDrawRectangle(0,bH-5,bW,5,tocolor(0,0,0,150))
- dxDrawRectangle(bW-5,5,5,bH-5,tocolor(0,0,0,150))
- dxDrawRectangle(0,5,5,bH-5,tocolor(0,0,0,150))
- dxDrawImage (bW/2-25/2, bH/2-25/2,25, 25, self.selfdot,camZ-prot)
- dxSetRenderTarget()
- dxSetShaderValue(self.map_shader, "tex", self.map)
- dxSetShaderTransform(self.map_shader, -45- self.camrot, 5, 0)
- dxSetShaderValue(self.map_border_shader, "tex", self.map_border)
- dxSetShaderTransform(self.map_border_shader, -45- self.camrot, 5, 0)
- dxSetBlendMode("add")
- dxDrawImageSection(s[1]*15/1440,s[2]*650/900,mW,mH,mW/4, mH/4, mW/2, mH/2,self.map_shader, 0, 0, 0, tocolor(255, 255, 255, 240))
- dxDrawImage (s[1]*10/1440,s[2]*645/900,bW,bH, self.map_border_shader,0,0,0,tocolor(255, 255, 255, 255))
- dxSetBlendMode("blend")
- end
- if hasItem("Geiger Counter") == true then
- end
- if self.vertical > 0 then
- self.vertical = self.vertical - 1
- self.horizontal = self.horizontal - 1
- elseif self.vertical < 0 then
- self.vertical = self.vertical + 1
- self.horizontal = self.horizontal + 1
- end
- if self.camrot > 0 then
- self.camrot = self.camrot - 0.1
- elseif self.camrot < 0 then
- self.camrot = self.camrot+0.1
- end
- self.jumps = self.jumps + 1
- if self.jumps > 5 then
- self.jumps = 0
- self.rot = rotation
- end
- if isElement(getPedTarget ( localPlayer )) then
- if getElementType(getPedTarget ( localPlayer )) == "object" then
- if getElementData(getPedTarget ( localPlayer ),"placedItem") == true then
- typ = getElementData(getPedTarget ( localPlayer ),"typ")
- target = getPedTarget ( localPlayer )
- local hp = placeitems[typ]
- local nhp = getElementData(target,"health")
- local percent = 100/hp*nhp
- local x2,y2,z2 = getElementPosition(target)
- local x1,y1,z1 = getElementPosition(localPlayer)
- if getDistanceBetweenPoints3D(x2,y2,z2,x1,y1,z1) > 15 then return end
- --if typ == "Wood Door" then
- -- local x,y = getScreenFromWorldPosition(x2,y2,z2+1)
- --else
- local x,y = getScreenFromWorldPosition(x2,y2,z2)
- --end
- if x and y then
- dxDrawRectangle (x-60/2 ,y-12/2,60,12 ,tocolor(0,0,0,150))
- dxDrawRectangle ((x-60/2)+2,(y-12/2)+2,56/100*percent,8 ,tocolor(200,20,20,150))
- end
- if typ == "Wood Door" then
- local x,y = getScreenFromWorldPosition(x2,y2,z2+1)
- if x and y then
- dxDrawText("Click para abrir",x,y,x,y)
- end
- end
- end
- end
- end
- end
- function hud:scoreboard()
- if not getElementData(self.player,"loggedin") == true then return end
- if getKeyState("tab") == false then return end
- local altime = positionGetElementData("alivetime", #getLoggedinPlayers ( ))
- local playerAmount = #getLoggedinPlayers ( )
- for i = 1, playerAmount do
- local dist = i*self.rowoffset
- local offset2 = dxGetFontHeight(1.5, "default-bold")
- local player = altime[i].Player or false
- if not player then
- break
- end
- dxDrawText(player,s[1]/2,s[2]/2+dist,s[1]/2,s[2]/2)
- end
- end
- newIni(hud)
- local ap = 0
- local apmode = true
- local percentage = 0
- function renderDeathWindow()
- if apmode == true then
- if ap < 255 then
- ap = ap + 5
- else
- ap = 255
- end
- else
- if ap > 0 then
- ap = ap - 5
- else
- ap = 0
- end
- end
- dxDrawRectangle ( s[1]*0/1440,s[2]*0/900, s[1]*1440/1440,s[2]*900/900 ,tocolor(0,0,0,ap),true)
- dxDrawText("Has muerto...", s[1]*463/1440, s[2]*176/900, s[1]*986/1440, s[2]*465/900, tocolor(255, 255, 255, ap), 3.00, "bankgothic", "center", "center", false, false, true, false, false)
- dxDrawText("Harás respawn en 20 segundos", s[1]*462/1440, s[2]*300/900, s[1]*985/1440,s[2]* 589/900, tocolor(255, 255, 255, ap), 2.00, "bankgothic", "center", "center", false, false, true, false, false)
- end
- addEvent("onPlayerWastedShowWindow",true)
- addEventHandler("onPlayerWastedShowWindow",getRootElement(),function (time)
- addEventHandler("onClientHUDRender",getRootElement(),renderDeathWindow)
- apmode = true
- setTimer(function () apmode = false end,time*1.15,1)
- setTimer(function ()
- removeEventHandler("onClientHUDRender",getRootElement(),renderDeathWindow)
- end,time*1.2,1)
- end)
- setTimer(function ()
- local x,y,z = getElementPosition(localPlayer)
- isWater = testLineAgainstWater ( x,y,z+1,x,y,z-1 )
- setElementData(localPlayer,"inWater",isWater)
- toggleControl ( "radar" ,false )
- if isPlayerMapVisible () then
- if getPedMoveState ( localPlayer) ~= "stand" then
- triggerServerEvent("hidePlayerMap",localPlayer)
- end
- end
- if getData( localPlayer, "placingObject" ) == nil then
- if tonumber(getElementData(localPlayer,"can_run")) == 1 then
- toggleControl ( "walk", true )
- toggleControl ( "sprint", true )
- toggleControl ( "jump", true )
- else
- setPedControlState ( "sprint", false )
- setPedControlState ( "walk", true )
- toggleControl ( "walk", false )
- toggleControl ( "sprint", false )
- toggleControl ( "jump", false )
- end
- end
- end,500,0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement