public OnPlayerEnterRaceCheckpoint(playerid) { new string[128]; new name[MAX_PLAYER_NAME]; switch (gPlayerRaceCheckpointStatus[playerid]) { case CHECKPOINT_RACESR1START: { // if (gdebug){print("DEBUG CHECKPOINT_RACESR1START");} if (GetPlayerState(playerid) != 2) { return 1; } PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); if (gTeam[playerid] >= 3) { new tmpcar = GetPlayerVehicleID(playerid); if(IsAPlane(tmpcar)) { GameTextForPlayer(playerid, "~w~No aircraft allowed in the race", 2000, 6); return 1; } if (MissionActive == 5)// first to arrive { gRaceLeader++; // if (gdebug){printf("gRaceLeader %d",gRaceLeader);} if (gRaceLeader == 1) { format(string, sizeof(string), "~r~Wait For More Racers"); GameTextForPlayer(playerid, string, 2000, 6); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRA; DisablePlayerRaceCheckpoint(playerid); return 1; } else if (gRaceLeader == 2) { gRaceLeader = 0; // if (gdebug){printf("gRaceLeader %d",gRaceLeader);} format(string, sizeof(string), "Hurry %d Seconds To Race Start!",racedelay/1000); RingTone[playerid] = 20; SendEnemyMessage(COLOR_WHITE, string); format(string, sizeof(string), "~r~Wait Here For Racers"); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRA; GameTextForPlayer(playerid, string, 2000, 6); } SetTimer("RaceDelay", racedelay, 0); DisablePlayerRaceCheckpoint(playerid); MissionActive = 6; // if (gdebug){print("DEBUG MissionActive = 6");} } else if (MissionActive == 6) //late arrivels { // if (gdebug){print("DEBUG waiting");} DisablePlayerRaceCheckpoint(playerid); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRA; } } else { GameTextForPlayer(playerid, "~w~Patrol This Area~n~ For Suspects", 5000, 1); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_NONE; return 1; } } case CHECKPOINT_RACESRA: { // if (gdebug){print("DEBUG CHECKPOINT_RACESRA");} if (GetPlayerState(playerid) != 2) { return 1; } new tmpcar = GetPlayerVehicleID(playerid); if(IsAPlane(tmpcar)) { GameTextForPlayer(playerid, "~w~No aircraft allowed in the race", 2000, 6); return 1; } if (StartTime[playerid] == 0) { StartTime[playerid] = Gtickcount; if(gTeam[playerid] == 3) { SetPlayerCriminal(playerid,255, "Street Racing",0,0); //if(FlashTime[playerid] == 0){FlashTime[playerid] = 60;} } } LapCount[playerid]++; gRaceEnd++; if(LapCount[playerid] > gLaps) { gLaps = LapCount[playerid]; gRaceEnd = 1; } if(RaceInfo[rLaps] != 0) { if(gLaps != (RaceInfo[rLaps]+1) && gLaps > 1) { //RaceDebug(playerid); if(gLaps == 2) { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && gTeam[i] == 2) { format(cbjstore, sizeof(cbjstore), "HQ: 911 10-14 Set Up A RoadBlock At The Red Marker."); SendClientMessage(i, COLOR_DBLUE, cbjstore); RingTone[i] = 20; SetPlayerCheckpoint(i,rm2x,rm2y,rm2z, 8.0); } } RaceTime[playerid] = Gtickcount; } if (gRaceEnd == 1 && LapCount[playerid] == gLaps) { pos1time = RaceTime[playerid] - StartTime[playerid]; ConvertTicks(pos1time); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s is in 1st Place T: %d:%d:%d", name,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); format(string, sizeof(string), "~w~Lap %d/%d~n~~g~1st Place ~n~~y~T: %d:%d:%d",gLaps,RaceInfo[rLaps],cmins,csecs,cmils); SetAllCopCheckpoint(rex,rey,rez, 8.0); } else if (gRaceEnd == 2 && LapCount[playerid] == gLaps) { pos2time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos2time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s is in 2nd Place T: +%d:%d:%d", name,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); format(string, sizeof(string), "~w~Lap %d/%d~n~~g~2nd Place ~n~~y~T: %d:%d:%d",gLaps,RaceInfo[rLaps],cmins,csecs,cmils); } else if (gRaceEnd == 3 && LapCount[playerid] == gLaps) { pos3time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos3time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s is in 3rd Place T: +%d:%d:%d", name,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); format(string, sizeof(string), "~w~Lap %d/%d~n~~g~3rd Place ~n~~y~T: %d:%d:%d",gLaps,RaceInfo[rLaps],cmins,csecs,cmils); } else { format(string, sizeof(string), "~w~Lap %d/%d",LapCount[playerid],RaceInfo[rLaps]); } GameTextForPlayer(playerid, string, 5000, 1); } else if(gLaps == (RaceInfo[rLaps]+1) && gLaps > 1) { if (gRaceEnd == 1) { DisablePlayerRaceCheckpoint(playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} RewardCalc(playerid,1000,10000); GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); preward = reward; PlayerPlayMusic(playerid); format(string, sizeof(string), "~w~MISSION PASSED! ~n~~g~$%d", reward); //format(string, sizeof(string), "~g~YOU WIN~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 0); BroadCast(COLOR_WHITE, "RACENEWS: The Race Will End In 120 secs"); RaceTime[playerid] = Gtickcount; pos1time = RaceTime[playerid] - StartTime[playerid]; ConvertTicks(pos1time); GetPlayerName(playerid, name, sizeof(name)); raceendtimer = SetTimer("RaceEnd", 120000, 0); if(RaceInfo[rBestms] > pos1time || RaceInfo[rBestms] == 0) { RaceInfo[rBestms] = pos1time; strmid(RaceInfo[rBest],name, 0, strlen(name), 255); BestTime(CurrentRace); format(string, sizeof(string), "RACENEWS: %s Just Won a StreetRace For $%d",name,reward); BroadCast(COLOR_WHITE, string); format(string, sizeof(string), "RACENEWS: %s Has Set A New Best Time In %s T: %d:%d:%d", name,CurrentRace,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); } else { format(string, sizeof(string), "RACENEWS: %s Just Won a StreetRace For $%d T: %d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); } SetPlayerCriminal(playerid,255, "Street Racing",1,1); gPlayerMission[playerid] = 2; BetWinner(playerid,1); return 1; } else if (gRaceEnd == 2) { DisablePlayerRaceCheckpoint(playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} reward = preward/2; GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); PlayerPlayMusic(playerid); format(string, sizeof(string), "~g~2nd place~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 6); RaceTime[playerid] = Gtickcount; pos3time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos3time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s Just Came 2nd a StreetRace For $%d T: +%d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); return 1; } else if (gRaceEnd == 3) { CheckpointReset(); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} reward = preward/3; GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); PlayerPlayMusic(playerid); format(string, sizeof(string), "~g~3rd place~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 6); RaceTime[playerid] = Gtickcount; pos2time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos2time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s Just Came 3rd a StreetRace For $%d T: +%d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); KillTimer(raceendtimer); RaceEnd(); return 1; } } PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SetPlayerRaceCheckpoint(playerid,rmx,rmy,rmz, 16.0); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRB; } if(RaceInfo[rLaps] == 0 && LapCount[playerid] == 1) { PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SetPlayerRaceCheckpoint(playerid,rmx,rmy,rmz, 16.0); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRB; } } case CHECKPOINT_RACESRB: { if (GetPlayerState(playerid) != 2) { return 1; } new tmpcar = GetPlayerVehicleID(playerid); if(IsAPlane(tmpcar)) { GameTextForPlayer(playerid, "~w~No aircraft allowed in the race", 2000, 6); return 1; } if(gRaceMid != 1 && LapCount[playerid] > gLaps) { gRaceMid = 1; } // if (gdebug){print("DEBUG CHECKPOINT_RACESRB");} PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SetPlayerRaceCheckpoint(playerid,rm2x,rm2y,rm2z, 16.0); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRC; gRaceMid++; // if (gdebug){printf("gRaceLeader %d",gRaceLeader);} } case CHECKPOINT_RACESRC: { if (GetPlayerState(playerid) != 2) { return 1; } new tmpcar = GetPlayerVehicleID(playerid); if(IsAPlane(tmpcar)) { GameTextForPlayer(playerid, "~w~No aircraft allowed in the race", 2000, 6); return 1; } if(gRaceMid2 != 1 && LapCount[playerid] > gLaps) { gRaceMid2 = 1; } // if (gdebug){print("DEBUG CHECKPOINT_RACESRB");} PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SetPlayerRaceCheckpoint(playerid,rex,rey,rez, 16.0); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRD; gRaceMid2++; // if (gdebug){printf("gRaceLeader %d",gRaceLeader);} } case CHECKPOINT_RACESRD: { if (GetPlayerState(playerid) != 2) { return 1; } new tmpcar = GetPlayerVehicleID(playerid); if(IsAPlane(tmpcar)) { GameTextForPlayer(playerid, "~w~No aircraft allowed in the race", 2000, 6); return 1; } if(gRaceFin != 1 && LapCount[playerid] > gLaps) { gRaceFin = 1; } // if (gdebug){print("DEBUG CHECKPOINT_RACESRC");} gRaceFin++; if(RaceInfo[rLaps] > 0) { PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SetPlayerRaceCheckpoint(playerid,rsx,rsy,rsz, 16.0); gPlayerRaceCheckpointStatus[playerid] = CHECKPOINT_RACESRA; SetAllCopCheckpoint(rex,rey,rez, 8.0); } if(RaceInfo[rLaps] == 0) { if (gRaceFin == 1) { DisablePlayerRaceCheckpoint(playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} RewardCalc(playerid,1000,10000); GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); preward = reward; PlayerPlayMusic(playerid); format(string, sizeof(string), "~w~MISSION PASSED! ~n~~g~$%d", reward); //format(string, sizeof(string), "~g~YOU WIN~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 0); BroadCast(COLOR_WHITE, "RACENEWS: The Race Will End In 120 secs"); RaceTime[playerid] = Gtickcount; pos1time = RaceTime[playerid] - StartTime[playerid]; ConvertTicks(pos1time); GetPlayerName(playerid, name, sizeof(name)); raceendtimer = SetTimer("RaceEnd", 120000, 0); if(RaceInfo[rBestms] > pos1time || RaceInfo[rBestms] == 0) { RaceInfo[rBestms] = pos1time; strmid(RaceInfo[rBest],name, 0, strlen(name), 255); BestTime(CurrentRace); format(string, sizeof(string), "RACENEWS: %s Just Won a StreetRace For $%d",name,reward); BroadCast(COLOR_WHITE, string); format(string, sizeof(string), "RACENEWS: %s Has Set A New Best Time In %s T: %d:%d:%d", name,CurrentRace,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); } else { format(string, sizeof(string), "RACENEWS: %s Just Won a StreetRace For $%d T: %d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); } SetPlayerCriminal(playerid,255, "Street Racing",1,1); gPlayerMission[playerid] = 2; BetWinner(playerid,1); } else if (gRaceFin == 2) { DisablePlayerRaceCheckpoint(playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} reward = preward/2; GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); PlayerPlayMusic(playerid); format(string, sizeof(string), "~g~2nd place~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 6); RaceTime[playerid] = Gtickcount; pos3time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos3time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s Just Came 2nd a StreetRace For $%d T: +%d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); } else if (gRaceFin == 3) { CheckpointReset(); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); // if (gdebug){print("DEBUG RACE OVER");} reward = preward/3; GetPlayerName(playerid, name, sizeof(name)); GivePlayerMoney(playerid, reward); PlayerPlayMusic(playerid); format(string, sizeof(string), "~g~3rd place~n~~w~Your winnings are ~n~~g~$%d", reward); GameTextForPlayer(playerid, string, 5000, 6); RaceTime[playerid] = Gtickcount; pos2time = RaceTime[playerid] - StartTime[playerid]; new splittime = pos2time - pos1time; ConvertTicks(splittime); GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "RACENEWS: %s Just Came 3rd a StreetRace For $%d T: +%d:%d:%d", name,reward,cmins,csecs,cmils); BroadCast(COLOR_WHITE, string); KillTimer(raceendtimer); RaceEnd(); } } } return 1; }