Taxi Fare
#1

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
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;
    }
} 
Command
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;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)