#define DRIFT_STATE_ENTER 1 new DriftState[MAX_PLAYERS]; public OnPlayerCommandText(playerid, params[]) { if(strcmp(cmdtext, "/drifthelp", true) == 0) { if(DriftState[playerid] == DRIFT_STATE_ENTER) { SCM(playerid, COLOR_RED, "~~~~~~~~~~~~~~~~[ Drifting help ]~~~~~~~~~~~~~~~~~"); SCM(playerid, COLOR_WHITE, "The best tip for best drift is to use the handbrake often."); SCM(playerid, COLOR_WHITE, "Also, with nitrous, the car drifts like on ice."); SCM(playerid, COLOR_WHITE, "If you really want to learn drift, ask stunter, to teach you a lesson in drifting"); SCM(playerid, COLOR_RED, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); return 1; } else { return 0; } } if(strcmp(cmdtext, "/drift1", true) == 0) { new pName[24]; GetPlayerName(playerid, pName, 24); new rand = random(sizeof(RandomDrift1Spawns)); new str[256]; format(str, sizeof(str), "Player %s(ID:%d) Entered the /drift1!", pName, playerid); DriftState[playerid] = DRIFT_STATE_ENTER; SCM2ALL(COLOR_GREEN, str); SetPlayerPos(playerid, RandomDrift1Spawns[rand][0], RandomDrift1Spawns[rand][1], RandomDrift1Spawns[rand][2]); GameTextForPlayer(playerid, "Welcome to drift1! type /drifthelp for drifitng help.", 5000, 6); DisablePlayerRaceCheckpoint(playerid); SCM(playerid, COLOR_RED, "TIP: Enter the checkpoint to continue drifting!"); SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[1][0], DriftCheckpoints[1][1], DriftCheckpoints[1][2], DriftCheckpoints[2][0], DriftCheckpoints[2][1], DriftCheckpoints[2][2], 10); return 1; } return 0; } //OnPlayerEnterRaceCheckpoint: public OnPlayerEnterRaceCheckpoint(playerid) { switch(DriftState[playerid]) { case DRIFT_STATE_ENTER: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[2][0], DriftCheckpoints[2][1], DriftCheckpoints[2][2], DriftCheckpoints[3][0], DriftCheckpoints[3][1], DriftCheckpoints[3][2], 10); GameTextForPlayer(playerid, "Keep it up!", 4000, 4); DriftState[playerid] = 2; return 1; } case 2: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[3][0], DriftCheckpoints[3][1], DriftCheckpoints[3][2], DriftCheckpoints[4][0], DriftCheckpoints[4][1], DriftCheckpoints[4][2], 10); GameTextForPlayer(playerid, "Continue", 4000, 4); DriftState[playerid] = 3; return 1; } case 3: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[4][0], DriftCheckpoints[4][1], DriftCheckpoints[4][2], DriftCheckpoints[5][0], DriftCheckpoints[5][1], DriftCheckpoints[5][2], 10); GameTextForPlayer(playerid, "Good! nitro refill!", 4000, 4); AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); DriftState[playerid] = 4; return 1; } case 4: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[5][0], DriftCheckpoints[5][1], DriftCheckpoints[5][2], DriftCheckpoints[6][0], DriftCheckpoints[6][1], DriftCheckpoints[6][2], 10); GameTextForPlayer(playerid, "Very good! Continue!", 4000, 4); DriftState[playerid] = 5; return 1; } case 5: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[6][0], DriftCheckpoints[6][1], DriftCheckpoints[6][2], DriftCheckpoints[7][0], DriftCheckpoints[7][1], DriftCheckpoints[7][2], 10); GameTextForPlayer(playerid, "Impressive!", 4000, 4); DriftState[playerid] = 6; return 1; } case 6: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[7][0], DriftCheckpoints[7][1], DriftCheckpoints[7][2], DriftCheckpoints[8][0], DriftCheckpoints[8][1], DriftCheckpoints[8][2], 10); GameTextForPlayer(playerid, "You are good", 4000, 4); DriftState[playerid] = 7; return 1; } case 7: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[8][0], DriftCheckpoints[8][1], DriftCheckpoints[8][2], DriftCheckpoints[9][0], DriftCheckpoints[9][1], DriftCheckpoints[9][2], 10); GameTextForPlayer(playerid, "Dragsta", 4000, 4); DriftState[playerid] = 8; return 1; } case 8: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[9][0], DriftCheckpoints[9][1], DriftCheckpoints[9][2], DriftCheckpoints[10][0], DriftCheckpoints[10][1], DriftCheckpoints[10][2], 10); GameTextForPlayer(playerid, "Dragzor", 4000, 4); DriftState[playerid] = 9; return 1; } case 9: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[10][0], DriftCheckpoints[10][1], DriftCheckpoints[10][2], DriftCheckpoints[11][0], DriftCheckpoints[11][1], DriftCheckpoints[11][2], 10); GameTextForPlayer(playerid, "Dragzt0r", 4000, 4); DriftState[playerid] = 10; return 1; } case 10: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[11][0], DriftCheckpoints[11][1], DriftCheckpoints[11][2], DriftCheckpoints[12][0], DriftCheckpoints[12][1], DriftCheckpoints[12][2], 10); GameTextForPlayer(playerid, "DragMasta", 4000, 4); DriftState[playerid] = 11; return 1; } case 11: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[12][0], DriftCheckpoints[12][1], DriftCheckpoints[12][2], DriftCheckpoints[13][0], DriftCheckpoints[13][1], DriftCheckpoints[13][2], 10); GameTextForPlayer(playerid, "The cops are after you!", 4000, 4); DriftState[playerid] = 12; return 1; } case 12: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[13][0], DriftCheckpoints[13][1], DriftCheckpoints[13][2], DriftCheckpoints[14][0], DriftCheckpoints[14][1], DriftCheckpoints[14][2], 10); GameTextForPlayer(playerid, "SWAT: Leave the car or get cola", 4000, 4); DriftState[playerid] = 13; return 1; } case 13: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[14][0], DriftCheckpoints[14][1], DriftCheckpoints[14][2], DriftCheckpoints[15][0], DriftCheckpoints[15][1], DriftCheckpoints[15][2], 10); GameTextForPlayer(playerid, "You need to cool down your wheels!", 4000, 4); DriftState[playerid] = 14; return 1; } case 14: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[15][0], DriftCheckpoints[15][1], DriftCheckpoints[15][2], DriftCheckpoints[16][0], DriftCheckpoints[16][1], DriftCheckpoints[16][2], 10); GameTextForPlayer(playerid, "Nearly there! Ntro refill!", 4000, 4); AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); DriftState[playerid] = 15; return 1; } case 15: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[16][0], DriftCheckpoints[16][1], DriftCheckpoints[16][2], DriftCheckpoints[17][0], DriftCheckpoints[17][1], DriftCheckpoints[17][2], 10); GameTextForPlayer(playerid, "Unbelivable.", 4000, 4); DriftState[playerid] = 16; return 1; } case 16: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[17][0], DriftCheckpoints[17][1], DriftCheckpoints[17][2], DriftCheckpoints[18][0], DriftCheckpoints[18][1], DriftCheckpoints[18][2], 10); GameTextForPlayer(playerid, "Amazing.", 4000, 4); DriftState[playerid] = 17; return 1; } case 17: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[18][0], DriftCheckpoints[18][1], DriftCheckpoints[18][2], DriftCheckpoints[19][0], DriftCheckpoints[19][1], DriftCheckpoints[19][2], 10); GameTextForPlayer(playerid, "Nearly done! You can make it!", 4000, 4); DriftState[playerid] = 18; return 1; } case 18: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[19][0], DriftCheckpoints[19][1], DriftCheckpoints[19][2], DriftCheckpoints[20][0], DriftCheckpoints[20][1], DriftCheckpoints[20][2], 10); GameTextForPlayer(playerid, "Cmon! your too good!", 4000, 4); DriftState[playerid] = 19; return 1; } case 19: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[20][0], DriftCheckpoints[20][1], DriftCheckpoints[20][2], DriftCheckpoints[21][0], DriftCheckpoints[21][1], DriftCheckpoints[21][2], 10); GameTextForPlayer(playerid, "Nos for the last time!", 4000, 4); AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); DriftState[playerid] = 20; return 1; } case 20: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[21][0], DriftCheckpoints[21][1], DriftCheckpoints[21][2], DriftCheckpoints[22][0], DriftCheckpoints[22][1], DriftCheckpoints[22][2], 10); GameTextForPlayer(playerid, "2 more to go! hurry!", 4000, 4); DriftState[playerid] = 21; return 1; } case 21: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[22][0], DriftCheckpoints[22][1], DriftCheckpoints[22][2], DriftCheckpoints[23][0], DriftCheckpoints[23][1], DriftCheckpoints[23][2], 10); GameTextForPlayer(playerid, "1 MORE! WIN 2 BE THE DRIFSTA", 4000, 4); DriftState[playerid] = 22; return 1; } case 22: { SetPlayerRaceCheckpoint(playerid, 0, DriftCheckpoints[23][0], DriftCheckpoints[23][1], DriftCheckpoints[23][2], DriftCheckpoints[23][0], DriftCheckpoints[23][1], DriftCheckpoints[23][2]-10, 10); GameTextForPlayer(playerid, "Only one left! :D", 5000, 4); DriftState[playerid] = 23; return 1; } case 23: { DisablePlayerRaceCheckpoint(playerid); GameTextForPlayer(playerid, "Congratulations man! you won! now here's your money:", 5000, 6); GivePlayerMoney(playerid, 9800); DriftState[playerid] = 0; return 1; } } return 1; }