Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-08-18, 18:16


Dixers

No-Life






Wiek: 26
Na forum: 4312 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

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,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") == falsethen
            fuel math.random(85,100)
            setElementData(vehicle,"fuel",tonumber(fuel))
        end
        currentFuel tonumber(getElementData(vehicle,"fuel"))
        if(currentFuel 0then
            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") == falsethen
        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 isPlayerthen
        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) < 100then
        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 !

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-18, 21:57


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

function setFuel(player,seat,jacked)
    if(getElementData(vehicle,"fuel") == falsethen
        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.

Podpis

https://shufflecode.pl
Static Codes and Graphics - Join our discord!
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-18, 22:11


Dixers

No-Life






Wiek: 26
Na forum: 4312 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

PanMaszyna, a to co poda?e? jest ju? poprawione, czy nie? Je?li nie, prosz? Ci? bardzo, aby? by? tak dobry i poprawi?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-19, 12:24


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

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

Postaw piwo autorowi tego posta
 

 
Tagi: paliwo
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku