Why does this not work please
#1

How comes when im out of a vehicle and the engine is on the fuel does not go down

pawn Код:
public timer_fuel_lower()
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    for(new i=0;i<MAX_PLAYERS;i++) { //loop for all players
        new PlayerVehicle = GetVehicleFileID(GetPlayerVehicleID(i));
        if (isrefuelling[i]) continue; //stop when a player is already refuelling
        new vid = GetPlayerVehicleID(i); //getting vehicle ID
        if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 1 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group]) { //if the player is a driver (it should only lower the fuel when theres an driver!)
            fuel[vid] = fuel[vid] -1; //lowering fuel value
            if (fuel[vid]<1) //if fuel is empty
            {
                GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
                fuel[vid] = 0; //setting fuel to 0 (else the timer will set it to -1 -2 -3 etc before removing player)
                SetVehicleParamsEx(vid, 0, lights, alarm, doors, bonnet, boot, 0);
                SendClientMessage(i, WHITE, "This vehicle is out of fuel");
            }
        }
        new string[125];format(string,sizeof string,"Fuel:%i",fuel[vid]); //preparing string with next fuel value
        TextDrawSetString(td_fuel[i],string); //updating textdraw
    }
    for(new veh = 0; veh < MAX_VEHICLES; veh ++)
    {
          if(EngineOn[veh] == 1 && !DoesVehHaveDriver(veh))
          {
                fuel[veh] --;
          }
     }
    return 1;
}
Thank You
Reply
#2

pawn Код:
if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 1 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group])
to

pawn Код:
if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 0 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group])
Reply
#3

You are finding vehicle id by new PlayerVehicle = GetVehicleFileID(GetPlayerVehicleID(i));
So when player leave car PlayerVehicle is equal to 0.
Reply
#4

Quote:
Originally Posted by Romel
Посмотреть сообщение
pawn Код:
if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 1 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group])
to

pawn Код:
if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 0 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group])
Then the fuel wont go down when im in the car..

Thank You
Reply
#5

Quote:
Originally Posted by Azazelo
Посмотреть сообщение
You are finding vehicle id by new PlayerVehicle = GetVehicleFileID(GetPlayerVehicleID(i));
So when player leave car PlayerVehicle is equal to 0.

I think this is a problem.
But when the engine is off and i get out of the car the fuel does down
Reply
#6

pawn Код:
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective)
if(engine == 0)
{
   fuel[Veh] == Fuel[Veh]
}
or

pawn Код:
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective)
if(engine == 0) return 1;
Reply
#7

Quote:
Originally Posted by JhnzRep
Посмотреть сообщение
pawn Код:
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective)
if(engine == 0)
{
   fuel[Veh] == Fuel[Veh]
}
or

pawn Код:
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective)
if(engine == 0) return 1;
Will that work even if im outside of the car

Thank You
Reply
#8

It should..
Reply
#9

Please i am so confused please just help me where would i put it so when im not in the car and engine is on the fuel will go down

pawn Код:
public timer_fuel_lower()
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    for(new i=0;i<MAX_PLAYERS;i++) { //loop for all players
        new PlayerVehicle = GetVehicleFileID(GetPlayerVehicleID(i));
        if (isrefuelling[i]) continue; //stop when a player is already refuelling
        new vid = GetPlayerVehicleID(i); //getting vehicle ID
        if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 1 || !DoesVehHaveDriver(i) && EngineOn[vid] == 1 || IsPlayerInHotWiredCar == 1 || Vehicles[PlayerVehicle][CarGroup] >= 0 && Vehicles[PlayerVehicle][CarGroup] == Player[i][Group]) { //if the player is a driver (it should only lower the fuel when theres an driver!)
            fuel[vid] = fuel[vid] -1; //lowering fuel value
            if (fuel[vid]<1) //if fuel is empty
            {
                GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
                fuel[vid] = 0; //setting fuel to 0 (else the timer will set it to -1 -2 -3 etc before removing player)
                SetVehicleParamsEx(vid, 0, lights, alarm, doors, bonnet, boot, 0);
                SendClientMessage(i, WHITE, "This vehicle is out of fuel");
            }
        }
        new string[125];format(string,sizeof string,"Fuel:%i",fuel[vid]); //preparing string with next fuel value
        TextDrawSetString(td_fuel[i],string); //updating textdraw
    }
    return 1;
}
Thank You
Reply
#10

pawn Код:
public timer_fuel_lower()
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    for(new i=0;i<MAX_Vehicles;i++)
    {
        GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
        if(engine == 1)
        {
            fuel[i] -= 1;
        }
    }
    return 1;
}
Edit:

Then you can make a function to show the player the current fuel

pawn Код:
public ShowGas()
{
    new str[15];
    new engine, lights, alarm, doors, bonnet, boot, objective;
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            if(fuel[GetPlayerVehicleID(i)] == 0)
            {
                GetVehicleParamsEx(GetPlayerVehicleID(i), engine, lights, alarm, doors, nonnet, boot, objective);
                SendClientMessage(i, -1, "Your car ran out of fuel!");
                SetVehicleParamsEx(GetPlayerVehicleID(i),  0,  lights, alarm, doors, bonnet, boot, objective);
            }    
            format(str, sizeof(str), "Fuel:%i",  fuel[GetPlayerVehicleID(i)]);
            GameTextForPlayer(i, str, 3000, 3);
        }

}
Should do it.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)