freakk Posted April 27, 2012 Share Posted April 27, 2012 hello I tried to create a button to the fuel system because the real system load standing in the marker fuel p1 = createMarker (1878.9757080078,1811.5299072266,12.743692398071, "cylinder", 5, 0, 255, 0, 100) WindowP = guiCreateWindow(150, 300, 300, 200, "Gas", false ) ButtonP2 = guiCreateButton(25,50,250,50,"Buy Fuel",false,WindowP) ButtonP1 = guiCreateButton(25,150,250,50,"Accept",false,WindowP) function closePaysapray() guiSetVisible(WindowP, false) showCursor(false) end function onEnterPns (player) if player == getLocalPlayer() then guiSetVisible(WindowP, true) showCursor(true) end end addEvent("onGasRefill",true) function setUp(startedResource) if(startedResource == getThisResource()) then oX,oY,oZ = getElementPosition(getLocalPlayer()) fBar = guiCreateProgressBar(598,158,154,25,false) fLabel = guiCreateLabel(615,140,155,25,"Fuel:",false) setTimer(fuelDepleting,500,0) distance = 0 distanceOld = 0 end end addEventHandler("onClientResourceStart",getRootElement(),setUp) function drawFuelBar() fBar = guiCreateProgressBar(598,158,154,25,false) guiSetVisible(fBar,false) end addEventHandler("onClientPlayerJoin",getRootElement(),drawFuelBar) function monitoring() if(isPedInVehicle(getLocalPlayer())) then vehicle = getPedOccupiedVehicle(getLocalPlayer()) x,y,z = getElementPosition(getLocalPlayer()) distance = distance + getDistanceBetweenPoints3D(x,y,z,oX,oY,oZ) oX = x oY = y oZ = z end end addEventHandler("onClientRender",getRootElement(),monitoring) function fuelDepleting() if(isPedInVehicle(getLocalPlayer())) then vehicle = getPedOccupiedVehicle(getLocalPlayer()) guiSetVisible(fBar,true) if(getElementData(vehicle,"fuel") == false) then fuel = math.random(85,100) setElementData(vehicle,"fuel",tonumber(fuel)) end currentFuel = tonumber(getElementData(vehicle,"fuel")) if(currentFuel > 0) then setElementData(vehicle,"fuel",tostring(currentFuel - math.floor(distance - distanceOld)/200)) currentFuel = tonumber(getElementData(vehicle,"fuel")) guiProgressBarSetProgress(fBar,currentFuel) guiSetText(fLabel,"Fuel: " .. math.floor(currentFuel) .. "%") distanceOld = distance else toggleControl("accelerate",false) toggleControl("brake_reverse",false) guiSetText(fLabel,"No fuel") end else guiSetText(fLabel,"") guiProgressBarSetProgress(fBar,0) guiSetVisible(fBar,false) end end function setFuel(player,seat,jacked) if(getElementData(vehicle,"fuel") == false) then fuel = math.random(70,100) setElementData(source,"fuel",tonumber(fuel)) end end addEventHandler("onClientVehicleEnter",getRootElement(),setFuel) function setFuelOnRespawn() local fuel = math.random(70,100) setElementData(source,"fuel",tonumber(fuel)) end addEventHandler("onClientVehicleRespawn",getRootElement(),setFuelOnRespawn) function enableDriving(player,seat) toggleControl("accelerate",true) toggleControl("brake_reverse",true) end addEventHandler("onClientVehicleExit",getRootElement(),enableDriving) function refillGas() takePlayerMoney(400) if(isPedInVehicle(getLocalPlayer()) and isPlayer) then local vehicle = getPedOccupiedVehicle(getLocalPlayer()) setElementData(vehicle,"fuel","100") toggleControl("accelerate",true) toggleControl("brake_reverse",true) end end addCommandHandler("refill",refillGas) function setTimerRefillGas(enabled) --if(isPlayerInVehicle(getLocalPlayer())) then --if(enabled == true) then -- refillTimer = setTimer(timerRefillGas,10,0) --else -- killTimer(timerRefillGas) --end --else --outputChatBox("You have to be in vehicle to refill!") setElementData(vehicle,"fuel",tostring(100)) --end end addEventHandler("onGasRefill",getRootElement(),setTimerRefillGas) function timerRefillGas() if(isPedInVehicle(getLocalPlayer())) then local player = getLocalPlayer() local vehicle = getPedOccupiedVehicle(player) local fuel = getElementData(vehicle,"fuel") if(tonumber(fuel) < 100) then setElementData(vehicle,"fuel",100) --setElementData(vehicle,"fuel",tostring(fuel + 1)) distanceOld = distance end end end addEventHandler( "onClientGUIClick", ButtonP1, closePaysapray ) addEventHandler( "onClientGUIClick", ButtonP2, refillGas ) addEventHandler( "onClientMarkerHit", p1, onEnterPns ) errors: the button isn't works. the gui appear open when you connect in the server Link to comment
Sparrow Posted April 27, 2012 Share Posted April 27, 2012 add guiSetVisible(WindowP, false) Link to comment
freakk Posted April 27, 2012 Author Share Posted April 27, 2012 guiSetVisible(WindowP, false) it works but not the button "buy fuel" Link to comment
DNL291 Posted April 27, 2012 Share Posted April 27, 2012 p1 = createMarker (1878.9757080078,1811.5299072266,12.743692398071, "cylinder", 5, 0, 255, 0, 100) WindowP = guiCreateWindow(150, 300, 300, 200, "Gas", false ) guiSetVisible(WindowP, false) ButtonP2 = guiCreateButton(25,50,250,50,"Buy Fuel",false,WindowP) ButtonP1 = guiCreateButton(25,150,250,50,"Accept",false,WindowP) function closePaysapray() guiSetVisible(WindowP, false) showCursor(false) end function onEnterPns (player) if ( isPedInVehicle(localPlayer) ) then guiSetVisible(WindowP, true) showCursor(true) elseif not ( isPedInVehicle(localPlayer) ) then guiSetVisible(WindowP, false) showCursor(false) end end addEvent("onGasRefill",true) function setUp(startedResource) if(startedResource == getThisResource()) then oX,oY,oZ = getElementPosition(getLocalPlayer()) fBar = guiCreateProgressBar(598,158,154,25,false) fLabel = guiCreateLabel(615,140,155,25,"Fuel:",false) setTimer(fuelDepleting,500,0) distance = 0 distanceOld = 0 end end addEventHandler("onClientResourceStart",getRootElement(),setUp) function drawFuelBar() fBar = guiCreateProgressBar(598,158,154,25,false) guiSetVisible(fBar,false) end addEventHandler("onClientPlayerJoin",getRootElement(),drawFuelBar) function monitoring() if(isPedInVehicle(getLocalPlayer())) then vehicle = getPedOccupiedVehicle(getLocalPlayer()) x,y,z = getElementPosition(getLocalPlayer()) distance = distance + getDistanceBetweenPoints3D(x,y,z,oX,oY,oZ) oX = x oY = y oZ = z end end addEventHandler("onClientRender",getRootElement(),monitoring) function fuelDepleting() if(isPedInVehicle(getLocalPlayer())) then vehicle = getPedOccupiedVehicle(getLocalPlayer()) guiSetVisible(fBar,true) if(getElementData(vehicle,"fuel") == false) then fuel = math.random(85,100) setElementData(vehicle,"fuel",tonumber(fuel)) end currentFuel = tonumber(getElementData(vehicle,"fuel")) if(currentFuel > 0) then setElementData(vehicle,"fuel",tostring(currentFuel - math.floor(distance - distanceOld)/200)) currentFuel = tonumber(getElementData(vehicle,"fuel")) guiProgressBarSetProgress(fBar,currentFuel) guiSetText(fLabel,"Fuel: " .. math.floor(currentFuel) .. "%") distanceOld = distance else toggleControl("accelerate",false) toggleControl("brake_reverse",false) guiSetText(fLabel,"No fuel") end else guiSetText(fLabel,"") guiProgressBarSetProgress(fBar,0) guiSetVisible(fBar,false) end end function setFuel(player,seat,jacked) if(getElementData(vehicle,"fuel") == false) then fuel = math.random(70,100) setElementData(source,"fuel",tonumber(fuel)) end end addEventHandler("onClientVehicleEnter",getRootElement(),setFuel) function setFuelOnRespawn() local fuel = math.random(70,100) setElementData(source,"fuel",tonumber(fuel)) end addEventHandler("onClientVehicleRespawn",getRootElement(),setFuelOnRespawn) function enableDriving(player,seat) toggleControl("accelerate",true) toggleControl("brake_reverse",true) end addEventHandler("onClientVehicleExit",getRootElement(),enableDriving) local timer function refillGas() takePlayerMoney(400) if ( isPedInVehicle(getLocalPlayer()) ) then local vehicle = getPedOccupiedVehicle(getLocalPlayer()) timer = setTimer(setVehicleFuel, 650, 0) toggleControl("accelerate",true) toggleControl("brake_reverse",true) end end addCommandHandler("refill",refillGas) function _killTimer() if ( isTimer(timer) ) then killTimer(timer) end end addEventHandler("onClientMarkerLeave", p1, _killTimer) addEventHandler("onClientPlayerWasted", _killTimer) function setVehicleFuel() setElementData(vehicle, "fuel", getElementData(vehicle, "fuel")+2) if ( tonumber(getElementData(vehicle, "fuel")) >= 100 ) and ( isTimer(timer) ) then killTimer(timer) end if ( tonumber(getElementData(vehicle, "fuel")) > 100 ) then setElementData(vehicle, "fuel", 100) end end function setTimerRefillGas(enabled) --if(isPlayerInVehicle(getLocalPlayer())) then --if(enabled == true) then -- refillTimer = setTimer(timerRefillGas,10,0) --else -- killTimer(timerRefillGas) --end --else --outputChatBox("You have to be in vehicle to refill!") setElementData(vehicle,"fuel",tostring(100)) --end end addEventHandler("onGasRefill",getRootElement(),setTimerRefillGas) function timerRefillGas() if(isPedInVehicle(getLocalPlayer())) then local player = getLocalPlayer() local vehicle = getPedOccupiedVehicle(player) local fuel = getElementData(vehicle,"fuel") if(tonumber(fuel) < 100) then setElementData(vehicle,"fuel",100) --setElementData(vehicle,"fuel",tostring(fuel + 1)) distanceOld = distance end end end addEventHandler( "onClientGUIClick", ButtonP1, closePaysapray ) addEventHandler( "onClientGUIClick", ButtonP2, refillGas ) addEventHandler( "onClientMarkerHit", p1, onEnterPns ) addEventHandler("onClientMarkerLeave", p1, closePaysapray) addEventHandler("onClientPlayerWasted", closePaysapray) Link to comment
freakk Posted April 28, 2012 Author Share Posted April 28, 2012 tanx now a ultimate problem when the player haven't money the fuel is refilled and the money becomes negative. How to cancel it? Link to comment
Castillo Posted April 28, 2012 Share Posted April 28, 2012 1: Taking the money client side won't really take it, because it won't sync it with the server. 2: You must use triggerServerEvent to trigger a server side event. 3: You must use getPlayerMoney to check if the player has the money, before taking it. 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