local scx,scy = guiGetScreenSize()
local px = scx/1920
local sizeX,sizeY = 350*px,350*px
local posX,posY = scx-sizeX,scy-sizeY
local font1 = dxCreateFont( "files/AEROMATICSBOLD.ttf",17*px )
local font2 = dxCreateFont( "files/AEROMATICSBOLDITALIC.ttf" )
local font3 = dxCreateFont( "files/AEROMATICSITALIC.ttf",50*px )
local font4 = dxCreateFont( "files/AEROMATICSITALIC.ttf",18*px )
function math.lerp(a, b, k)
local result = a * (1-k) + b * k
if result >= b then
result = b
elseif result <= a then
result = a
end
return result
end
local alpha = 255
local side = true
local pulsing = true
function drawSpeedometer()
local veh = getPedOccupiedVehicle(localPlayer)
if veh then
local speedx, speedy, speedz = getElementVelocity ( veh )
local actualspeed = (speedx^2 + speedy^2 + speedz^2)^(0.5)
local kmh = math.floor(actualspeed * 180)
local rotation = math.lerp(-152,90,kmh/300)
if rotation >= 90 then rotation = math.random(88,92) end
local paliwo = getElementData(veh,"vehicle:fuel") or 100 -- Переменная топлива
local fuel = math.floor(paliwo)
local fuelmax = 100 -- Объём бака
local rotation2 = math.lerp(-150,90,fuel/fuelmax)
if rotation2 <= -125 then pulsing = true else pulsing = false end
local gear = getVehicleCurrentGear( veh )
if gear == 0 then
if kmh <= 1 then
gear = "N"
else
gear = "R"
end
elseif gear == 1 then
if kmh <= 2 then
gear = "N"
end
end
dxDrawText(gear,posX,posY,posX+sizeX,posY+sizeY,tocolor(0,100,100),1,font1,"center","center")
dxDrawText(kmh,posX+60*px,posY+250*px,posX+sizeX,posY+250*px,tocolor(255,255,255),1,font3,"center","center")
dxDrawImage(posX,posY,sizeX,sizeY,"files/Spedo.png")
dxDrawImage(posX,posY,sizeX,sizeY,"files/strelkaspedo.png",rotation) -- -150 to 90
if pulsing then
if side then alpha = alpha + 5 else alpha = alpha -5 end
if alpha <= 0 then side = true elseif alpha >= 255 then side = false end
dxDrawImage(posX-200*px,posY+100*px,sizeX,sizeY,"files/benz2.png",0,0,0,tocolor(200,0,0,alpha))
end
dxDrawImage(posX-200*px,posY+100*px,sizeX,sizeY,"files/benz.png")
dxDrawImage(posX-200*px,posY+100*px,sizeX,sizeY,"files/strelkabenz.png",rotation2) -- -150 to 90
dxDrawText(fuel.."/"..fuelmax.."L ",posX,posY+310*px,posX+30*px,posY+310*px,tocolor(255,255,255),1,font4,"center","center")
dxDrawText(math.floor(getElementData(veh, "vehicle:mileage")).." KM",posX+300,posY+310*px,posX+30*px,posY+310*px,tocolor(255,255,255),1,font4,"center","center")
if getVehicleEngineState( veh ) then
dxDrawImage(posX-100*px,posY-140*px,512*px,512*px,"files/engine.png",0,0,0,tocolor(200,0,0))
else
dxDrawImage(posX-100*px,posY-140*px,512*px,512*px,"files/engine.png",0,0,0,tocolor(255,255,255))
end
if getVehicleOverrideLights( veh ) == 2 then
dxDrawImage(posX-60*px,posY-140*px,512*px,512*px,"files/light.png",0,0,0,tocolor(200,0,0))
elseif getVehicleOverrideLights( veh ) == 1 then
dxDrawImage(posX-60*px,posY-140*px,512*px,512*px,"files/light.png",0,0,0,tocolor(255,255,255))
else
local h,m = getTime()
if h >= 7 and h <= 21 then
dxDrawImage(posX-60*px,posY-140*px,512*px,512*px,"files/light.png",0,0,0,tocolor(255,255,255))
else
dxDrawImage(posX-60*px,posY-140*px,512*px,512*px,"files/light.png",0,0,0,tocolor(200,0,0))
end
end
if isVehicleLocked(veh) then
dxDrawImage(posX-20*px,posY-120*px,512*px,512*px,"files/lock.png",0,0,0,tocolor(200,0,0))
else
dxDrawImage(posX-20*px,posY-120*px,512*px,512*px,"files/lock.png",0,0,0,tocolor(255,255,255))
end
if ccEnabled then
dxDrawImage(posX-140*px,posY-120*px,512*px,512*px,"files/kruiz.png",0,0,0,tocolor(200,0,0))
else
dxDrawImage(posX-140*px,posY-120*px,512*px,512*px,"files/kruiz.png",0,0,0,tocolor(255,255,255))
end
end
end
addEventHandler("onClientRender",root,drawSpeedometer)