So when player gets into taxi it updates fare each second or faster, like if your fare is $25 after few seconds if will be thousand
PHP код:
stock ChargePerson(playerid)
{
new string[128];
if(GetPlayerMoney(playerid) < TaxiMoney[playerid])
{
format(string,sizeof(string),"%s doesn't have enough money to pay for the TAXI.",GetPlayerNameEx(playerid));
SendClientMessage(GetVehicleDriver(OldVehicle[playerid]), COLOR_WHITE, string);
TaxiMade[GetVehicleDriver(OldVehicle[playerid])] -= TaxiMoney[playerid];
TaxiMoney[playerid] = 0;
}
else
{
format(string, sizeof(string), "[TAXI]: The final taxi fare has got to, $%d.", TaxiMoney[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
GivePlayerCash(playerid, -TaxiMoney[playerid]);
GivePlayerCash(GetVehicleDriver(OldVehicle[playerid]), TaxiMoney[playerid]);
TaxiMade[GetVehicleDriver(OldVehicle[playerid])] -= TaxiMoney[playerid];
TaxiMoney[playerid] = 0;
}
}
PHP код:
CMD:taxi(playerid, params[])
{
new string[128];
new choice[11], secoption;
new giveplayerid;
new vehicle = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pMember] == 10||PlayerInfo[playerid][pLeader] == 10|| PlayerInfo[playerid][pJob] == 17 || PlayerInfo[playerid][pJob2] == 17 || PlayerInfo[playerid][pTaxiLicense] == 1)
{
if(sscanf(params,"s[11]D(-1)", choice, secoption))
{
SendClientMessage(playerid,-1, "/taxi [option]");
SendClientMessageEx(playerid, COLOR_GREY, "Options: | duty | start | stop | fare | accept |");
return 1;
}
if(strcmp(choice, "duty", true) == 0)
{
if(!IsDriver(playerid)) return SendClientMessageEx(playerid, COLOR_GREY, "You must be inside a Taxi/Cabbie as a driver.");
if(!IsATaxi(vehicle)) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "You must be inside a Taxi/Cabbie.");
if(TaxiDuty{playerid})
{
SendClientMessageEx(playerid, COLOR_YELLOW, "[TAXI]: You are now OFF duty taxi and won't recieve calls.");
SetPlayerToTeamColor(playerid);
TaxiDuty{playerid} = false;
TaxiMade[playerid] = 0;
}
else
{
SendClientMessageEx(playerid, COLOR_YELLOW, "[TAXI]: You are now ON duty taxi and will recieve calls.");
SetPlayerToTeamColor(playerid);
TaxiDuty{playerid} = true;
TaxiMade[playerid] = 0;
}
}
else if(strcmp(choice, "start", true) == 0)
{
if(!IsDriver(playerid)) return SendClientMessageEx(playerid, COLOR_GREY, "You must be inside a Taxi/Cabbie as a driver.");
if(!IsATaxi(vehicle)) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "You must be inside a Taxi/Cabbie.");
if(!TaxiDuty{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "You are not on duty.");
if(TaxiFare{playerid} == 0) return SendClientMessageEx(playerid, COLOR_GREY, "You haven't set a fare yet, /taxi fare ($1-$25)");
if(TaxiStart{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "Your taxi fare has already started.");
SendClientMessageEx(playerid, COLOR_YELLOW, "[TAXI]: Your taxi fare has started and charging all people inside your vehicle.");
TaxiStart{playerid} = true;
}
else if(strcmp(choice, "fare", true) == 0)
{
new fare;
if(!IsDriver(playerid)) return SendClientMessageEx(playerid, COLOR_GREY, "You must be inside a Taxi/Cabbie as a driver.");
if(!IsATaxi(vehicle)) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "You must be inside a Taxi/Cabbie.");
if(sscanf(params,"{s[11]}d",fare)) return SendClientMessageEx(playerid, COLOR_WHITE, "/taxi fare [amount]");
if(!TaxiDuty{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "You are not on duty.");
if(fare < 1 || fare > 25) return SendClientMessageEx(playerid, COLOR_GREY, "There is a limit for taxi fare, ($1-$25).");
format(string, sizeof(string), "[TAXI]: You have changed your taxi fare to $%d.", fare);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
TaxiFare{playerid} = fare;
}
else if(strcmp(choice, "accept", true) == 0)
{
new id;
if(!IsDriver(playerid)) return SendClientMessageEx(playerid, COLOR_GREY, "You must be inside a Taxi/Cabbie as a driver.");
if(!IsATaxi(vehicle)) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "You must be inside a Taxi/Cabbie.");
if(sscanf(params,"{s[11]}d",id)) return SendClientMessageEx(playerid, COLOR_WHITE, "/taxi accept [playerid]");
if(!TaxiDuty{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "You are not on duty.");
if(!IsPlayerConnected(giveplayerid)) return Error(playerid, "That player is not online!");
if(GetPVarInt(id, "NeedTaxi") == 0) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "This player hasn't requested any taxi.");
format(string, sizeof(string), "* %s has accepted your taxi call, he charges $%d per second!", GetPlayerNameEx(playerid), TaxiFare{playerid});
SendClientMessageEx(id, COLOR_YELLOW, string);
format(string, sizeof(string), "* You have accepted %s taxi call.", GetPlayerNameEx(id));
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
else if(strcmp(choice, "stop", true) == 0)
{
if(!IsDriver(playerid)) return SendClientMessageEx(playerid, COLOR_GREY, "You must be inside a Taxi/Cabbie as a driver.");
if(!IsATaxi(vehicle)) return SendClientMessageEx(playerid, COLOR_LIGHTRED, "You must be inside a Taxi/Cabbie.");
if(!TaxiDuty{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "You are not on duty.");
if(!TaxiStart{playerid}) return SendClientMessageEx(playerid, COLOR_GREY, "Your taxi fare is not started.");
SendClientMessageEx(playerid, COLOR_YELLOW, "[TAXI]: Your taxi fare has stopped and charges all people inside.");
format(string, sizeof(string), "[TAXI]: The final fare of your taxi has reached to, $%d.", TaxiMade[playerid]);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
foreach(Player, i)
{
if(PlayerInCar(i) && GetPlayerState(i) != PLAYER_STATE_DRIVER && GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
ChargePerson(i);
}
}
TaxiStart{playerid} = false;
TaxiMade[playerid] = 0;
}
}
else
{
SendClientMessageEx(playerid,COLOR_GREY,"You're not a licensed taxi/bus driver!");
return 1;
}
return 1;
}