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;
}
}
}
}
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.