All pastes #147016 Raw Edit

whoknows

public text v1 · immutable
#147016 ·published 2006-08-24 01:50 UTC
rendered paste body
#include <a_samp>

//=====COLORS===============================
#define COLOR_ORANGE 	0xFF6600AA
#define COLOR_RED       0xFF0000AA
#define COLOR_BLUE      0x0080FFAA
#define COLOR_GREEN     0x33FF33AA
#define COLOR_YELLOW    0xE6E600AA
#define COLOR_ORANGE 	0xFF6600AA

//=====GLOBALS==============================
new gTaxiDriver[MAX_PLAYERS];
new gTaxiDriverSkill[MAX_PLAYERS];

//=====TIMERS===============================
//new is_driver_in_taxi;
//new is_driver_outta_taxi;

//=====ARRAYS===============================
new Payment[5] = {
1000, // 0
5000, // 1
10000,// 2
15000,// 3
20000 // 4
};

//=====MISC=================================
new every_5;


main()
{
	print("\n----------------------------------");
	print("  Test: Taxi Driver");
	print("----------------------------------\n");
}

//------------------------------------------------------------------------------

public OnGameModeInit()
{
	SetGameModeText("(work in progress)");
	SetTimer("TaxiPayment", 10000, true);
	SetTimer("OuttaTaxi", 20000, true);
	
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

	AddStaticVehicle(420, 2022.1577, 1340.6592, 10.6805, 305.6671, 6, 6); // Taxi

	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerInterior(playerid,0);
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1964.3783, 1343.1572, 16.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerSpawn(playerid)
{
	SendClientMessage(playerid, COLOR_BLUE, "Commands:");
	SendClientMessage(playerid, COLOR_GREEN, "/taxidriver");
	SendClientMessage(playerid, COLOR_GREEN, "/myskill");
	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerDisconnect(playerid)
{
	gTaxiDriver[playerid]=0;
	gTaxiDriverSkill[playerid]=0;
	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
	new tmp[128];
	new drivername[MAX_PLAYER_NAME];
	
	if (gTaxiDriver[playerid] >0){
		gTaxiDriver[playerid]=0;
		gTaxiDriverSkill[playerid]=0;
		GetPlayerName(playerid, drivername, sizeof(drivername));
		format (tmp, sizeof(tmp), "*** %s is no longer taxi driver.", drivername);
		SendClientMessageToAll (COLOR_ORANGE, tmp);
		SendClientMessage(playerid, COLOR_RED, "*** You lost your taxi driver job.");
	}
	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
	new tmp[128];
	new string[128];
	new pName[MAX_PLAYER_NAME];

	if (strcmp(cmdtext, "/taxidriver", true)==0){
	    if (gTaxiDriver[playerid] == 0){
	    
	      //is_driver_in_taxi = SetTimer("TaxiPayment",15000,true);
	        
	    	GetPlayerName(playerid, pName, sizeof(pName));
	    	format(tmp, sizeof(tmp), "*** %s's just started working as a Taxi Driver.",pName);
	    	if(IsPlayerInVehicle(playerid,1) && GetPlayerState(playerid) == 2){
				SendClientMessage(playerid, COLOR_YELLOW, tmp);
				SendClientMessage(playerid, COLOR_YELLOW, "*** Type /help-taxi to get started.");
				gTaxiDriver[playerid]++;
				gTaxiDriverSkill[playerid]=0;
				format (string, sizeof(string), "*** Your current skill is: %d.",GetDriverSkill(playerid));
				SendClientMessage(playerid, COLOR_ORANGE, string);
			}
			else{
				SendWarningMessage(playerid);
			}
		}
		else{
		    SendClientMessage(playerid, COLOR_RED, "*** You're already the taxi driver.");
		}
	return 1;
	}
	
	if (strcmp(cmdtext, "/help-taxi", true)==0){
	/*
	   some
	   help
	   information
	*/
	return 1;
	}
	
	if (strcmp(cmdtext, "/myskill", true)==0){
		if (gTaxiDriver[playerid] >1){
			format(tmp,sizeof(tmp),"*** Your current skill is: %d.",GetDriverSkill(playerid));
			SendClientMessage(playerid, COLOR_ORANGE, tmp);
		}
		else{
		    SendWarningMessage(playerid);
		}
	return 1;
	}
	
	
	
return 0;
}

//------------------------------------------------------------------------------

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger);
	
	/*
	if (vehicleid==1 && gTaxiDriver[playerid] >0){
	    is_driver_in_taxi = SetTimer("TaxiPayment",15000,true);
 	}
	 */
	return 1;
}

//------------------------------------------------------------------------------

