30.09.2013, 13:08
Try avoiding timers wherever you can use GetTickCount/gettime instead. Change 5 to the seconds you want; for example, every 5 seconds a player can repair their vehicle.
EDIT: I improved something in OnPlayerKeyStateChange callback. In case you used the code I gave, replace it with the new one.
pawn Code:
new
Allow_Repair[ MAX_PLAYERS ]
;
public OnPlayerConnect( playerid )
{
Allow_Repair[ playerid ] = -1;
return 1;
}
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
if( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
{
if( ( newkeys & KEY_ANALOG_UP ) && !( oldkeys & KEY_ANALOG_UP ) )
{
if( Allow_Repair[ playerid ] == -1 || ( Allow_Repair[ playerid ] != -1 && ( gettime( ) - Allow_Repair[ playerid ] ) > 5 ) )
{
new
vehicleid = GetPlayerVehicleID( playerid )
;
SetVehicleHealth( vehicleid, 1000.0 );
RepairVehicle( vehicleid );
SendClientMessage( playerid, 0x800080FF, "[ Server ] Vehicle repaired." );
Allow_Repair[ playerid ] = gettime( );
}
}
}
return 1;
}