Cacaroto Posted August 29, 2019 Share Posted August 29, 2019 (edited) So I was scripting a HUD and almost everything is fine (everything okay for local player), but when a player die I want to show up in the HUD the car stats of the vehicle im spectating but it doesn't work, here i post the code: function drawSpeedo() if isPedInVehicle(getLocalPlayer()) or isPedInVehicle(getVehicleOccupant(getCameraTarget(localPlayer))) then if isPedDead(localPlayer) then specHealth = getElementHealth(getCameraTarget(localPlayer)) sHealth = (math.max(specHealth - 250, 0)/750)*100 colorR = sHealth > 50 and (255/100)*(100 - sHealth*2) + 255 or 255 colorG = sHealth > 50 and 255 or (255/100)*(sHealth*2) sx, sy, sz = getElementVelocity (getCameraTarget(localPlayer)) spectSpeed = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) dxDrawText(spectSpeed.." km/h", (1680/1920)*sX, (940/1080)*sY, (1804/1920)*sX, (966/1080)*sY, tocolor(255, 255, 255, 255), (1/1920)*sX, font, "center", "top", false, false, false, false, false) dxDrawRectangle((1620/1920)*sX, (990/1080)*sY, (((specHealth/10)*2.5)/1920)*sX, (7/1080)*sY, tocolor(colorR, colorG, 0, 255), false) dxDrawCircle (((1620+(specHealth/10)*2.5)/1920)*sX, (993/1080)*sY, 7, 0, 360, tocolor(colorR, colorG, 0, 255), tocolor(colorR, colorG, 0, 255), 32, 1, false) nitro = getVehicleUpgradeOnSlot(getCameraTarget(localPlayer), 8 ) nosLevel = getVehicleNitroLevel(getCameraTarget(localPlayer))*100 or 0 nosColor = isVehicleNitroActivated(getCameraTarget(localPlayer)) and colorTable[ "using" ] or isVehicleNitroRecharging(getCameraTarget(localPlayer)) and colorTable[ "chargin" ] or colorTable[ "stock" ] dxDrawRectangle((1620/1920)*sX, (1020/1080)*sY, (((nosLevel*250)/100)/1920)*sX, (7/1080)*sY, nosColor, false) dxDrawCircle (((1620+(nosLevel*2.5))/1920)*sX, (1023/1080)*sY, 7, 0, 360, nosColor, nosColor, 32, 1, false) else vehHealth = getElementHealth(getPedOccupiedVehicle(localPlayer)) health = (math.max(vehHealth - 250, 0)/750)*100 colorR = health > 50 and (255/100)*(100 - health*2) + 255 or 255 colorG = health > 50 and 255 or (255/100)*(health*2) sx, sy, sz = getElementVelocity (getPedOccupiedVehicle(getLocalPlayer())) vehSpeed = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) dxDrawText(vehSpeed.." km/h", (1680/1920)*sX, (940/1080)*sY, (1804/1920)*sX, (966/1080)*sY, tocolor(255, 255, 255, 255), (1/1920)*sX, font, "center", "top", false, false, false, false, false) dxDrawRectangle((1620/1920)*sX, (990/1080)*sY, (((vehHealth/10)*2.5)/1920)*sX, (7/1080)*sY, tocolor(colorR, colorG, 0, 255), false) dxDrawCircle (((1620+(vehHealth/10)*2.5)/1920)*sX, (993/1080)*sY, 7, 0, 360, tocolor(colorR, colorG, 0, 255), tocolor(colorR, colorG, 0, 255), 32, 1, false) nitro = getVehicleUpgradeOnSlot(getPedOccupiedVehicle(localPlayer), 8 ) nosLevel = getVehicleNitroLevel(getPedOccupiedVehicle(localPlayer))*100 or 0 nosColor = isVehicleNitroActivated(getPedOccupiedVehicle(localPlayer)) and colorTable[ "using" ] or isVehicleNitroRecharging( getPedOccupiedVehicle(getLocalPlayer()) ) and colorTable[ "chargin" ] or colorTable[ "stock" ] dxDrawRectangle((1620/1920)*sX, (1020/1080)*sY, (((nosLevel*250)/100)/1920)*sX, (7/1080)*sY, nosColor, false) dxDrawCircle (((1620+(nosLevel*2.5))/1920)*sX, (1023/1080)*sY, 7, 0, 360, nosColor, nosColor, 32, 1, false) end end end addEventHandler("onClientRender", root, drawSpeedo) Edited August 29, 2019 by Cacaroto Link to comment
RekZ Posted August 29, 2019 Share Posted August 29, 2019 (edited) function drawSpeedo() if isPedDead(localPlayer) then Player = getCameraTarget () else Player = localPlayer end if isPedInVehicle(Player) then veh = getPedOccupiedVehicle(Player) if isElement(veh) then specHealth = getElementHealth(veh) sHealth = (math.max(specHealth - 250, 0)/750)*100 colorR = sHealth > 50 and (255/100)*(100 - sHealth*2) + 255 or 255 colorG = sHealth > 50 and 255 or (255/100)*(sHealth*2) sx, sy, sz = getElementVelocity (veh) spectSpeed = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) dxDrawText(spectSpeed.." km/h", (1680/1920)*sX, (940/1080)*sY, (1804/1920)*sX, (966/1080)*sY, tocolor(255, 255, 255, 255), (1/1920)*sX, font, "center", "top", false, false, false, false, false) dxDrawRectangle((1620/1920)*sX, (990/1080)*sY, (((specHealth/10)*2.5)/1920)*sX, (7/1080)*sY, tocolor(colorR, colorG, 0, 255), false) dxDrawCircle (((1620+(specHealth/10)*2.5)/1920)*sX, (993/1080)*sY, 7, 0, 360, tocolor(colorR, colorG, 0, 255), tocolor(colorR, colorG, 0, 255), 32, 1, false) if getVehicleUpgradeOnSlot(veh, 8 ) then nosLevel = getVehicleNitroLevel(veh)*100 or 0 nosColor = isVehicleNitroActivated(veh) and colorTable[ "using" ] or isVehicleNitroRecharging(veh) and colorTable[ "chargin" ] or colorTable[ "stock" ] dxDrawRectangle((1620/1920)*sX, (1020/1080)*sY, (((nosLevel*250)/100)/1920)*sX, (7/1080)*sY, nosColor, false) dxDrawCircle (((1620+(nosLevel*2.5))/1920)*sX, (1023/1080)*sY, 7, 0, 360, nosColor, nosColor, 32, 1, false) end end end end addEventHandler("onClientRender", root, drawSpeedo) I dont test it but i think is cool Edited August 29, 2019 by RekZ Link to comment
Cacaroto Posted August 29, 2019 Author Share Posted August 29, 2019 Doesn't work, I still have the same output in the debug https://gyazo.com/478e7d84d0468b00246b8b3b76b8c7fe Link to comment
RekZ Posted August 29, 2019 Share Posted August 29, 2019 function drawSpeedo() if isPedDead(localPlayer) then Player = getCameraTarget() else Player = localPlayer end if isElement(Player) then if isPedInVehicle(Player) then veh = getPedOccupiedVehicle(Player) if isElement(veh) then specHealth = getElementHealth(veh) sHealth = (math.max(specHealth - 250, 0)/750)*100 colorR = sHealth > 50 and (255/100)*(100 - sHealth*2) + 255 or 255 colorG = sHealth > 50 and 255 or (255/100)*(sHealth*2) sx, sy, sz = getElementVelocity (veh) spectSpeed = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) dxDrawText(spectSpeed.." km/h", (1680/1920)*sX, (940/1080)*sY, (1804/1920)*sX, (966/1080)*sY, tocolor(255, 255, 255, 255), (1/1920)*sX, font, "center", "top", false, false, false, false, false) dxDrawRectangle((1620/1920)*sX, (990/1080)*sY, (((specHealth/10)*2.5)/1920)*sX, (7/1080)*sY, tocolor(colorR, colorG, 0, 255), false) dxDrawCircle (((1620+(specHealth/10)*2.5)/1920)*sX, (993/1080)*sY, 7, 0, 360, tocolor(colorR, colorG, 0, 255), tocolor(colorR, colorG, 0, 255), 32, 1, false) if getVehicleUpgradeOnSlot(veh, 8 ) then nosLevel = ( (getVehicleNitroLevel(veh) or 0) *100 ) nosColor = (isVehicleNitroActivated(veh) and colorTable[ "using" ]) or (isVehicleNitroRecharging(veh) and (colorTable[ "chargin" ] or colorTable[ "stock" ]) ) --nosColor = tocolor(255, 255, 255, 255) dxDrawRectangle((1620/1920)*sX, (1020/1080)*sY, (((nosLevel*250)/100)/1920)*sX, (7/1080)*sY, nosColor, false) dxDrawCircle (((1620+(nosLevel*2.5))/1920)*sX, (1023/1080)*sY, 7, 0, 360, nosColor, nosColor, 32, 1, false) end end end end end addEventHandler("onClientRender", root, drawSpeedo) Test it now, for me work fine, i test it in my server Link to comment
RekZ Posted August 29, 2019 Share Posted August 29, 2019 (edited) function drawSpeedo() if ( getCameraTarget() or isPedDead(localPlayer) ) then Spect = getCameraTarget() else Spect = getPedOccupiedVehicle(localPlayer) end if isElement(Spect) and getElementType(Spect) == "vehicle" then specHealth = getElementHealth(Spect) sHealth = (math.max(specHealth - 250, 0)/750)*100 colorR = sHealth > 50 and (255/100)*(100 - sHealth*2) + 255 or 255 colorG = sHealth > 50 and 255 or (255/100)*(sHealth*2) sx, sy, sz = getElementVelocity (Spect) spectSpeed = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) dxDrawText(spectSpeed.." km/h", (1680/1920)*sX, (940/1080)*sY, (1804/1920)*sX, (966/1080)*sY, tocolor(255, 255, 255, 255), (1/1920)*sX, font, "center", "top", false, false, false, false, false) dxDrawRectangle((1620/1920)*sX, (990/1080)*sY, (((specHealth/10)*2.5)/1920)*sX, (7/1080)*sY, tocolor(colorR, colorG, 0, 255), false) dxDrawCircle (((1620+(specHealth/10)*2.5)/1920)*sX, (993/1080)*sY, 7, 0, 360, tocolor(colorR, colorG, 0, 255), tocolor(colorR, colorG, 0, 255), 32, 1, false) if getVehicleUpgradeOnSlot(Spect,8) then nosLevel = ( (getVehicleNitroLevel(Spect) or 0) *100 ) nosColor = (isVehicleNitroActivated(Spect) and colorTable[ "using" ]) or (isVehicleNitroRecharging(Spect) and (colorTable[ "chargin" ] or colorTable[ "stock" ]) ) --nosColor = tocolor(255, 255, 255, 255) dxDrawRectangle((1620/1920)*sX, (1020/1080)*sY, (((nosLevel*250)/100)/1920)*sX, (7/1080)*sY, nosColor, false) dxDrawCircle (((1620+(nosLevel*2.5))/1920)*sX, (1023/1080)*sY, 7, 0, 360, nosColor, nosColor, 32, 1, false) end end end addEventHandler("onClientRender", getRootElement(), drawSpeedo) Sorry i remember the race dont spect the player, spect the vehicle now yes is functional Edited August 29, 2019 by RekZ Link to comment
Cacaroto Posted August 29, 2019 Author Share Posted August 29, 2019 (edited) Thanks so much! It works really fine! But there's a problem with nos, when a player pickups the nos the bar doesnt appear until he uses it, i don't know how to fix it Edited August 29, 2019 by Cacaroto Link to comment
Cacaroto Posted August 29, 2019 Author Share Posted August 29, 2019 Okay, I fixed it, thanks man! 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