SA-MP Forums Archive
Timer for fuel decreasing - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Timer for fuel decreasing (/showthread.php?tid=451145)



Timer for fuel decreasing - _Khaled_ - 16.07.2013

forward FuelUpdate();

pawn Код:
//Under OnGameModeInIt()
    SetTimer("FuelUpdate",10000,1);

    for(new i = 1;i<MAX_VEHICLES;i++)
    {
        VehicleFuel[i] = 50+random(50);
    }
//OnVEhicleSpawn
public OnVehicleSpawn(vehicleid)
{
    VehicleFuel[vehicleid] = 50+random(50);
    return 1;
}

//Updates
public SpeedoUpdate()
{
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
        {
            new Float:x,Float:y,Float:z,Float:hp,string[24],vehicleid = GetPlayerVehicleID(i);
            TextDrawShowForPlayer(i,Speed1[i]);
            TextDrawShowForPlayer(i,Speed2[i]);
            TextDrawShowForPlayer(i,Speed3[i]);
            TextDrawShowForPlayer(i,Speed4[i]);
            TextDrawShowForPlayer(i,Speed5[i]);
            GetVehicleVelocity(vehicleid,x,y,z);
            GetVehicleHealth(vehicleid,hp);  
            format(string,sizeof(string),"Vehicle: %s",aVehicleNames[GetVehicleModel(vehicleid) - 400]);
            TextDrawSetString(Speed2[i],string);
            format(string,sizeof(string),"Speed: %d MPH",floatround(floatsqroot(((x*x)+(y*y))+(z*z))*156.666667));
            TextDrawSetString(Speed3[i],string);
            format(string,sizeof(string),"Fuel: %dL",VehicleFuel[vehicleid]);
            TextDrawSetString(Speed4[i],string);
            format(string,sizeof(string),"Health: %d",floatround(hp));
            TextDrawSetString(Speed5[i],string);
        }
        if(!IsPlayerInAnyVehicle(i))
        {
            TextDrawHideForPlayer(i,Speed1[i]);
            TextDrawHideForPlayer(i,Speed2[i]);
            TextDrawHideForPlayer(i,Speed3[i]);
            TextDrawHideForPlayer(i,Speed4[i]);
            TextDrawHideForPlayer(i,Speed5[i]);
        }
    }
}

public FuelUpdate()
{
    for(new i = 1;i<MAX_VEHICLES;i++)
    {
        if(GetVehicleModel(i))
        {
            new engine,lights,alarm,doors,bonnet,boot,objective;
            GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
            if(engine == 1)
            {
                if(VehicleFuel[i] > 0) VehicleFuel[i]--;
                else SetVehicleParamsEx(i,0,lights,alarm,doors,bonnet,boot,objective);
            }
        }
    }
}
PROBLEM: Fuel isn't decreasing.


Re: Timer for fuel decreasing - _Khaled_ - 16.07.2013

Bump


Re: Timer for fuel decreasing - DobbysGamertag - 16.07.2013

In my fuel script. I use

pawn Код:
public FuelLower(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerSpeed(playerid) >= 1)
    {
        Fuel[vehicleid] = Fuel[vehicleid] -1;
    }
        return 1;

}
Not too sure if it helps you though. You may want to add

pawn Код:
if(VehicleFuel[i] < 0) VehicleFuel[i] = 0;
So it can't go below 0.


Re: Timer for fuel decreasing - RajatPawar - 17.07.2013

You check "GetVehicleModel" wrong. It returns an integer value (the vehicle model or 0 if not existing), while you are checking it for boolean values! (true/false)
So, this:
pawn Код:
public FuelUpdate()
{
    for(new i = 1;i<MAX_VEHICLES;i++)
    {
        if(GetVehicleModel(i))
        {
should be:
pawn Код:
public FuelUpdate()
{
    for(new i = 1;i<MAX_VEHICLES;i++)
    {
        if(GetVehicleModel(i) != 0) // or if(GetVehicleModel(i) > 400 && GetVehicleModel(i) < 611)
        {