27.12.2013, 20:42
Here you go, Just improved/fixed it for you..
Note: I don't suggest using OnPlayerExitVehicle because :
1. OnPlayerEnterVehicle is called when a player starts to enter a vehicle, meaning the player is not in vehicle yet at the time this callback is called."
2. OnPlayerExitVehicle Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos.
And use OnPlayerStateChange instead
Another code using "OnPlayerStateChange"
pawn Код:
new Bar:tired[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
new TTired[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
tired[playerid] = CreateProgressBar(500.00, 103.00, 105.50, 4.50, -202116097, 100.0);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
ShowProgressBarForPlayer(playerid, tired[playerid]);
TTired[playerid] = SetTimerEx("Tired", 9000, true, "i", playerid);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
KillTimer(TTired[playerid]);
return 1;
}
forward Tired(playerid);
public Tired(playerid)
{
SetProgressBarValue(tired[playerid], GetProgressBarValue(tired[playerid])+1);
return 1;
}
1. OnPlayerEnterVehicle is called when a player starts to enter a vehicle, meaning the player is not in vehicle yet at the time this callback is called."
2. OnPlayerExitVehicle Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos.
And use OnPlayerStateChange instead
Another code using "OnPlayerStateChange"
pawn Код:
new Bar:tired[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
new TTired[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
tired[playerid] = CreateProgressBar(500.00, 103.00, 105.50, 4.50, -202116097, 100.0);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) // Player entered a vehicle as a driver or a passenger
{
ShowProgressBarForPlayer(playerid, tired[playerid]);
TTired[playerid] = SetTimerEx("Tired", 9000, true, "i", playerid);
}
else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) // Player Exited a vehicle and he was a driver or a passenger
{
KillTimer(TTired[playerid]);
}
return 1;
}
forward Tired(playerid);
public Tired(playerid)
{
SetProgressBarValue(tired[playerid], GetProgressBarValue(tired[playerid])+1);
return 1;
}