fuellessVehicle = { [510]=true, [509]=true, [481]=true }
enginelessVehicle = { [510]=true, [509]=true, [481]=true }
local active = true
local fuel = 100
local tiltva = false
function syncFuel(ifuel)
if not (ifuel) then
fuel = 100
else
fuel = ifuel
end
end
addEvent(\"syncFuel\", true)
addEventHandler(\"syncFuel\", getRootElement(), syncFuel)
function onVehicleEnter(thePlayer, seat)
if (thePlayer==getLocalPlayer()) then
if (seat==0) or (seat==1) then
local id = getElementModel(source)
if not (enginelessVehicle[id]) then
addEventHandler(\"onClientRender\", getRootElement(), drawSpeedo)
end
end
end
end
addEventHandler(\"onClientVehicleEnter\", getRootElement(), onVehicleEnter)
function onVehicleExit(thePlayer, seat)
if (thePlayer==getLocalPlayer()) then
if (seat==0) or (seat==1) then
local id = getElementModel(source)
if not(enginelessVehicle[id]) then
removeEventHandler(\"onClientRender\", getRootElement(), drawSpeedo)
if isTimer(csipogas) then
killTimer(csipogas)
end
if isTimer(csipogasTimer) then
killTimer(csipogasTimer)
end
end
end
end
end
addEventHandler(\"onClientVehicleStartExit\", getRootElement(), onVehicleExit)
addEventHandler(\"onClientVehicleExit\", getRootElement(), onVehicleExit)
function hideSpeedo()
removeEventHandler(\"onClientRender\", getRootElement(), drawSpeedo)
end
function showSpeedo()
source = getPedOccupiedVehicle(getLocalPlayer())
if source then
if getVehicleOccupant( source ) == getLocalPlayer() then
onVehicleEnter(getLocalPlayer(), 0)
elseif getVehicleOccupant( source, 1 ) == getLocalPlayer() then
onVehicleEnter(getLocalPlayer(), 1)
end
end
end
function updateOdometer( currentKilometers )
local currentKilometers = math.floor(currentKilometers/100)
local odoKM = string.format(\"%00d\", currentKilometers)
odometer = guiCreateLabel(0, 0, 0, 0, tostring(odoKM), true)
guiSetText(odometer, tostring(odoKM))
end
addEvent(\"updateOdo\", true)
addEventHandler(\"updateOdo\", getLocalPlayer(), updateOdometer)
function VehicleEnter ()
odometer = guiCreateLabel(0, 0, 0, 0, tostring(odoKM), true)
guiSetText(odometer, tostring(0))
end
addEventHandler(\"onClientVehicleEnter\", getRootElement(), VehicleEnter)
addEventHandler(\"onClientResourceStart\", getRootElement(), VehicleEnter)
Igen = false
function Enter ()
setTimer ( function()
Igen = true
end, 100, 1 )
end
function Exit ()
Igen = false
end
addEventHandler(\"onClientVehicleEnter\", getRootElement(), Enter)
addEventHandler(\"onClientVehicleExit\", getRootElement(), Exit)
local Font = dxCreateFont( \"DS-DIGI.ttf\", 12 )
local elozogear = 1
function drawSpeedo()
if active and not isPlayerMapVisible() then
local text = guiGetText ( odometer )
--if Igen == true then
local vehicle = getPedOccupiedVehicle(getLocalPlayer())
if (vehicle) then
speed = exports.global:getVehicleVelocity(vehicle)
local width, height = guiGetScreenSize()
local x = width
local y = height
-- local speedkmh = getElementSpeed(localPlayer, 1)
-- local kmh = math.floor(speedkmh) == speedkmh and speedkmh or string.format(speedkmh, \"%.1f\")
-- local sebesseg = kmh..\" km/h\"
local streetname = getElementData(getLocalPlayer(), \"speedo:street\" )
if streetname and getVehicleType(vehicle) ~= \"Boat\" and getVehicleType(vehicle) ~= \"Helicopter\" and getVehicleType(vehicle) ~= \"Plane\" then
local width = dxGetTextWidth( streetname )
local x = width < 200 and ( x - 110 - width / 2 ) or ( x - 10 - width )
dxDrawRectangle( x - 8, y - 296, width + 17, 24, tocolor( 5, 5, 5, 220 ) )
dxDrawText( streetname, x, y - 292 )
end
arany = 0.765
forgas = speed*arany
--dxDrawImage(x-422, y-386, 512, 512, \"disc.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawRectangle( x - 400, y - 100, 400, 69, tocolor( 5, 5, 5, 155 ) )
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/checkengine_med.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/handbrake_med.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/lowfuel_med.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawImage(x-260, y-330+4, 400, 380, \"speedo/lampa_be.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawImage(x-255, y-330+34, 369, 340, \"speedo/ajto_be.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
--dxDrawRectangle( x - 400, y - 100, 400, 69, tocolor( 5, 5, 5, 155 ) )
-- dxDrawText(sebesseg, x-422, y-386, 512, 512)
----------------------------------------------------------
sx, sy, sz = getElementVelocity (getPedOccupiedVehicle(localPlayer))
kmhs = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180) --Calculate speed
--dxDrawText(\"\"..tostring(kmhs)..\"\",10,540,758,364.0,tocolor(255,255,255,255),0.9,Digital,\"right\",\"top\",false,false,false) --Speedometer positsion
--dxDrawText ( tostring(kmhs)..\" km/h\",x-370, y-77.6,296.0,364.0,tocolor(255,255,255,255),1.6,\"default-bold\",\"left\",\"top\",false,false,false) --km/h
dxDrawText ( tostring(kmhs)..\" km/h\",x-370, y-88.6,296.0,364.0,tocolor(255,255,255,255),1.6,\"default-bold\",\"left\",\"top\",false,false,false) --km/h
----------------------------------------------------------
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/left_med.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/right_med.png\", 0, 0, 0, tocolor(255, 255, 255, 200))
if(getElementData(vehicle, \"i:right\")) then
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/right_med.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
if(getElementData(vehicle, \"i:left\")) then
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/left_med.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
local lights = getVehicleOverrideLights(vehicle)
if (lights==2) then
dxDrawImage(x-260, y-330+4, 400, 380, \"speedo/lampa_be.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
if isVehicleLocked(vehicle) then
dxDrawImage(x-255, y-330+34, 369, 340, \"speedo/ajto_be.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
if fuel < 11 then
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/lowfuel_med.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
if getElementHealth ( vehicle ) < 500 then
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/checkengine_med.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
if isElementFrozen ( vehicle ) == true then
dxDrawImage(x-400, y-330-10, 512, 512, \"speedo/handbrake_med.png\", 0, 0, 0, tocolor(0, 255, 255, 200))
end
speed = speed - 100
nx = x + math.sin(math.rad(-(speed)-150)) * 90
ny = y + math.cos(math.rad(-(speed)-150)) * 90
--if fuel > 99.9 then
fueltext = 100
--else
fueltext = math.floor(fuel)
--end
if fuel < 1.001 then
fueltext = 0
end
panelAdatok = {guiGetScreenSize()}
gear = getVehicleCurrentGear(vehicle)
--dxDrawText(gear, x-400, y-330-10, 100, 30, tocolor (255, 255, 255, 255), 1, \"sans\",\"left\",\"top\",false,false,true,true)
--dxDrawText(elozogear, panelAdatok[1]/2 + 20, panelAdatok[2]/2-30/2 - 144, 100, 30, tocolor (255, 255, 255, 255), 3, \"sans\",\"left\",\"top\",false,false,true,true)
--if text == text then
--test = test + (distance/1000) --math.floor ( text / 10 )
--outputChatBox ( test .. \" \" .. (text-(test*10)) )
--outputChatBox ( text - test )
--end
if isElementFrozen ( vehicle ) == true then
gearfelirat = \"P\"
elseif getVehicleEngineState(vehicle) == false then
gearfelirat = \"N\"
elseif gear >= 1 then
gearfelirat = gear
elseif gear == 0 then
gearfelirat = \"R\"
end
dxDrawText ( gearfelirat, x-350, y-65.6,296.0,364.0,tocolor(255,255,255,255),1.6,\"default-bold\",\"left\",\"top\",false,false,false) --km/h
csipogasTimer = setTimer(
function ()
if getPedOccupiedVehicle(getLocalPlayer()) then
local theVehID = getElementModel(vehicle)
luxusKocsikSipolas = luxusKocsik[theVehID]
if luxusKocsikSipolas then
bekapcsolva = getElementData(localPlayer, \"biztonsagiov\")
if bekapcsolva == 0 then
if not isTimer(csipogas) then
csipogas = setTimer(function()
ov_jelzes = playSound(\"ov_jelzes.mp3\")
setSoundVolume(ov_jelzes, 10)
setTimer(stopSound, 999, 1, ov_jelzes)
end,1000,0)
end
elseif isTimer(csipogas) then
killTimer(csipogas)
end
end
elseif isTimer(csipogas) then
killTimer(csipogas)
end
end, 100, 0)
dxDrawText( \"Benzin:\", (x*2) - 400, (y*2) - 165, 5, 5, tocolor (255,255,255, 255), 1, Font, \"center\", \"center\")
dxDrawText( fueltext..\"L/100L\", (x*2) - 400, (y*2) - 115, 5, 5, tocolor (255,255,255, 255), 1, Font, \"center\", \"center\")
dxDrawText( \"----------\", (x*2) - 400, (y*2) - 140, 5, 5, tocolor (255,255,255, 255), 1, Font, \"center\", \"center\")
--dxDrawImage(x-420, y-388, 512, 512, \"needle.png\", forgas, 0, 0, tocolor(255, 255, 255, 200))
--end
end
end
end
Sziasztok! Az a gondom hogy, mikor elindítom ezt a realism-systemet (Zero alapú szerveren) akkor egy maximálisan megítélésem szerint 5 percig bírja lagg nélkül, utána viszont orbitális módon elkezdek laggolni ha beszálok egy kocsiba és megjelenik a speedo. Valakinek valami ötlete? A hasznos válaszokat előre is nagyon szépen köszönöm!