//Race new race[MAX_PLAYERS]; new racecheck[MAX_PLAYERS][2]; new racewinners[2][10]; new StopRaceOne; new raceOne[4]; public StopRace1(playerid) { race[playerid] = 0; racecheck[playerid][1] = 0; racewinners[1][1] = 0; racewinners[1][2] = 0; racewinners[1][3] = 0; raceOne[0] = 0; raceOne[1] = 0; raceOne[2] = 0; GameTextForAll("Race Ended", 5000, 3); } if (strcmp(cmd, "/race", true)==0) { if(race[playerid] != 0) { SendClientMessage(playerid, 0xC0C0C0FF, "You already play in a race!"); return 1; } if(minigame[playerid] != 0) { SendClientMessage(playerid, 0xC0C0C0FF, "You already play a minigame."); return 1; } new tmp[256]; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0xC0C0C0FF, "You have to enter a race ID!"); return 1; } new raceid = strval(tmp); if(raceid == 1) { SetPlayerInterior(playerid, 0); if(raceOne[0] == 0){ SetPlayerPos(playerid, 2275.9668, -2064.6965, 13.5469);} else if(raceOne[1] == 0){ SetPlayerPos(playerid, 2271.6111, -2067.5737, 13.3828);} else if(raceOne[2] == 0){ SetPlayerPos(playerid, 2267.6321, -2072.7046, 13.5469);} else { SendClientMessage(playerid, 0xC0C0C0FF, "Sorry, race is already full. Please wait until it finished."); } DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, race1[0][0], race1[0][1], race1[0][2], 15.0); race[playerid] = 1; racecheck[playerid][1] = 0; return 1; } else { SendClientMessage(playerid, 0xFFFF00FF, "/race 1 - Motor race in LS Military Base. 3 Motors"); return 1; } } OnPlaterChangeState or something: if(race[playerid] == 1) { if(newstate == PLAYER_STATE_DRIVER) { TogglePlayerControllable(playerid, 0); if(raceOne[0] == 0){ raceOne[0] = (playerid + 1); } else if(raceOne[1] == 0){ raceOne[1] = (playerid + 1); } else { TogglePlayerControllable((raceOne[0] - 1), 1); TogglePlayerControllable((raceOne[1] - 1), 1); TogglePlayerControllable((raceOne[2] - 1), 1); } } } public OnPlayerEnterCheckpoint(playerid) { if(race[playerid] == 1) { if(racecheck[playerid][1] == 9) { if(racewinners[1][1] == 0) { new username[256]; new string[256]; GetPlayerName(playerid, username, 256); racewinners[1][1] = 1; format(string, sizeof(string), "%s has won the race! Race will end in 30 seconds.", username); GameTextForAll(string, 5000, 3); race[playerid] = 0; racecheck[playerid][1] = 0; DisablePlayerCheckpoint(playerid); StopRaceOne = SetTimer("StopRace1", 30000, 0); return 1; } else if(racewinners[1][2] == 0) { new username[256]; new string[256]; GetPlayerName(playerid, username, 256); racewinners[1][2] = 1; format(string, sizeof(string), "%s finished 2nd!", username); GameTextForAll(string, 5000, 3); race[playerid] = 0; racecheck[playerid][1] = 0; DisablePlayerCheckpoint(playerid); return 1; } else if(racewinners[1][3] == 0) { new username[256]; new string[256]; GetPlayerName(playerid, username, 256); racewinners[1][1] = 0; racewinners[1][2] = 0; racewinners[1][3] = 0; raceOne[0] = 0; raceOne[1] = 0; raceOne[2] = 0; format(string, sizeof(string), "%s finished 3th, and last!", username); GameTextForAll(string, 5000, 3); DisablePlayerCheckpoint(playerid); KillTimer(StopRaceOne); return 1; } } DisablePlayerCheckpoint(playerid); racecheck[playerid][1]++; SetPlayerCheckpoint(playerid, race1[racecheck[playerid][1]][0], race1[racecheck[playerid][1]][1], race1[racecheck[playerid][1]][2], 15); new Float:x; new Float:y; new Float:z; GetPlayerPos(playerid, x, y, z); PlayerPlaySound(playerid, 1095, x, y, z); } return 1; }