[Pomoc] Race


Započeo Moonwalker, Januar 11, 2011, 17:42:28 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

napravio sam race. i imam dvije strane koje igraci sami aktiviraju. Lijevu i Desnu. i sada kad aktiviram Desnu stranu, odvozim do kraja sve je ok. A kad aktiviram Lijevu stranu, kenem vozit, pokaze mi se CP na desnoj strani, a trebalo bi na lijevoj. nzm zasto je to tako, stoga bih molio za pomoc hvala.

Evo kako sve izgleda:

Komanda pomocu koje igraci aktiviraju

if(strcmp(cmd, "/aktiviraj", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			if (PlayerToPoint(15, playerid,2043.6223,-2573.2019,13.5469))
			{
				GetPlayerName(playerid, sendername, sizeof(sendername));
				SendClientMessage(playerid,COLOR_ORANGE, "Aktivirali ste DESNU stranu 402 Street Race-a, pricekajte da admin oznaci start");
				format(string, sizeof(string), "* %s je aktivirao DESNU stranu 402 Street Race-a", sendername);
				ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				PlayerInfo[giveplayerid][pUtrka] = 1;
			}
			else if (PlayerToPoint(15, playerid,2043.7988,-2613.2976,13.5469))
			{
				GetPlayerName(playerid, sendername, sizeof(sendername));
				SendClientMessage(playerid,COLOR_ORANGE, "Aktivirali ste LIJEVU stranu 402 Street Race-a, pricekajte da admin oznaci start");
        		format(string, sizeof(string), "* %s je aktivirao LIJEVU stranu 402 Street Race-a", sendername);
				ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				PlayerInfo[giveplayerid][pUtrka] = 1;
			}
			
		}
		return 1;
	}


Onda timer utrke tj. odbrojavanje:

public UtrkaTimer()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pUtrka] == 1)
		    {
              GameTextForPlayer(i, "2",1000,6);
              SetTimer("UtrkaTimer2",1000,0);
			}
		}
	}
}
public UtrkaTimer2()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pUtrka] == 1)
		    {
              GameTextForPlayer(i, "1",1000,6);
              SetTimer("UtrkaTimer3",1000,0);
			}
		}
	}
}
public UtrkaTimer3()
{
    MoveDynamicObject(ograda1,2046.2635498047, -2593.4248046875, 11.655453681946, 100.0);
    MoveDynamicObject(ograda2,1643.6560058594, -1711.1704101563, 13.230429649353, 100.0);
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pUtrka] == 1)
		    {
              GameTextForPlayer(i, "START !!!",1000,6);
			  SetPlayerRaceCheckpoint(i, 1, 1512.5087,-2600.9878,13.5469, 0, 0, 0, 5);//LIJEVI CP
              SetPlayerRaceCheckpoint(i, 1, 1512.3674,-2585.4988,13.5469, 0, 0, 0, 5);//DESNI CP
			  PlayerInfo[i][pUtrka] = 2;
			}
		}
	}
}


komanda pomocu koje se pokrece utrka.

if(strcmp(cmd, "/utrka", true) == 0)
	{
		if (PlayerInfo[playerid][pAdmin] >= 1)
		{
	         GetPlayerName(playerid, sendername, sizeof(sendername));
             SendClientMessage(playerid, COLOR_LIGHTRED, "Aktivirao si utrku");
	         for(new i = 0; i < MAX_PLAYERS; i++)
	         {
		        if(IsPlayerConnected(i))
		        {
		           if(PlayerInfo[i][pUtrka] == 1)
		           {
                       SendClientMessage(i,COLOR_LIGHTBLUE, "Utrka ce startati za 3 sekunde");
                       GameTextForPlayer(i, "3",1000,6);
                       SetTimer("UtrkaTimer",1000,0);
		 	       }
		        }
	         }
		}
		return 1;
	}


i posljednje public OnPlayerEnterRaceCheckpoint:

public OnPlayerEnterRaceCheckpoint(playerid)
{
	new string[128];
	if(PlayerToPoint(10, playerid,1512.5087,-2600.9878,13.5469))//LIJEVI CP
 	{
    	if(PlayerInfo[playerid][pUtrka] == 2)
        {
        	SendClientMessage(playerid, COLOR_YELLOW, "Prosao si kroz cilj");
            DisablePlayerRaceCheckpoint(playerid);
        	new sendername[MAX_PLAYER_NAME];
	        GetPlayerName(playerid, sendername, sizeof(sendername));
	        for(new i = 0; i < MAX_PLAYERS; i++)
            {
				if(IsPlayerConnected(i))
				{
    				if(PlayerInfo[i][pUtrka] > 1)
					{
			        	format(string, sizeof(string), "[402 Street Race] CILJ: %s",sendername);
			            SendClientMessage(i,COLOR_WHITE , string);
					}
				}
			}
		}
	}
	else if(PlayerToPoint(10, playerid,1512.3674,-2585.4988,13.5469))//DESNI CP
 	{
    	if(PlayerInfo[playerid][pUtrka] == 2)
        {
        	SendClientMessage(playerid, COLOR_YELLOW, "Prosao si kroz cilj");
            DisablePlayerRaceCheckpoint(playerid);
        	new sendername[MAX_PLAYER_NAME];
	        GetPlayerName(playerid, sendername, sizeof(sendername));
	        for(new i = 0; i < MAX_PLAYERS; i++)
            {
				if(IsPlayerConnected(i))
				{
    				if(PlayerInfo[i][pUtrka] > 1)
					{
			        	format(string, sizeof(string), "[402 Street Race] CILJ: %s",sendername);
			            SendClientMessage(i,COLOR_BLUE , string);
     				}
				}
			}
		}
	}
	return 1;
}


Hvala
Poslednja Izmena: Januar 11, 2011, 20:40:08 POSLE PODNE od Maurice

oba dva racea imaju varibijal pUtrka

napravi da ti jedan bude    pUtrka   a drugi   pUtrka2   i morat ces ponovno radit cp za varibijal pUtrka2

ako nesto nisi razumio kazi



Posjetite nas i osjetite razliku
www.balkan-city.info



193.192.59.151:7788


Game monitor nije u 100% tocan tj uvjek pokaziva manje

Zasto rabis PlayerInfo da se sve savea i to, to je totalno bespotrebno, jednostavno ovako napravis:

new race[MAX_PLAYERS];

i onda za desnu stranu stavis npr. race[playerid] = 1; a za lijevu race[playerid] = 2;

Aequam memento rebus in arduis servare mentem.