local sx, sy = guiGetScreenSize()
m = 1
select = false
local time=getTickCount()
local function naliczaj(veh)
if getTickCount()-time>5000 then
time = getTickCount()
local fuel = getElementData(veh, "vehicle:fuel") or 0
local mileage = getElementData(veh,"vehicle:mileage") or 0
local vx,vy,vz = getElementVelocity(veh)
local spd=((vx^2 + vy^2 + vz^2)^(0.5)/2)
if spd>0 then
fuel = fuel-(spd*2)/3
if not getElementData(veh, "vehicle:lpgon") then
setElementData(veh, "vehicle:fuel", fuel)
end
mileage = mileage+(spd)
setElementData(veh, "vehicle:mileage", mileage)
end
end
end
addCommandHandler("nadajlpgtemuswietemuautu", function()
setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:lpgfuel", 50)
end)
function renderStacji()
if not getPedOccupiedVehicle(localPlayer) then
removeEventHandler("onClientRender", root, renderStacji)
removeEventHandler("onClientClick", root, clickStacja)
showCursor(false)
end
if m == 1 then
dxDrawImage(sx * 0.35, sy * 0.4, sx * 0.3, sy * 0.2, "data/background.png")
if isMouseInPosition(sx * 0.45, sy * 0.47, sx * 0.04, sx * 0.04) then
dxDrawImage(sx * 0.45, sy * 0.47, sx * 0.04, sx * 0.04, "data/LPG.png")
else
dxDrawImage(sx * 0.45, sy * 0.47, sx * 0.04, sx * 0.04, "data/LPG.png", 0, 0, 0, tocolor(255, 255, 255, 155))
end
if isMouseInPosition(sx * 0.51, sy * 0.47, sx * 0.04, sx * 0.04) then
dxDrawImage(sx * 0.51, sy * 0.47, sx * 0.04, sx * 0.04, "data/PB.png")
else
dxDrawImage(sx * 0.51, sy * 0.47, sx * 0.04, sx * 0.04, "data/PB.png", 0, 0, 0, tocolor(255, 255, 255, 155))
end
else
dxDrawImage(sx * 0.3, sy * 0.35, sx * 0.4, sy * 0.3, "data/background.png")
if select == "lpg" then
fuel = getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:lpgfuel")
if getKeyState("space") then
if fuel < 100 and getPlayerMoney(localPlayer) > 1 then
fuel = math.min(fuel + 0.1, 100)
triggerServerEvent("zabierzHajs", localPlayer, 1)
end
setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:lpgfuel", fuel)
end
else
fuel = getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:fuel")
if getKeyState("space") then
if fuel < 100 and getPlayerMoney(localPlayer) > 1 then
fuel = math.min(fuel + 0.1, 100)
triggerServerEvent("zabierzHajs", localPlayer, 1)
end
setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:fuel", fuel)
end
end
dxDrawText("Stan paliwa", sx/2, sy * 0.46, sx/2, sy * 0.46, white, 1, "default-bold", "center", "center")
dxDrawRectangle(sx * 0.4, sy * 0.475, (sx * 0.2) * 1, sy * 0.05, tocolor(0, 0, 0, 155))
dxDrawRectangle(sx * 0.4, sy * 0.475, (sx * 0.2) * (fuel / 100), sy * 0.05, tocolor(0, 153, 255))
dxDrawText("Przytrzymaj spacj?™ aby zatankowa?‡", sx/2, sy * 0.62, sx/2, sy * 0.62, white, 1, "default-bold", "center", "center")
end
end
local lastPos = {0, 0, 0}
local tick = getTickCount()
addEventHandler("onClientRender", root, function()
local v = getPedOccupiedVehicle(localPlayer)
if not v then return end
local fuel = getElementData(v, "vehicle:lpgfuel")
if getElementData(v, "vehicle:lpgon") then
if tick > getTickCount() then return end
tick = getTickCount() + 1000
local x, y, z = getElementPosition(v)
local dist = getDistanceBetweenPoints3D(x, y, z, unpack(lastPos))
local fuel = math.max(fuel - dist/1000, 0)
setElementData(v, "vehicle:lpgfuel", fuel)
lastPos = {x, y, z}
end
local vehicle = getPedOccupiedVehicle(localPlayer)
if not vehicle then return end
if not getVehicleEngineState(vehicle) then return end
if getElementData(vehicle,"vehicle:fuel") and getElementData(vehicle,"vehicle:fuel") or getElementData(vehicle,"vehicle:mileage") and getElementData(vehicle,"vehicle:mileage") then
naliczaj(vehicle)
if getElementData(vehicle,"vehicle:fuel")<1 then
setVehicleEngineState(vehicle, false)
end
end
end)
addEventHandler("onClientRender", root, function()
local vehicle = getPedOccupiedVehicle(localPlayer)
if not vehicle then return end
if not getVehicleEngineState(vehicle) then return end
if getElementData(vehicle,"vehicle:lpgfuel") and getElementData(vehicle,"vehicle:lpgfuel") then
naliczaj(vehicle)
if getElementData(vehicle,"vehicle:lpgon") ~= false then
if getElementData(vehicle,"vehicle:lpgfuel")<1 then
setVehicleEngineState(vehicle, false)
--outputChatBox("* Butla LPG jest pusta.")
outputChatBox("#00ccff(?) #FFFFFFButla LPG jest pusta.",255,255,255,true)
end
end
end
end)
function clickStacja(btn, state)
if btn == "left" and state == "down" then
if isMouseInPosition(sx * 0.45, sy * 0.47, sx * 0.04, sx * 0.04) then
local lpg = getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:lpgfuel")
if not lpg then
triggerEvent( "onClientAddNotification", localPlayer, "Nie posiadasz zamontowanego LPG", "info" )
else
m = 2
select = "lpg"
end
end
if isMouseInPosition(sx * 0.51, sy * 0.47, sx * 0.04, sx * 0.04) then
m = 2
select = "pb"
end
end
end
addEventHandler("onClientResourceStart", resourceRoot, function()
for k,v in pairs(stacje) do
local marker = createMarker(v[1], v[2], v[3]-1, "cylinder", 3, 0, 255, 255)
blipStacji = createBlipAttachedTo ( marker, 56 )
setBlipVisibleDistance(blipStacji, 350)
addEventHandler("onClientMarkerHit", marker, function(hit)
if hit ~= localPlayer then return end
if not getPedOccupiedVehicle(localPlayer) then return end
addEventHandler("onClientRender", root, renderStacji)
addEventHandler("onClientClick", root, clickStacja)
showCursor(true, false)
m = 1
end)
addEventHandler("onClientMarkerLeave", marker, function(hit)
if hit ~= localPlayer then return end
removeEventHandler("onClientRender", root, renderStacji)
removeEventHandler("onClientClick", root, clickStacja)
showCursor(false)
end)
end
end)
function isMouseInPosition ( x, y, width, height )
if ( not isCursorShowing( ) ) then
return false
end
local sx, sy = guiGetScreenSize ( )
local cx, cy = getCursorPosition ( )
local cx, cy = ( cx * sx ), ( cy * sy )
return ( ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) )
end
nawet kiedy b?dzie 0 w bazie, ustawi Ci element dat? - wtedy lpg b?dzie dzia?a? i wykrywa? jako obecne.
Musisz przerobi? to, aby r?wna?o si? konkretnej warto?ci (1 czy tam co? innego).
Zastosowa? inny warunek sprawdzaj?cy - bardziej sprecyzowany, kt?ry por?wna konkretne dane do konkretnej warto?ci (if x == y then), a nie tylko stan (if x then).
local lpg = vehicle["lpg"]
if lpg == 0 then
setElementData(veh,"vehicle:fuel", vehicle["fuel"])
end
local lpg2 = vehicle["lpg"]
if lpg2 == 1 then
setElementData(veh,"vehicle:lpgfuel", vehicle["lpg"])
setElementData(veh,"vehicle:lpg", vehicle["lpg2"])
end
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach