Jump to content

fazendo radar MTA, AJUDA?


Recommended Posts

20 minutes ago, Gabriel63495 said:

pode dar um exemplo ?

Sim, um minuto

@Gabriel63495 - Nesse caso ai eu fiz em resolução relativa, mas você pode fazer do jeito que preferir...

Ah, tem o math.floor também, que é uma especie de arredondamento, mas você pode removê-lo para deixar o valor exato na barra DX.

local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerHealth, screenH * 0.0333, tocolor(200, 0, 0, 255), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)

 

Edited by #DeltaSCR
  • Thanks 1
Link to comment
35 minutes ago, #DeltaSCR said:

Sim, um minuto

@Gabriel63495 - Nesse caso ai eu fiz em resolução relativa, mas você pode fazer do jeito que preferir...

Ah, tem o math.floor também, que é uma especie de arredondamento, mas você pode removê-lo para deixar o valor exato na barra DX.


local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerHealth, screenH * 0.0333, tocolor(200, 0, 0, 255), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)

 

obrigado, vossa santidade

Link to comment
1 hour ago, #DeltaSCR said:

Sim, um minuto

@Gabriel63495 - Nesse caso ai eu fiz em resolução relativa, mas você pode fazer do jeito que preferir...

Ah, tem o math.floor também, que é uma especie de arredondamento, mas você pode removê-lo para deixar o valor exato na barra DX.


local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerHealth, screenH * 0.0333, tocolor(200, 0, 0, 255), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)

 

só nao to consguindo fazer o armor e oxigenio '-' 

local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.0150, screenH * 0.9833, screenW * 0.1272 / 110* playerHealth, screenH * 0.0113, tocolor(172, 211, 115), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)

local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerArmor = math.floor(getPedArmor(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerHealth, screenH * 0.0333, tocolor(255, 255, 255, 255), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)

 

Link to comment

Tente assim:

local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	local playerArmor = math.floor(getPedArmor(localPlayer)) --// Variavel obtendo o colete do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.0150, screenH * 0.9833, screenW * 0.1272 / 100 * playerHealth, screenH * 0.0113, tocolor(172, 211, 115), false) --// Barra que exibe a vida do player;
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100 * playerArmor, screenH * 0.0333, tocolor(255, 255, 255, 255), false) --// Barra que exibe o colete do player;
end
addEventHandler("onClientRender", root, DXGUI)

OBS: Você estava criando funções e eventos iguais para cada variável nova / Deixe a divisão por 100, pois é o total de vida e colete, a não ser que você use mais ;)

Resposta editada

Edited by #DeltaSCR
Correção
  • Thanks 1
Link to comment
6 minutes ago, #DeltaSCR said:

Tente assim:


local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	local playerArmor = math.floor(getPedArmor(localPlayer)) --// Variavel obtendo o colete do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.0150, screenH * 0.9833, screenW * 0.1272 / 100 * playerHealth, screenH * 0.0113, tocolor(172, 211, 115), false) --// Barra que exibe a vida do player;
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100 * playerArmor, screenH * 0.0333, tocolor(255, 255, 255, 255), false) --// Barra que exibe o colete do player;
end
addEventHandler("onClientRender", root, DXGUI)

OBS: Você estava criando funções e eventos iguais para cada variável nova / Deixe a divisão por 100, pois é o total de vida e colete, a não ser que você use mais ;)

Resposta editada

?

4 minutes ago, Gabriel63495 said:

?

function showArmor (getPedArmor) showArmor (getPedArmor)
	local me = getLocalPlayer (1479.2451171875, -1735.8148193359, 12.754839897156)local me = getLocalPlayer (1479.2451171875, -1735.8148193359, 12.754839897156)
	local armor = getPedArmor (localPlayer)local armor = getPedArmor (localPlayer)
	outputChatBox( "Your armor: " .. armor )
end
addCommandHandler ( "showarmor", showArmor )

e agora ?

Link to comment

 

27 minutes ago, Gabriel63495 said:

?


function showArmor (getPedArmor) showArmor (getPedArmor)
	local me = getLocalPlayer (1479.2451171875, -1735.8148193359, 12.754839897156)local me = getLocalPlayer (1479.2451171875, -1735.8148193359, 12.754839897156)
	local armor = getPedArmor (localPlayer)local armor = getPedArmor (localPlayer)
	outputChatBox( "Your armor: " .. armor )
