14.07.2010, 11:17
Hi..
I want that if you get in a checkpoint, you need to wait 10 seconds. Don't ask me why you need to wait, but this is what I got:
Now, the problem is, that if it enters it says "Please wait...", and after like 1 second it says that the race has ended..
How can I fix this so when you enter it you need to wait 10 seconds, and after 10 seconds the race ends..
I want that if you get in a checkpoint, you need to wait 10 seconds. Don't ask me why you need to wait, but this is what I got:
Код:
public OnPlayerEnterRaceCheckpoint(playerid) { SetTimerEx("StuntBattleCompleted", 10000, false, "i", playerid); // TogglePlayerControllable(playerid, false); GameTextForPlayer(playerid, "~r~Please wait...", 10000, 3); return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { KillTimer(StuntBattleCompleted(playerid)); return 1; } forward StuntBattleCompleted(playerid); public StuntBattleCompleted(playerid) { if(CPProgess[playerid] == TotalCP -1) { new TimeStamp, TotalRaceTime, string[256], rFile[256], pName[MAX_PLAYER_NAME], rTime[3], Prize[2], TempTotalTime, TempTime[3] ; Position++; GetPlayerName(playerid, pName, sizeof(pName)); TimeStamp = GetTickCount(); TotalRaceTime = TimeStamp - RaceTick; ConvertTime(var, TotalRaceTime, rTime[0], rTime[1], rTime[2]); switch(Position) { case 1: Prize[0] = (random(random(5000)) + 10000), Prize[1] = 10; case 2: Prize[0] = (random(random(4500)) + 9000), Prize[1] = 9; case 3: Prize[0] = (random(random(4000)) + 8000), Prize[1] = 8; case 4: Prize[0] = (random(random(3500)) + 7000), Prize[1] = 7; case 5: Prize[0] = (random(random(3000)) + 6000), Prize[1] = 6; case 6: Prize[0] = (random(random(2500)) + 5000), Prize[1] = 5; case 7: Prize[0] = (random(random(2000)) + 4000), Prize[1] = 4; case 8: Prize[0] = (random(random(1500)) + 3000), Prize[1] = 3; case 9: Prize[0] = (random(random(1000)) + 2000), Prize[1] = 2; default: Prize[0] = random(random(1000)), Prize[1] = 1; } format(string, sizeof(string), ">> \"%s\" has finished the stuntbattle in position \"%d\".", pName, Position); SendClientMessageToAll(WHITE, string); format(string, sizeof(string), " - Time: \"%d:%d.%d\".", rTime[0], rTime[1], rTime[2]); SendClientMessageToAll(WHITE, string); format(string, sizeof(string), " - Prize: \"$%d and +%d Score\".", Prize[0], Prize[1]); SendClientMessageToAll(WHITE, string); if(FinishCount <= 5) { format(rFile, sizeof(rFile), "/rRaceSystem/%s.RRACE", RaceName); format(string, sizeof(string), "BestRacerTime_%d", TimeProgress); TempTotalTime = dini_Int(rFile, string); ConvertTime(var1, TempTotalTime, TempTime[0], TempTime[1], TempTime[2]); if(TotalRaceTime <= dini_Int(rFile, string) || TempTotalTime == 0) { dini_IntSet(rFile, string, TotalRaceTime); format(string, sizeof(string), "BestRacer_%d", TimeProgress); if(TempTotalTime != 0) format(string, sizeof(string), ">> \"%s\" has broken the record of \"%s\" with \"%d\" seconds faster on the \"%d\"'st/th place!", pName, dini_Get(rFile, string), -(rTime[1] - TempTime[1]), TimeProgress+1); else format(string, sizeof(string), ">> \"%s\" has broken a new record of on the \"%d\"'st/th place!", pName, TimeProgress+1); SendClientMessageToAll(GREEN, " "); SendClientMessageToAll(GREEN, string); SendClientMessageToAll(GREEN, " "); format(string, sizeof(string), "BestRacer_%d", TimeProgress); dini_Set(rFile, string, pName); TimeProgress++; } } FinishCount++; GivePlayerMoney(playerid, Prize[0]); SetPlayerScore(playerid, GetPlayerScore(playerid) + Prize[1]); DisablePlayerRaceCheckpoint(playerid); CPProgess[playerid]++; if(FinishCount >= JoinCount) return StopRace(); } else { CPProgess[playerid]++; CPCoords[CPProgess[playerid]][3]++; RacePosition[playerid] = floatround(CPCoords[CPProgess[playerid]][3], floatround_floor); SetCP(playerid, CPProgess[playerid], CPProgess[playerid]+1, TotalCP, RaceType); PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0); } return 1; }
How can I fix this so when you enter it you need to wait 10 seconds, and after 10 seconds the race ends..