[pomoc] race


Započeo | MARKO |, Januar 30, 2011, 20:06:00 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

evo ovako. imam mali problem. napravio sam da igrac sam mora aktivirati lijevu ili desnu stranu Drag Race-a. i sada kad dva igraca se utrkuju jedan na lijevoj drugi na desnoj strani, obojica dobiju CP na desnoj strani. nzm zasto je tako.
evo code kako izgleda:

   if(strcmp(cmd, "/aktiviraj", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			GetPlayerName(playerid, sendername, sizeof(sendername));
			if(PlayerToPoint(10,playerid,2047.9989,-2575.7141,13.5469))
			{
				SendClientMessage(playerid,COLOR_LIGHTRED, "Aktivirali ste DESNU stranu Drag Race-a, pricekajte da admin oznaci start");
				format(string, sizeof(string), "* %s je aktivirao DESNU stranu Drag 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(10,playerid,2047.9899,-2611.2908,13.5469))
			{
				SendClientMessage(playerid,COLOR_LIGHTRED, "Aktivirali ste LIJEVU stranu Drag Race-a, pricekajte da admin oznaci start");
				format(string, sizeof(string), "* %s je aktivirao LIJEVU stranu Drag Race-a.", sendername);
				ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				PlayerInfo[giveplayerid][pUtrka1] = 1;
			}
			else{SendClientMessage(playerid,COLOR_GRAD1, "Niste na mjestu za aktiviranje utrke!");}
		}
		return 1;
	}


if(strcmp(cmd, "/utrka", true) == 0)
	{
		if (PlayerInfo[playerid][pAdmin] >= 1)
		{
			GetPlayerName(playerid, sendername, sizeof(sendername));
    		SendClientMessage(playerid, COLOR_RED, "Oznacili ste pocetak Drag Race utrke");
       		format(string, sizeof(string),"Drag Race | %s je aktivirao utrku",sendername);
   			SendAdminMessage(COLOR_RED,string);
	 		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);
		 	 		}
					else if(PlayerInfo[i][pUtrka1] == 1)
		 			{
                		SendClientMessage(i,COLOR_LIGHTBLUE, "Utrka ce startati za 3 sekunde");
               			GameTextForPlayer(i, "3",1000,6);
                		SetTimer("UtrkaTimer",1000,0);
		 	  		}
				}
			}
		}
		return 1;
	}


if(PlayerToPoint(5, playerid,1512.5548095703, -2585.4853515625, 13.196100234985))//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), "|Drag Race | - Cilj: %s",sendername);
						SendClientMessage(i,COLOR_BLUE , string);
					}
				}
			}
		}
	}
	else if(PlayerToPoint(5, playerid,1512.5548095703, -2601.2080078125, 13.196100234985))//LIJEVI CP
	{
		if(PlayerInfo[playerid][pUtrka1] == 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][pUtrka1] > 1)
					{
						format(string, sizeof(string), "|Drag Race | - Cilj: %s",sendername);
						SendClientMessage(i,COLOR_WHITE , string);
					}
				}
			}
		}
	}


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);
			}
   			else if(PlayerInfo[i][pUtrka1] == 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);
			}
			else if(PlayerInfo[i][pUtrka1] == 1)
		    {
              GameTextForPlayer(i, "1",1000,6);
              SetTimer("UtrkaTimer3",1000,0);
			}
		}
	}
}
public UtrkaTimer3()
{
    MoveDynamicObject(raceograda1,2046.2635498047, -2593.4248046875, 11.655453681946, 100);
    MoveDynamicObject(raceograda2,2066.6982421875, -2593.4248046875, 13.230429649353, 100);
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pUtrka] == 1)
		    {
              GameTextForPlayer(i, "START !!!",1000,6);
              SetPlayerRaceCheckpoint(i, 0, 1512.5548095703, -2585.4853515625, 13.196100234985, 0, 0, 0, 5);//cp 1
              PlayerInfo[i][pUtrka] = 2;
			}
  			else if(PlayerInfo[i][pUtrka1] == 1)
		    {
              GameTextForPlayer(i, "START !!!",1000,6);
              SetPlayerRaceCheckpoint(i, 0, 1512.5548095703, -2601.2080078125, 13.196100234985, 0, 0, 0, 5);//cp 2
              PlayerInfo[i][pUtrka1] = 2;
			}
		}
	}
}
Poslednja Izmena: Januar 30, 2011, 20:07:02 POSLE PODNE od pero93

Dude

*

zerocoolos

totalka si pobrkao lončiće....

koristi samo jednu varijablu, sta ce ti dvije... zasto dva puta pozivas na /utrka isti timer?

pod aktiviraj:
za prvog igraca pUtrka = 1;
za drugog pUtrka = 2;


Na /utrka
loopaj kroz igrace i onda radi sljedecu provjeru:
if(PlayerInfo[i][pUtrka] == 1)
{
 //tu stavi poruku za igraca "Utrka starta za 3 sekunde. TI si na lijevoj(ili desnoj) strani!"
}
if(PlayerInfo[i][pUtrka] == 2)
{
 //tu stavi poruku za igraca "Utrka starta za 3 sekunde. TI si na desnoj(ili lijevoj) strani!"
}


zatim, izvan loopa stavi SetTimer("UtrkaTimer",1000,0);

i onda pod zadnje timeru, opet loopaj kroz igrace
if(PlayerInfo[i][pUtrka] == 1)
{
 // tu stavi prvi cp(od prve strane)
}
if(PlayerInfo[i][pUtrka] == 2)
{
 // tu stavi drugicp(od druge strane)
}


ostalo za cpove prolaz znas i sam... valjda

Djuro, hvala puno. spasio si me.