[Pomoc] Race

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

prethodna tema - sledeća tema

0 članova i 2 gostiju 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.