Wysłany: 2014-08-18, 18:16
Dixers
No-Life
Wiek: 26 Na forum: 4312 dni Posty: 549
Nick w MP: Dixers
Piwa : 412
Witam serdecznie. Mam taki skrypcik na paliwo. Dzia?a, lecz jest kilka problem?w, na kt?re sam nie dam rady sobie zaradzi?. Po pierwsze to chodzi o to, ?e paliwo po wej?ciu samochodu wynosi np. 50%, jednak jak wyjdziemy i wjedziemy jeszcze raz b?dzie inaczej, np. 86%. Chodzi o to ?e nie zapisuje si? stan paliwa w danym poje?dzie. To jest pierwsze problem z kt?rym nie mog? sobie poradzi?. Prosz? was o pomoc.
C-side:
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 , "Paliwo: " .. math . floor ( currentFuel ) .. "%" )
distanceOld = distance
else
toggleControl ( "accelerate" , false )
toggleControl ( "brake_reverse" , false )
guiSetText ( fLabel , "Brak paliwa" )
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 ()
if( isPedInVehicle ( getLocalPlayer ()) and isPlayer ) then
local vehicle = getPedOccupiedVehicle ( getLocalPlayer ())
setElementData ( vehicle , "fuel" , "100" )
outputChatBox ( "Refilled" )
toggleControl ( "accelerate" , true )
toggleControl ( "brake_reverse" , true )
end
end
addCommandHandler ( "refill" , refillGas )
function setTimerRefillGas ( enabled )
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 )
distanceOld = distance
end
end
end
S-side:
function onEnterRefillArea ( player , sDimension )
triggerClientEvent ( "onGasRefill" , getRootElement (), true )
end
addEventHandler ( "onMarkerHit" , getRootElement (), onEnterRefillArea )
function onExitRefillArea ( playerplayer , sDimension )
triggerClientEvent ( "onGasRefill" , getRootElement (), false )
end
addEventHandler ( "onMarkerLeave" , getRootElement (), onExitRefillArea )
Prosz? was o pomoc Czeka piwo, oraz reputacja +10 !
Wysłany: 2014-08-18, 21:57
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4394 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
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 )
Masz ustawione math.random czyli losowa warto?c paliwa.
Wysłany: 2014-08-18, 22:11
Dixers
No-Life
Wiek: 26 Na forum: 4312 dni Posty: 549
Nick w MP: Dixers
Piwa : 412
PanMaszyna , a to co poda?e? jest ju? poprawione, czy nie? Je?li nie, prosz? Ci? bardzo, aby? by? tak dobry i poprawi?.
Wysłany: 2014-08-19, 12:24
krydianero
Samotny Wilk
Wiek: 33 Na forum: 4783 dni Posty: 395
Nick w MP: Yoshida
Piwa : 1798
Dixers , to znaczy ?e wskaza? Ci gdzie jest b??d, polecenie math.random wybiera liczb? z 2 innych, w twoim przypadku od 70 do 100.
Poprawiony kod:
function setFuel ( player , seat , jacked )
local fuel = getElementData ( source , "fuel" )
if fuel theny
setElementData ( source , "fuel" , tonumber ( fuel ))
else
setElementData ( source , "fuel" , 100 )
end
end
addEventHandler ( "onClientVehicleEnter" , getRootElement (), setFuel )
Podpis
Multi Drive Unlimited:Nowy projekt już wkrótce
Tagi: paliwo
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: