Skocz do zawartości
komwboj

2 randomowe spawny 1 błąd

Rekomendowane odpowiedzi

Siemka zrobiłem w mapie 2 randomowe spawny i gdy gracz sie loguje na serwer i leci na pierwszy randomowy spawn i ma przejechać przez dany punkt kontrolny to da mu możliwość do drugiego randomowego spawnu i mój problem jest taki. Gracz się loguje i jak przejedzie to daje mu mozliwość korzystania z cmd lecz problem zaczyna sie gdy ma mu dać drugi randomowy spawn . W wg kodu daje mu takową mozliwość lecz gdy zaliczy killa to leci spowrotem na pierwszy spawn. :)

Podsyłam kody

onplayerspawn
SetPlayerRandomSpawn(playerid);

    

    if(!FirstSpawn[playerid]){

        Zjazdg[playerid] = true;

    }

    FirstSpawn[playerid] = true;

    Zjazdg[playerid] = true;

i

SetPlayerRandomSpawn
 
if(Zjazdg[playerid] == false){

        new rand = random(sizeof(RandomPlayerSpawns));

        SetPlayerPos(playerid, RandomPlayerSpawns[rand][0], RandomPlayerSpawns[rand][1], RandomPlayerSpawns[rand][2]);

        SetPlayerInterior(playerid,0);

        SetPlayerVirtualWorld(playerid,0);

        PlayerSetColor(playerid);

        if(MaDom[playerid]){

            new x=HouseID[playerid];

            SetPlayerPos(playerid,HouseInfo[x][henter_x],HouseInfo[x][henter_y],HouseInfo[x][henter_z]);

            SetPlayerInterior(playerid,0);

            SetPlayerVirtualWorld(playerid,0);

            PlayerSetColor(playerid);

            SetPlayerTeam(playerid,playerid+10);

            Zjazdg[playerid] = false;

            return 1;

        }

    }

    Zjazdg[playerid] = true;

    

    new rand = random(sizeof(gRandomPlayerSpawns));

    SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);

    SetPlayerInterior(playerid,0);

    SetPlayerVirtualWorld(playerid,0);

    PlayerSetColor(playerid);

    SetPlayerTeam(playerid,playerid+10);

w onplayerconnect i onplayerdisconnect mam Zjazdg[playerid] = false;

 

Ja już od zmysłów odchodzę dlaczego to się tak dzieje :P

 

 

Proszę o pomoc :)

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Już tłumaczę więc tak FirstSpawn oznacza gdy gracz spawnuje się pierwszy raz na serwerze(idzie wywnioskować z nazwy)
Zjazdg to "ranga" która jest przypisana dla osoby w Firstspawnie
Domyślny spawn to gRandomPlayerSpawns

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mam rozumieć ze domyslnie FirstSpawn przyjmuje wartość false(troche nie logicznie, bo nazwa sugeruje ze domyslnie powinno byc true).

onplayerspawn
    SetPlayerRandomSpawn(playerid);

    if(!FirstSpawn[playerid])
    {
        Zjazdg[playerid] = true;
	FirstSpawn[playerid] = true;
    }
	
	
SetPlayerRandomSpawn
 
	if(Zjazdg[playerid])
	{
            if(MaDom[playerid])
	    {
               new x=HouseID[playerid];

               SetPlayerPos(playerid,HouseInfo[x][henter_x],HouseInfo[x][henter_y],HouseInfo[x][henter_z]);
               SetPlayerInterior(playerid,0);
               SetPlayerVirtualWorld(playerid,0);
               PlayerSetColor(playerid);
               SetPlayerTeam(playerid,playerid+10);
            }
	    else
	    {
		new rand = random(sizeof(RandomPlayerSpawns));

		SetPlayerPos(playerid, RandomPlayerSpawns[rand][0], RandomPlayerSpawns[rand][1], RandomPlayerSpawns[rand][2]);
		SetPlayerInterior(playerid,0);
		SetPlayerVirtualWorld(playerid,0);
		PlayerSetColor(playerid);
	    }
       }
       else
       {
	   new rand = random(sizeof(gRandomPlayerSpawns));

	   SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
	   SetPlayerInterior(playerid,0);
	   SetPlayerVirtualWorld(playerid,0);
	   PlayerSetColor(playerid);
	   SetPlayerTeam(playerid,playerid+10);
       }

#edit. mała poprawka, bo wkradł się błąd w warunku.

Edytowane przez Viral

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

teraz jak wpisze /kill to mnie wywala gdzieś w powietrze

 
@edit teraz jest tak: respie sie na tym spawnie gdzie jest ten zjazd ale po użyciu cmd /kill ide na ten spawn 2 czyli gRandomPlayerSpawns

 

@edit2 Dobra już działa musiałem dodać do onplayerconnect zjazdg[playerid] = true; a z onplayerspawn wydygać

Edytowane przez komwboj

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×