#include #define COLOR_GREEN 0x33AA33AA // TIME: #define SECOND 1000 #define MINUTE 60000 #define HOUR 600000 #define TIMERACEALLERT 1500000 #define RECORDFILE "grishracetemplatefile.txt" #define RECORDFILE2 "grishracetemplatefile2.txt" #define MAXCP 39 #define MAXCP2 32 new Float:racestart[8][4] = { {-1559.1503,708.2474,6.6046,90.0}, {-1559.1503,709.2474,7.6046,90.0}, {-1559.1503,710.2474,8.6046,90.0}, {-1559.1503,711.2474,9.6046,90.0}, {-1559.1503,712.2474,10.6046,90.0}, {-1559.1503,713.2474,11.6046,90.0}, {-1559.1503,714.2474,12.6046,90.0}, {-1559.1503,715.2474,13.6046,90.0} }; new Float:checkpoints[MAXCP][3] = { {-1557.1720,913.4298,6.6054}, {-1602.5135,1118.2772,6.6054}, {-1844.4310,1351.6093,6.6009}, {-2079.8464,1272.9178,11.6295}, {-2262.8469,1176.7844,55.1499}, {-2260.3962,1012.0422,83.1768}, {-2382.6052,957.6801,44.8325}, {-2385.7439,733.5667,34.5818}, {-2497.6321,707.3870,32.2510}, {-2607.5371,731.9816,28.5625}, {-2605.9036,964.6667,77.6841}, {-2604.2388,1085.6256,59.3463}, {-2592.1790,1157.8811,55.3600}, {-2535.8103,1286.4193,26.5746}, {-2634.2222,1359.3425,6.6838}, {-2710.8501,1381.4888,6.7219}, {-2820.6482,1262.5719,5.0210}, {-2882.0867,1077.7074,30.2150}, {-2810.7952,925.7395,43.4617}, {-2759.2009,807.9506,52.4915}, {-2658.0813,811.3412,49.3931}, {-2517.8540,807.9695,49.3985}, {-2301.2073,808.3007,48.3257}, {-2154.7844,808.6729,68.9847}, {-1993.5045,798.5537,45.0106}, {-1935.2275,798.2739,55.2822}, {-1899.0630,763.1768,44.2799}, {-1898.4320,606.6982,34.5806}, {-1908.2784,511.8835,34.7382}, {-1909.4056,416.5461,34.7382}, {-1905.1587,326.0932,42.4806}, {-1875.8722,290.0139,32.9206}, {-1824.0787,434.0487,17.3025}, {-1771.8665,500.2256,40.3071}, {-1714.3840,555.8719,38.3179}, {-1652.3475,612.8929,24.2222}, {-1607.4950,661.7707,6.7530}, {-1520.7029,699.4978,6.7555}, {0.0,0.0,0.0} }; new Float:checkpointsRACE2[MAXCP2][3] = { {-2147.8325,-347.8195,34.8378}, {-2016.0786,-350.6972,35.6351}, {-1881.5635,-298.4046,50.5083}, {-1882.7911,-143.3618,38.2109}, {-1887.9915,27.2732,37.9425}, {-1845.1075,298.8844,38.2941}, {-1718.6028,483.5216,38.0311}, {-1526.8628,680.6560,44.5145}, {-1128.5996,1099.8715,37.9211}, {-1060.7582,1172.2555,38.5142}, {-944.6235,1058.4144,24.5935}, {-847.6355,999.5159,24.3175}, {-825.9467,1076.9325,34.3009}, {-877.6638,1040.3339,34.2810}, {-1048.3295,915.6757,34.3251}, {-1428.2582,638.6948,34.3294}, {-1490.9252,597.7620,34.2837}, {-1510.1848,580.1924,34.2840}, {-1542.7854,551.9789,34.1605}, {-1591.5392,461.4247,6.7357}, {-1717.1329,337.0109,6.7356}, {-1813.5970,375.3296,16.7200}, {-1852.2682,354.9960,18.4686}, {-1896.7186,216.4087,38.6078}, {-1964.2202,190.1717,26.4262}, {-2006.4141,89.0367,27.2434}, {-2006.5265,-101.1823,35.3361}, {-2005.4330,-259.4799,35.1859}, {-2026.9711,-316.9001,34.9268}, {-2129.0125,-361.9762,34.7878}, {-2148.9014,-396.7011,35.0457}, {0.0, 0.0, 0.0} }; new playercp[MAXCP]; new msg[250]; new playerdriving[100]; new playerinrace[100]; new playercheck[100]; new playerposition[100]; new raceneumber = 0; new timestart[100]; new timeend[100]; new Float:timetotal[100]; new minutes[100]; new seconds[100]; new mseconds[100] ; new ready = 0; new rcount = 0; new raceon = 0; new trig = 0; new trigg = 0; new triggg = 0; new jointorace[MAX_PLAYERS]; new racers = 0; new finished = 0; main() { print("\n----------------------------------"); print(" ERS"); print("----------------------------------\n"); } public OnGameModeInit() { SetGameModeText("ERS"); AddPlayerClass(0,-1559.1503,708.2474,19.6046,90.00, 0, 0, 0, 0, 0, 0); AddStaticVehicle(541,-1559.1503,708.2474,6.6046,90.0,0,16); AddStaticVehicle(541,-1559.1503,708.2474,6.6046,90.0,0,16); AddStaticVehicle(541,-1559.1503,708.2474,6.6046,90.00,0,16); AddStaticVehicle(541,-1559.1503,708.2474,6.6046,90.0,0,16); AddStaticVehicle(541,-1559.1503,708.2474,6.6046,90.0,0,16); SetTimer("RaceAllert",TIMERACEALLERT,1); SetTimer("IsRaceEmpty",SECOND+100,1); for (new i=0; i= 1 && playercheck[playerid] <=MAXCP-2) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,checkpoints[playercheck[playerid]][0],checkpoints[playercheck[playerid]][1],checkpoints[playercheck[playerid]][2],7.0); PlayerPlaySound(playerid,1053,checkpoints[playercheck[playerid]][0],checkpoints[playercheck[playerid]][1],checkpoints[playercheck[playerid]][2]); format(msg,sizeof(msg),"cp %d of %d",playercheck[playerid],MAXCP-1); GameTextForPlayer(playerid,msg,2000,6); if (playercp[playercheck[playerid]] == 999) { playercp[playercheck[playerid]] = playerid; } } if (playercheck[playerid] == MAXCP-1) { DisablePlayerCheckpoint(playerid); timeend[playerid] = tickcount(); timetotal[playerid] = timeend[playerid] - timestart[playerid]; timeconvert(playerid); PlayerPlaySound(playerid,1132,checkpoints[playercheck[playerid]][0],checkpoints[playercheck[playerid]][1],checkpoints[playercheck[playerid]][2]); finished = finished + 1; playerposition[playerid] = finished; new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME); new pos[] = "th"; if (playerposition[playerid] == 1 || playerposition[playerid] == 21 || playerposition[playerid] == 31 || playerposition[playerid] == 41 || playerposition[playerid] == 51 || playerposition[playerid] == 61 || playerposition[playerid] == 71 || playerposition[playerid] == 81 || playerposition[playerid] == 91) { pos = "st"; } if (playerposition[playerid] == 2 || playerposition[playerid] == 22 || playerposition[playerid] == 32 || playerposition[playerid] == 42 || playerposition[playerid] == 52 || playerposition[playerid] == 62 || playerposition[playerid] == 72 || playerposition[playerid] == 82 || playerposition[playerid] == 92) { pos = "nd"; } if (playerposition[playerid] == 3 || playerposition[playerid] == 23 || playerposition[playerid] == 33 || playerposition[playerid] == 43 || playerposition[playerid] == 53 || playerposition[playerid] == 63 || playerposition[playerid] == 73 || playerposition[playerid] == 83 || playerposition[playerid] == 93) { pos = "rd"; } format(msg,sizeof(msg),"you finished %d%s in %dmin %d.%dsec",playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]); GameTextForPlayer(playerid,msg,3000,3); format(msg,sizeof(msg),"%s finished %d%s in %dmin %d.%dsec",pname,playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]); SendClientMessageToAll(0x00FF00FF,msg); playerinrace[playerid] = 0; if (trigg == 0) { trigg = 1; SetTimer("WaitBeforeRaceEnd",2000,0); } }} if (raceneumber == 1){ playercheck[playerid] = playercheck[playerid] + 1; if (playercheck[playerid] >= 1 && playercheck[playerid] <=MAXCP2-2) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,checkpointsRACE2[playercheck[playerid]][0],checkpointsRACE2[playercheck[playerid]][1],checkpointsRACE2[playercheck[playerid]][2],7.0); PlayerPlaySound(playerid,1053,checkpointsRACE2[playercheck[playerid]][0],checkpointsRACE2[playercheck[playerid]][1],checkpointsRACE2[playercheck[playerid]][2]); format(msg,sizeof(msg),"cp %d of %d",playercheck[playerid],MAXCP2-1); GameTextForPlayer(playerid,msg,2000,6); if (playercp[playercheck[playerid]] == 999) { playercp[playercheck[playerid]] = playerid; } } if (playercheck[playerid] == MAXCP2-1) { DisablePlayerCheckpoint(playerid); timeend[playerid] = tickcount(); timetotal[playerid] = timeend[playerid] - timestart[playerid]; timeconvert(playerid); PlayerPlaySound(playerid,1132,checkpointsRACE2[playercheck[playerid]][0],checkpointsRACE2[playercheck[playerid]][1],checkpointsRACE2[playercheck[playerid]][2]); finished = finished + 1; playerposition[playerid] = finished; new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME); new pos[] = "th"; if (playerposition[playerid] == 1 || playerposition[playerid] == 21 || playerposition[playerid] == 31 || playerposition[playerid] == 41 || playerposition[playerid] == 51 || playerposition[playerid] == 61 || playerposition[playerid] == 71 || playerposition[playerid] == 81 || playerposition[playerid] == 91) { pos = "st"; } if (playerposition[playerid] == 2 || playerposition[playerid] == 22 || playerposition[playerid] == 32 || playerposition[playerid] == 42 || playerposition[playerid] == 52 || playerposition[playerid] == 62 || playerposition[playerid] == 72 || playerposition[playerid] == 82 || playerposition[playerid] == 92) { pos = "nd"; } if (playerposition[playerid] == 3 || playerposition[playerid] == 23 || playerposition[playerid] == 33 || playerposition[playerid] == 43 || playerposition[playerid] == 53 || playerposition[playerid] == 63 || playerposition[playerid] == 73 || playerposition[playerid] == 83 || playerposition[playerid] == 93) { pos = "rd"; } format(msg,sizeof(msg),"you finished %d%s in %dmin %d.%dsec",playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]); GameTextForPlayer(playerid,msg,3000,3); format(msg,sizeof(msg),"%s finished %d%s in %dmin %d.%dsec",pname,playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]); SendClientMessageToAll(0x00FF00FF,msg); playerinrace[playerid] = 0; if (trigg == 0) { trigg = 1; SetTimer("WaitBeforeRaceEnd",2000,0); } }} printf("OnPlayerEnterCheckpoint(%d)", playerid); return 1; } public OnPlayerLeaveCheckpoint(playerid) { printf("OnPlayerLeaveCheckpoint(%d)", playerid); return 1; } public RaceAllert(){ new ad; for(ad=0;ad