#include //=====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; i0 && 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; i0){ 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!"); } //------------------------------------------------------------------------------