Timer for fuel decreasing
#1

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.
Reply
#2

Bump
Reply
#3

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.
Reply
#4

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)
        {
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)