public LoadDrift(driftid){ IsDriftOn[driftid] = true; Winner[driftid] = 0; for (new i=0; i<MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { DisablePlayerCheckpoint(i); JoinedDrift[i][driftid] = 0; CurrentCheckpoint[i] = 0; InDrift[i][driftid] = 0; } } SendClientMessageToAll(COLOR_GREEN, "A drift has started! Type /joindrift to join."); return 1;}///////////////////////////////////////////public OnPlayerCommandText(playerid, cmdtext[]){ new cmd[256], idx; cmd = strtok(cmdtext, idx); if (!strcmp(cmd, "/startdrift", true)) { new tmp[256]; tmp = strtok(cmdtext, idx); for (new i=0; i<MAX_DRIFTS; i++) if (IsDriftOn[i]) return SendClientMessage(playerid, COLOR_RED, "ERROR: There is already a drift on."); if (!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /startdrift <driftid>"); if (!IsNumeric(tmp)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Drift ID must be a number."); if (strval(tmp) > MAX_DRIFTS) return SendClientMessage(playerid, COLOR_RED, "ERROR: This drift does not exists."); LoadDrift(strval(tmp)); return 1; } if (!strcmp(cmd, "/joindrift", true)) { new thedrift = GetCurrentDrift(); new c; for (new i=0;i<MAX_DRIFTS;i++) { if (IsDriftOn[i]) c++; } if (c == 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: There is no drift right now."); if (InDrift[playerid][thedrift]) return SendClientMessage(playerid, COLOR_RED, "ERROR: You are already in a drift."); if (JoinedDrift[playerid][thedrift]) return SendClientMessage(playerid, COLOR_RED, "ERROR: You are already in a drift."); if (GetPlayerState(playerid) != 2) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be in a vehicle."); if (Drifters[thedrift] > D1_MAX_SPS) return SendClientMessage(playerid, COLOR_RED, "ERROR: This drift is full."); if (thedrift == 1) { if (DriftersDrift1[player1] == 0) DriftersDrift1[player1] = playerid; else if (DriftersDrift1[player2] == 0) DriftersDrift1[player2] = playerid; else return SendClientMessage(playerid, COLOR_RED, "ERROR: The drift is full."); } new player; if (StartPosition[thedrift][player1] == 0) StartPosition[thedrift][player1] = 1, player = 1; else if (StartPosition[thedrift][player2] == 0) StartPosition[thedrift][player2] = 1, player = 2; JoinedDrift[playerid][thedrift] = 1; Drifters[thedrift]++; new playervehicle = GetPlayerVehicleID(player); new pos; if (player == 1) pos = StartPosition[thedrift][player1]; else if (player == 2) pos = StartPosition[thedrift][player2]; SetVehiclePos(playervehicle, Drift1SP[pos][0], Drift1SP[pos][1], Drift1SP[pos][2]); SetVehicleZAngle(playervehicle, Drift1SP[pos][3]); TogglePlayerControllable(playerid, 0); SetCameraBehindPlayer(playerid); new s[256]; format(s, 256, "%s (%d) has joined the drift!", ReturnPlayerName(playerid), playerid); for (new i=0; i<MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { if (i != playerid) SendClientMessage(playerid, COLOR_GREEN, s); else SendClientMessage(playerid, COLOR_GREEN, "Thank you for joining the drift!"); } } if (Drifters[thedrift] == D1_MAX_SPS) StartDrift(thedrift, DriftersDrift1[player1], DriftersDrift1[player2]); return 1; } return 0;}