02.02.2013, 09:38
Your IsVehicleDriver needs fix - it should return player id:
I renamed it for clarity
now for the main part of code:
Try this
I renamed it for clarity
pawn Код:
forward GetVehicleDriverId(vehicleid);
(...)
public GetVehicleDriverId(vehicleid)
{
for(new pid=0;pid<=MAX_PLAYERS;pid++)
{
if(IsPlayerInVehicle(pid, vehicleid) && GetPlayerState(pid) == PLAYER_STATE_DRIVER) return pid;
}
return INVALID_PLAYER_ID;
}
pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(IsATaxi(vehicleid))
{
new s[180], taxiDriverId = GetVehicleDriverId(vehicleid);
//Do not trigger action for driver
if(playerid == taxiDriverId) return 1;
GivePlayerMoney(taxiDriverId , PlayerFare[taxiDriverId]);
GivePlayerMoney(playerid, -PlayerFare[taxiDriverId]);
format(s,sizeof(s),"You've exited the taxi and paid $%d.", PlayerFare[taxiDriverId]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, s);
format(s,sizeof(s),"%s has exited your taxi. You've received $%d.", GetName(playerid), PlayerFare[taxiDriverId]);
SendClientMessage(taxiDriverId, COLOR_LIGHTBLUE, s);
}
return 1;
}