public OnPlayerExitVehicle(playerid, vehicleid)
{
	printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid);
	/*
	if (vehicleid==1 && gTaxiDriver[playerid] >0){
	    is_driver_outta_taxi = SetTimer("OuttaTaxi", 10000, true);
	    KillTimer(is_driver_in_taxi);
	}
	*/
	return 1;
}

//------------------------------------------------------------------------------

//==============================================================================

//------------------------------------------------------------------------------

public TaxiPayment(playerid){
	new i,j;
	new tmp[128];
	new string[128];
	
	for (i=0; i<MAX_PLAYERS; i++){
	    if (IsPlayerConnected(i)){
	        for (j=0; j<MAX_PLAYERS; j++){
	            if (gTaxiDriver[j] ==1){
	                if (IsPlayerInVehicle(j,1) && GetPlayerState(j)==2){
						gTaxiDriverSkill[j]++;
						format (tmp, sizeof(tmp), "*** Your current skill is: %d.",GetDriverSkill(j));
	             		if (gTaxiDriverSkill[j] >0 && gTaxiDriverSkill[j] <5 && GetPlayerState(j)==2){
				    		format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[0]);
						 	SendClientMessage(j, COLOR_YELLOW, string);
		                    SendClientMessage(j, COLOR_ORANGE, tmp);
		                    GivePlayerMoney(j,Payment[0]);
						}
						else if (gTaxiDriverSkill[j] >5 && gTaxiDriverSkill[j] <10 && GetPlayerState(j)==2){
						    format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[1]);
						    SendClientMessage(j, COLOR_YELLOW, string);
						    SendClientMessage(j, COLOR_ORANGE, tmp);
						    GivePlayerMoney(j, Payment[1]);
						}
						else if (gTaxiDriverSkill[j] >10 && gTaxiDriverSkill[j] <15 && GetPlayerState(j)==2){
							format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[2]);
						    SendClientMessage(j, COLOR_YELLOW, string);
						    SendClientMessage(j, COLOR_ORANGE, tmp);
						    GivePlayerMoney(j, Payment[2]);
						}
						else if (gTaxiDriverSkill[j] >15 && gTaxiDriverSkill[j] <20 && GetPlayerState(j)==2){
							format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[3]);
						    SendClientMessage(j, COLOR_YELLOW, string);
						    SendClientMessage(j, COLOR_ORANGE, tmp);
						    GivePlayerMoney(j, Payment[3]);
						}
						every_5 = gTaxiDriverSkill[j];
						switch (every_5) {
						    case 5: {
								format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[1]);
						    	SendClientMessage(j, COLOR_YELLOW, string);
						    	SendClientMessage(j, COLOR_ORANGE, tmp);
						    	GivePlayerMoney(j, Payment[3]);
						    }
							case 10: {
								format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[2]);
						    	SendClientMessage(j, COLOR_YELLOW, string);
						    	SendClientMessage(j, COLOR_ORANGE, tmp);
						    	GivePlayerMoney(j, Payment[3]);
							}
							case 15: {
								format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[3]);
							    SendClientMessage(j, COLOR_YELLOW, string);
							    SendClientMessage(j, COLOR_ORANGE, tmp);
							    GivePlayerMoney(j, Payment[3]);
							}
							case 20: {
								format (string, sizeof(string), "*** You recived $%d as taxi driver.",Payment[4]);
							    SendClientMessage(j, COLOR_YELLOW, string);
							    SendClientMessage(j, COLOR_ORANGE, tmp);
							    GivePlayerMoney(j, Payment[4]);
							    gTaxiDriver[j]++;
							}
						}
					}
				}
			}
		}
	}
}


//------------------------------------------------------------------------------

public OuttaTaxi (playerid){
	new i,j;
	new tmp[128];
	new drivername[MAX_PLAYER_NAME];

	for(i=0; i<MAX_PLAYERS; i++){
	    if (IsPlayerConnected(i)){ 
        	for (j=0; j<MAX_PLAYERS; j++){
				if (gTaxiDriver[j] >0){
					if (GetPlayerState (j) !=2 && IsPlayerInVehicle (j, !1)){
				    	gTaxiDriver[j]=0;
				    	gTaxiDriverSkill[j]=0;
				    	GetPlayerName(j,drivername,sizeof(drivername));
				    	format (tmp, sizeof(tmp), "*** %s is no longer taxi driver.", drivername);
				    	SendClientMessageToAll(COLOR_ORANGE, tmp);
				    	SendClientMessage(j, COLOR_RED, "*** You lost your taxi driver job!");
					}
				}
			}
		}
	}
}

//------------------------------------------------------------------------------

public GetDriverSkill(playerid){
	return gTaxiDriverSkill[playerid];
}

//------------------------------------------------------------------------------

public SendWarningMessage(playerid){
	SendClientMessage(playerid, COLOR_RED, "Read /help-taxi and then try again!");
}

//------------------------------------------------------------------------------