end
addCommandHandler ( "showarmor", showArmor )

e agora ?

O que você quis fazer nessa função?

  • Thanks 1
Link to comment

Se for para obter o colete do Jogador, faça assim:

function obterColete()
   local playerArmor = getPedArmor(localPlayer)
   outputChatBox("Seu colete está à "..playerArmor.."")
end
addCommandHandler("colete", root, obterColete)

(Não testado)

4 minutes ago, Gabriel63495 said:

colocar a barra de colete 

Mas eu já te passei lá em cima

42 minutes ago, #DeltaSCR said:

Tente assim:


local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = math.floor(getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	local playerArmor = math.floor(getPedArmor(localPlayer)) --// Variavel obtendo o colete do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.0150, screenH * 0.9833, screenW * 0.1272 / 100 * playerHealth, screenH * 0.0113, tocolor(172, 211, 115), false) --// Barra que exibe a vida do player;
	dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100 * playerArmor, screenH * 0.0333, tocolor(255, 255, 255, 255), false) --// Barra que exibe o colete do player;
end
addEventHandler("onClientRender", root, DXGUI)

OBS: Você estava criando funções e eventos iguais para cada variável nova / Deixe a divisão por 100, pois é o total de vida e colete, a não ser que você use mais ;)

Resposta editada

[...] O colete é a segunda variável

  • Thanks 1
Link to comment
function DXGUI ()
   local playerArmor = getPedArmor(localPlayer)
   dxDrawRectangle(screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerHealth, screenH * 0.0333, tocolor(255, 255, 255, 255), false)
end
addCommandHandler("onClientRender", root, DXGUI)	 

oque tem de errado ?

Link to comment

onClientRender é um evento, não pode ser acionado por um comando desta forma que você fez.

Faça assim:

function DXGUI ()
	local playerArmor = getPedArmor (localPlayer)
  	dxDrawRectangle (screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerArmor, screenH * 0.0333, tocolor(255, 255, 255, 255), false)
end
addEventHandler ("onClientRender", root, DXGUI)

 

Edited by Jonas^
  • Thanks 1
Link to comment
3 minutes ago, Jonas^ said:

onClientRender é um evento, não pode ser acionado por um comando desta forma que você fez.

Faça assim:


function DXGUI ()
	local playerArmor = getPedArmor (localPlayer)
  	dxDrawRectangle (screenW * 0.4414, screenH * 0.4833, screenW * 0.1172 / 100* playerArmor, screenH * 0.0333, tocolor(255, 255, 255, 255), false)
end
addEventHandler ("onClientRender", root, DXGUI)

 

radar continua desaparecido, mesmo com isso ai, ele se aparece quando eu removo essa funçao

Link to comment
Map = {}
Map.__index = Map
Map.instances = {}
Map.damageEfect = {}
local sx,sy = guiGetScreenSize()
px,py = 1366,768
x,y =  (sx/px), (sy/py)
font = dxCreateFont("images/myriadproregular.ttf",20,true)

function math.map(value, low1, high1, low2, high2)
	return low2 + (value - low1) * (high2 - low2) / (high1 - low1)
end

