SA-MP Forums Archive
Taxi Fare - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Taxi Fare (/showthread.php?tid=498941)



Taxi Fare - FaZeRs - 05.03.2014

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 0MAX_VEHICLESi++)
    {
        if(
IsATaxi(i))
        {
            new 
driver GetVehicleDriver(i);
            if(
driver != INVALID_PLAYER_ID)
            {
                if(
TaxiDuty{driver} && TaxiStart{driver} && CountVehiclePlayers(i) > 0)
                {
                    new 
string[128];
                    
format(stringsizeof(string), "~y~TAXI FARE: $%d"TaxiMade[driver]);
                    
GameTextForPlayer(driverstring10006);
                    for(new 
0MAX_PLAYERSp++)
                    {
                        if(
IsPlayerConnected(p) && PlayerInCar(p) && GetPlayerState(p) != PLAYER_STATE_DRIVER && GetPlayerVehicleID(p) == GetPlayerVehicleID(driver))
                        {
                            
format(stringsizeof(string), "~y~TAXI FARE: $%d"TaxiMoney[p]);
                            
GameTextForPlayer(pstring10006);
                            
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_WHITEstring);
        
TaxiMade[GetVehicleDriver(OldVehicle[playerid])] -= TaxiMoney[playerid];
        
TaxiMoney[playerid] = 0;
    }
    else
    {
        
format(stringsizeof(string), "[TAXI]: The final taxi fare has got to, $%d."TaxiMoney[playerid]);
        
SendClientMessage(playeridCOLOR_YELLOWstring);
        
GivePlayerCash(playerid, -TaxiMoney[playerid]);
        
GivePlayerCash(GetVehicleDriver(OldVehicle[playerid]), TaxiMoney[playerid]);
        
TaxiMade[GetVehicleDriver(OldVehicle[playerid])] -= TaxiMoney[playerid];
        
TaxiMoney[playerid] = 0;
    }

Command
PHP код:
CMD:taxi(playeridparams[])
{
    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)"choicesecoption))
    {
        
SendClientMessage(playerid,-1"/taxi [option]"); 
        
SendClientMessageEx(playeridCOLOR_GREY"Options: | duty | start | stop | fare | accept |");
        return 
1;
    }
    if(
strcmp(choice"duty"true) == 0)
    {
        if(!
IsDriver(playerid)) return SendClientMessageEx(playeridCOLOR_GREY"You must be inside a Taxi/Cabbie as a driver.");
        if(!
IsATaxi(vehicle)) return SendClientMessageEx(playeridCOLOR_LIGHTRED"You must be inside a Taxi/Cabbie.");
        if(
TaxiDuty{playerid})
        {
            
SendClientMessageEx(playeridCOLOR_YELLOW"[TAXI]: You are now OFF duty taxi and won't recieve calls.");
            
SetPlayerToTeamColor(playerid);
            
TaxiDuty{playerid} = false;
            
TaxiMade[playerid] = 0;
        }
        else
        {
            
SendClientMessageEx(playeridCOLOR_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(playeridCOLOR_GREY"You must be inside a Taxi/Cabbie as a driver.");
        if(!
IsATaxi(vehicle)) return SendClientMessageEx(playeridCOLOR_LIGHTRED"You must be inside a Taxi/Cabbie.");
        if(!
TaxiDuty{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"You are not on duty.");
        if(
TaxiFare{playerid} == 0) return SendClientMessageEx(playeridCOLOR_GREY"You haven't set a fare yet, /taxi fare ($1-$25)");
        if(
TaxiStart{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"Your taxi fare has already started.");
        
SendClientMessageEx(playeridCOLOR_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(playeridCOLOR_GREY"You must be inside a Taxi/Cabbie as a driver.");
        if(!
IsATaxi(vehicle)) return SendClientMessageEx(playeridCOLOR_LIGHTRED"You must be inside a Taxi/Cabbie.");
        if(
sscanf(params,"{s[11]}d",fare)) return SendClientMessageEx(playeridCOLOR_WHITE"/taxi fare [amount]");
        if(!
TaxiDuty{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"You are not on duty.");
        if(
fare || fare 25) return SendClientMessageEx(playeridCOLOR_GREY"There is a limit for taxi fare, ($1-$25).");
        
format(stringsizeof(string), "[TAXI]: You have changed your taxi fare to $%d."fare);
        
SendClientMessageEx(playeridCOLOR_YELLOWstring);
        
TaxiFare{playerid} = fare;
    }
    else if(
strcmp(choice"accept"true) == 0)
    {
        new 
id;
        if(!
IsDriver(playerid)) return SendClientMessageEx(playeridCOLOR_GREY"You must be inside a Taxi/Cabbie as a driver.");
        if(!
IsATaxi(vehicle)) return SendClientMessageEx(playeridCOLOR_LIGHTRED"You must be inside a Taxi/Cabbie.");
        if(
sscanf(params,"{s[11]}d",id)) return SendClientMessageEx(playeridCOLOR_WHITE"/taxi accept [playerid]");
        if(!
TaxiDuty{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"You are not on duty.");
        if(!
IsPlayerConnected(giveplayerid)) return Error(playerid"That player is not online!");
        if(
GetPVarInt(id"NeedTaxi") == 0) return SendClientMessageEx(playeridCOLOR_LIGHTRED"This player hasn't requested any taxi.");
        
format(stringsizeof(string), "* %s has accepted your taxi call, he charges $%d per second!"GetPlayerNameEx(playerid), TaxiFare{playerid});
        
SendClientMessageEx(idCOLOR_YELLOWstring);
        
format(stringsizeof(string), "* You have accepted %s taxi call."GetPlayerNameEx(id));
        
SendClientMessageEx(playeridCOLOR_YELLOWstring);
    }
    else if(
strcmp(choice"stop"true) == 0)
    {
        if(!
IsDriver(playerid)) return SendClientMessageEx(playeridCOLOR_GREY"You must be inside a Taxi/Cabbie as a driver.");
        if(!
IsATaxi(vehicle)) return SendClientMessageEx(playeridCOLOR_LIGHTRED"You must be inside a Taxi/Cabbie.");
        if(!
TaxiDuty{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"You are not on duty.");
        if(!
TaxiStart{playerid}) return SendClientMessageEx(playeridCOLOR_GREY"Your taxi fare is not started.");
        
SendClientMessageEx(playeridCOLOR_YELLOW"[TAXI]: Your taxi fare has stopped and charges all people inside.");
        
format(stringsizeof(string), "[TAXI]: The final fare of your taxi has reached to, $%d."TaxiMade[playerid]);
        
SendClientMessageEx(playeridCOLOR_YELLOWstring);
        foreach(
Playeri)
        {
            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;