if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 2 && TransportDuty[i] > 0) { if(GetPlayerCash(playerid) < TransportValue[i]) { new string[28]; format(string, sizeof(string), "* You need $%d to enter.", TransportValue[i]); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string); //RemovePlayerFromVehicle(playerid); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); SetPlayerPos(playerid, X, Y, Z+2); TogglePlayerControllable(playerid, 1); } else { new string[64]; if(TransportDuty[i] == 1) { format(string, sizeof(string), "* You paid $%d to the Taxi Driver.", TransportValue[i]); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Passenger %s has entered your Taxi.", GetPlayerNameEx(playerid)); SendClientMessageEx(i, COLOR_LIGHTBLUE, string); TransportTime[i] = 1; TransportTime[playerid] = 1; TransportCost[playerid] = TransportValue[i]; TransportCost[i] = TransportValue[i]; TransportDriver[playerid] = i; } else if(TransportDuty[i] == 2) { format(string, sizeof(string), "* You paid $%d to the Taxi Driver.", TransportValue[i]); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Passenger %s has entered your Taxi.", GetPlayerNameEx(playerid)); SendClientMessageEx(i, COLOR_LIGHTBLUE, string); } GivePlayerCash(playerid, -TransportValue[i]); TransportMoney[i] += TransportValue[i]; }
Can't you fix this bug in the lines which i give? Because its a lot of work to put a new system on the GM.
|
stock IsVehicleTaxi(vehicleid) {
switch (GetVehicleModel(vehicleid)) {
case 420,438 : return true;
}
return false;
}
forward OnPlayerEnteredTaxi(playerid, vehicleid);
public OnPlayerEnteredTaxi(playerid, vehicleid)
{
new
msg[256],
name[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, name, sizeof(name));
format(msg, sizeof(msg), "Taxi: %s(%d) entered in taxi %d", name, playerid, vehicleid);
SendClientMessageToAll(-1, msg);
return true;
}
forward OnPlayerExitedTaxi(playerid, vehicleid);
public OnPlayerExitedTaxi(playerid, vehicleid)
{
new
msg[256],
name[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, name, sizeof(name));
format(msg, sizeof(msg), "Taxi: %s(%d) exited in taxi %d", name, playerid, vehicleid);
SendClientMessageToAll(-1, msg);
return true;
}
public OnPlayerUpdate(playerid)
{
static
p_vehicleid[MAX_PLAYERS]
;
new vehicleid = GetPlayerVehicleID(playerid);
if (vehicleid && vehicleid != p_vehicleid[playerid]) {
if (IsVehicleTaxi(vehicleid)) {
OnPlayerEnteredTaxi(playerid, vehicleid);
}
p_vehicleid[playerid] = vehicleid;
} else {
if (IsVehicleTaxi(p_vehicleid[playerid])) {
OnPlayerExitedTaxi(playerid, p_vehicleid[playerid]);
}
p_vehicleid[playerid] = vehicleid;
}
return 1;
}