function Map.new(X,Y,W,H)
	local self = setmetatable({}, Map)
	self.x = X
	self.y = Y
	self.w = W
	self.h = H
	local pos = {getElementPosition(localPlayer)}
	self.posX = pos[1]
	self.posY = pos[2]
	self.posZ = pos[3]
	self.size = 90
	self.color = {255,255,255,255}	
	self.blipSize = x*18
	self.drawRange = 220
	self.map = dxCreateTexture("images/gtasa.png","dxt5")
	self.renderTarget = dxCreateRenderTarget(W, H, true)
	self.blips = {}
	for k=0, 63 do
		self.blips[k] = dxCreateTexture("images/icons/"..k..".png","dxt3")
	end
	if(#Map.instances == 0) then
		addEventHandler("onClientRender", getRootElement(), Map.render)
	end
	
	table.insert(Map.instances, self)
	return self	
end

function Map.render()
	for k,v in pairs(Map.instances) do
		if v.visible then
			if not v.style then
				v:draw()
			elseif v.style == 1 then
				v:draw2()
			end
		end
	end
end

function Map:setVisible(bool)
	self.visible = bool
	if bool == true then
		self:setPosition(getElementPosition(localPlayer))
	end
	return true
end

function Map:isVisible()
	return self.visible
end

function Map:setPosition(x,y,z)
	self.posX = x
	self.posY = y
	self.posZ = z
	return true
end

function Map:getPosition()
	return self.posX, self.posY, self.posZ
end

function Map:setColor(r,g,b,a)
	self.color = {r,g,b,a}
	return true
end

function Map:getColor()
	return self.color
end

function Map:setSize(value)
	self.size = value
	return true
end

function dxDrawEmptyRec(absX,absY,sizeX,sizeY,color,ancho)
    dxDrawRectangle ( absX,absY,sizeX,ancho,color )
	dxDrawRectangle ( absX,absY+ancho,ancho,sizeY-ancho,color )
	dxDrawRectangle ( absX+ancho,absY+sizeY-ancho,sizeX-ancho,ancho,color )
	dxDrawRectangle ( absX+sizeX-ancho,absY+ancho,ancho,sizeY-ancho*2,color )	
end

function Map:draw()
	dxSetRenderTarget(self.renderTarget, true)
		
	local player = getLocalPlayer()
	local centerX = (self.x) + (self.w/2)
	local centerY = (self.y) + (self.h/2)
	local pr = getPedRotation(player)
	local mapSize = 3000 / (self.drawRange/180)
	
	if getKeyState("num_add") then
		if self.drawRange > 120 then
			self.drawRange = self.drawRange - 8
		end
	elseif getKeyState("num_sub") then
		if self.drawRange < 660 then
			self.drawRange = self.drawRange + 8
		end
	elseif getKeyState("arrow_l") then
			self.posX = self.posX - (self.drawRange/100*10)
	elseif getKeyState("arrow_r") then
			self.posX = self.posX + (self.drawRange/100*10)
	elseif getKeyState("arrow_u") then
			self.posY = self.posY + (self.drawRange/100*10)
	elseif getKeyState("arrow_d") then
			self.posY = self.posY - (self.drawRange/100*10)
	end
	
	local mapPosX, mapPosY = -(math.map(self.posX+3000,0,6000,0,mapSize)-self.w/2), -(math.map(-self.posY + 3000, 0, 6000, 0, mapSize)-self.h/2)
	
	
	
	
    -----------------------------------------------------------------------------------------------------
	-- draw map
	
	dxDrawRectangle(0,0,self.w,self.h,tocolor(0,120,210))
	dxDrawImage(mapPosX, mapPosY, mapSize, mapSize, self.map, 0,0,0, tocolor(255,255,255))	
	
	
	
	
	
		-----------------------------------------------------------------------------------------------------
		-- draw radar areas
		
			for i, area in ipairs (getElementsByType("radararea")) do
				local ex, ey = getElementPosition(area)
				local w, h = getRadarAreaSize(area)
				local areaX = (3000+ex) / 6000 * mapSize
				local areaY = (3000-ey) / 6000 * mapSize
				local scaledW = w / 6000*mapSize
				local scaledH = -(h / 6000*mapSize)
				areaX = areaX + mapPosX
				areaY = areaY + mapPosY
				local rr, gg, bb, alpha = 255,255,255,255
				rr, gg, bb, alpha = getRadarAreaColor(area)

	            if (isRadarAreaFlashing(area)) then
	                alpha = alpha*math.abs(getTickCount()%1000-500)/500
	            end
				dxSetBlendMode("modulate_add")
				dxDrawRectangle(areaX, areaY, scaledW, scaledH,tocolor(rr,gg,bb,alpha))
				dxSetBlendMode("blend")
			end			
			
			
			
			

	-----------------------------------------------------------------------------------------------------
	-- draw arrow local
		
	local b = self.blipSize
	local ex,ey = getElementPosition(player)
	local blipX = (3000+ex) / 6000 * mapSize
	local blipY = (3000-ey) / 6000 * mapSize
	blipX = blipX + mapPosX
	blipY = blipY + mapPosY
	
	dxDrawImage(blipX-x*23/2, blipY-y*25/2,x*23,y*25, self.blips[2], (-pr)%360,0,0,tocolor(255,255,255,255))	
	dxSetRenderTarget()	
	
	
	
	
	-----------------------------------------------------------------------------------------------------
	-- draw render target
	
	dxDrawEmptyRec(self.x-x*5, self.y-y*5, self.w+x*10, self.h+y*10,tocolor(0,0,0,150),5)
	dxDrawImage(self.x, self.y, self.w, self.h, self.renderTarget,0,0,0,tocolor(unpack(self.color)))	
	
	
	
	
		-----------------------------------------------------------------------------------------------------
		-- draw blips
		
		for i, b in ipairs (getElementsByType('blip')) do
		if getElementDimension(b) == getElementDimension(player) and getElementInterior(b) == getElementInterior(player) then
			local elementAttached =  getElementAttachedTo ( b )
			if elementAttached ~= player then
				local ex, ey, ez = getElementPosition(b)				
				local blipX = (3000+ex) / 6000 * mapSize
				local blipY = (3000-ey) / 6000 * mapSize
				blipX = blipX + mapPosX + self.x
				blipY = blipY + mapPosY + self.y
				
				
				if blipX < self.x then blipX = self.x end
				if blipX > self.x + self.w then blipX = self.x + self.w end
				if blipY < self.y then blipY = self.y end
				if blipY > self.y + self.h then blipY = self.y + self.h end
				
				local blipIcon = getBlipIcon(b)
				local rr,gg,bb,aa = 255,255,255,255
				local blipSize = self.blipSize

				if (elementAttached) and (getElementType(elementAttached) == "vehicle") then
					blipSize = blipSize / 2
					aa = 200
				end
				local blipIcon = getBlipIcon(b)
				if blipIcon == 0 then
					rr, gg, bb, aa = getBlipColor(b)
				end
				local img = self.blips[blipIcon]
				if (elementAttached) and (getElementType(elementAttached) == "player") then
					img = self.blips[0]
					blipSize = blipSize / 1.6
				end
				dxDrawImage(blipX-blipSize/2, blipY-blipSize/2, blipSize, blipSize, img,0,0,0,tocolor(rr,gg,bb,aa))
			end
		end
	end
end

function Map:draw2()
	dxSetRenderTarget(self.renderTarget, true)
		
	local player = getLocalPlayer()
	local centerX = (self.x) + (self.w/2)
	local centerY = (self.y) + (self.h/2)
	local pr = getPedRotation(player)
	local mapSize = 3000 / (self.drawRange/180)
		local _, _, camRotZ = getElementRotation(getCamera())
	
	if getKeyState("num_add") then
		if self.drawRange > 120 then
			self.drawRange = self.drawRange - 8
		end
	elseif getKeyState("num_sub") then
		if self.drawRange < 660 then
			self.drawRange = self.drawRange + 8
		end
	end
		self.posX, self.posY, self.posZ = getElementPosition(player)
		local playerX, playerY, playerZ = getElementPosition(player)
		
		local mapPosX, mapPosY = -(math.map(self.posX+3000,0,6000,0,mapSize)-self.w/2), -(math.map(-self.posY + 3000, 0, 6000, 0, mapSize)-self.h/2)
		
		
		
		
	    -----------------------------------------------------------------------------------------------------
		-- draw map
		
		local cx,cy,_,tx,ty = getCameraMatrix()
		local north = findRotation(cx,cy,tx,ty)
		dxDrawRectangle(0,0,self.w,self.h,tocolor(0,120,210))
		dxDrawImage(mapPosX, mapPosY, mapSize, mapSize, self.map, north, -mapSize/2 - mapPosX +  self.w/2, -mapSize/2 - mapPosY + self.h/2, tocolor(255,255,255))
		
		
		
		
		-----------------------------------------------------------------------------------------------------
		-- draw wanted level effect
		
			if getPlayerWantedLevel(player) > 0 then
				if not old then
					old = getTickCount()
					wR,wG,wB = 0,0,255
				end 
				current = getTickCount ()
				if current-old > 1500 then
					old = getTickCount()
					if wR == 255 then
						wR,wG,wB = 0,100,255
					else
						wR,wG,wB = 255,0,0
					end
				end
				dxDrawRectangle(0, 0, self.w, self.h,tocolor(wR,wG,wB,100))
			end
		
		
		
		    -----------------------------------------------------------------------------------------------------
		    -- draw radar areas
				
				for i, area in ipairs (getElementsByType("radararea")) do
					local ex, ey = getElementPosition(area)
					local w, h = getRadarAreaSize(area)
					local areaX = (3000+ex) / 6000 * mapSize
					local areaY = (3000-ey) / 6000 * mapSize
					local scaledW = w / 6000*mapSize
					local scaledH = -(h / 6000*mapSize)
					areaX = areaX + mapPosX
					areaY = areaY + mapPosY
					local rr, gg, bb, alpha = 255,255,255,255
					rr, gg, bb, alpha = getRadarAreaColor(area)

					if (isRadarAreaFlashing(area)) then
						alpha = alpha*math.abs(getTickCount()%1000-500)/500
					end
					dxSetBlendMode("modulate_add")
					dxDrawImage(areaX, areaY, scaledW, scaledH,self.blips[1], north, -scaledW/2 - areaX +  self.w/2, -scaledH/2 - areaY + self.h/2,tocolor(rr,gg,bb,alpha))
					dxSetBlendMode("blend")
				end
				
				
				
				
				
		 -----------------------------------------------------------------------------------------------------
		 -- draw blips
		 
			for i, b in ipairs (getElementsByType('blip')) do
			if getElementDimension(b) == getElementDimension(player) and getElementInterior(b) == getElementInterior(player) then
				local elementAttached =  getElementAttachedTo ( b )
				if elementAttached ~= player then
					local ex, ey, ez = getElementPosition(b)				
					local blipIcon = getBlipIcon(b)
					local rr,gg,bb,aa = 255,255,255,255
					local blipSize = self.blipSize
					
					local blipX, blipY = getRadarFromWorldPosition(ex,ey,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize)

		
					if (elementAttached) and (getElementType(elementAttached) == "vehicle") then
						blipSize = blipSize / 2
						aa = 200
					end
					local blipIcon = getBlipIcon(b)
					if blipIcon == 0 then
						rr, gg, bb, aa = getBlipColor(b)
					end
					local img = self.blips[blipIcon]
					if (elementAttached) and (getElementType(elementAttached) == "player") then
						img = self.blips[0]
						blipSize = blipSize / 1.6
					end
					dxDrawImage(blipX-blipSize/2, blipY-blipSize/2, blipSize, blipSize,img, 0,0,0,tocolor(rr,gg,bb,aa))
					
				if (elementAttached) and (getElementType(elementAttached) == "player") and getPedOccupiedVehicle(elementAttached) and getVehicleType(getPedOccupiedVehicle(elementAttached)) == "Helicopter" then	
					dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/H.png",north-getPedRotation(elementAttached))
					dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/HR.png",getTickCount()%360)
				end
				end
			end
		end
		
		
		
		
		-----------------------------------------------------------------------------------------------------
		-- draw arrow local
		
		local b = self.blipSize
		local ex,ey = getElementPosition(player)
		local blipX = (3000+ex) / 6000 * mapSize
		local blipY = (3000-ey) / 6000 * mapSize
		blipX = blipX + mapPosX
		blipY = blipY + mapPosY
		
		if getPedOccupiedVehicle(player) and getVehicleType(getPedOccupiedVehicle(player)) == "Helicopter" then
			dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/H.png",north-pr)
			dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/HR.png",getTickCount()%360)
		else
			dxDrawImage(blipX-x*23/2, blipY-y*25/2,x*23,y*25, self.blips[2], north-pr,0,0,tocolor(255,255,255,255))	
		end
			
	dxSetRenderTarget()	
	
	
	
	
	
	-----------------------------------------------------------------------------------------------------
	-- draw render target
	
	if getElementInterior(player) == 0 then
		dxDrawImage(self.x, self.y, self.w, self.h, self.renderTarget,0,0,0,tocolor(unpack(self.color)))
	else
		dxDrawImage(self.x, self.y, self.w, self.h, "images/lostc.png")
	end
	
	
	
	
	
    -----------------------------------------------------------------------------------------------------
	-- draw damage effect
	
	for k, v in ipairs(Map.damageEfect) do
		v[3] = v[3] - (getTickCount() - v[1]) / 800 
		if v[3] <= 0 then
			table.remove(Map.damageEfect, k)
		else
			dxDrawImage(self.x, self.y, self.w, self.h, "images/mapred.png", 0, 0, 0, tocolor(255, 255, 255, v[3]))
		end		
	end
	
	dxDrawImage(self.x-x*5, self.y-y*26, self.w+x*10, self.h+y*32, "images/mapbg.png",0,0,0,tocolor(unpack(self.color)))	
	local zinColor = getKeyState("num_add") and tocolor(255,255,255,self.color[4]) or tocolor(172,211,115,self.color[4])
	dxDrawImage(self.x+x*272, self.y-y*22,x*17,y*17, "images/zin.png",0,0,0,zinColor)
	local zoutColor = getKeyState("num_sub") and tocolor(255,255,255,self.color[4]) or tocolor(172,211,115,self.color[4])
	dxDrawImage(self.x+x*296, self.y-y*22,x*17,y*17, "images/zout.png",0,0,0,zoutColor)
	local zoneText = getElementInterior(player) == 0 and "#acd373GPS: #FFFFFF"..getZoneName(playerX,playerY,playerZ) or "#acd373GPS:"
	dxDrawText(zoneText,self.x+x*32,self.y-y*24, x*100, y*100, tocolor(unpack(self.color)), x*0.6, font,"left","top",false,false,false,true)
end

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 getPointAway(x, y, angle, dist)
        local a = -math.rad(angle)
        dist = dist / 57.295779513082
        return x + (dist * math.deg(math.sin(a))), y + (dist * math.deg(math.cos(a)))
end
 
function getRadarFromWorldPosition(bx, by, x, y, w, h, scaledMapSize)
	local RadarX, RadarY = x + w/2, y + h/2
	local RadarD = getDistanceBetweenPoints2D(RadarX, RadarY, x, y)
	local px, py = getElementPosition(localPlayer)
	local _, _, crz = getElementRotation(getCamera())
	local dist = getDistanceBetweenPoints2D(px, py, bx, by)
	if dist > RadarD * 6000/scaledMapSize then
		dist = RadarD * 6000/scaledMapSize
	end
	local rot = 180 - findRotation(px, py, bx, by) + crz
	local ax, ay = getPointAway(RadarX, RadarY, rot, dist * scaledMapSize/6000)
	return ax, ay
end

function onClientPlayerDamage(attacker, weapon, _, bodypart)
	local part = attacker and getElementType(attacker) == "player" and getPedWeaponSlot(attacker) and getPedWeaponSlot(attacker) or false	
	if attacker and attacker ~= source and not (part == 8 or (part == 7 and weapon ~= 38)) then
		Map.damageEfect[#Map.damageEfect + 1] = {getTickCount(), 0, math.min(25.5 * bodypart, 255)}
	else
		Map.damageEfect[#Map.damageEfect + 1] = {getTickCount(), 0, math.min(20 * bodypart, 255)}
	end
	if #Map.damageEfect > 18 then
		repeat
			table.remove(Map.damageEfect, 1)
		until #Map.damageEfect < 18
	end
end
addEventHandler("onClientPlayerDamage", localPlayer,onClientPlayerDamage)

local screenW, screenH = guiGetScreenSize()

function DXGUI()
	local playerHealth = (getElementHealth(localPlayer)) --// Variavel obtendo a vida do Player
	--// DX-DRAW
	dxDrawRectangle(screenW * 0.0150, screenH * 0.9833, screenW * 0.1272 / 110* playerHealth, screenH * 0.0113, tocolor(172, 211, 115), false) --// Barra que exibe a vida do player;
end
addEventHandler("onClientRender", root, DXGUI)	

só falta colocar a barra do colete e oxigênio ali no final, mas quando coloco desaparece o radar do mta...o objetivo é colocar colete vida e oxigênio de baixo do radar

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...