All pastes #108224 Raw Edit

Someone

public text v1 · immutable
#108224 ·published 2006-07-31 11:09 UTC
rendered paste body
//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;
}