05.03.2014, 19:57
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
Code
Command
Code
PHP код:
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(IsATaxi(i))
{
new driver = GetVehicleDriver(i);
if(driver != INVALID_PLAYER_ID)
{
if(TaxiDuty{driver} && TaxiStart{driver} && CountVehiclePlayers(i) > 0)
{
new string[128];
format(string, sizeof(string), "~y~TAXI FARE: $%d", TaxiMade[driver]);
GameTextForPlayer(driver, string, 1000, 6);
for(new p = 0; p < MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p) && PlayerInCar(p) && GetPlayerState(p) != PLAYER_STATE_DRIVER && GetPlayerVehicleID(p) == GetPlayerVehicleID(driver))
{
format(string, sizeof(string), "~y~TAXI FARE: $%d", TaxiMoney[p]);
GameTextForPlayer(p, string, 1000, 6);
TaxiMoney[p] += TaxiFare{driver};
TaxiMade[driver] += TaxiFare{driver};
}
}
}
}
}
}
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;
}

