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