Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: krizmanikdev poslato Jul 14, 2021, 00:30:02 PRE PODNE

Naslov: Pomoc
Poruka od: krizmanikdev poslato Jul 14, 2021, 00:30:02 PRE PODNE
Problem(error/warning): kako da napravim da ukoliko je na OnPlayerSpawn neka varijabla na 1 da se igraču seta odredjena pozicija a ukoliko je na 0 da ga spawna na klasičnom spawnu?
Deo skripte: treba mi samo primjer, znači onaj tko želi pomoći nek samo da primjer i ja to zamjenim sa svojim[pawn][/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Naslov: Odg: Pomoc
Poruka od: realplaya poslato Jul 14, 2021, 00:41:21 PRE PODNE
if(varijabla == 0)
{
    SetPlayerPos(playerid, neke, tvoje, koordinate);
}
else if(varijabla == 1)
{
    SetPlayerPos(playerid, neke, tvoje, druge koordinate);
}
Naslov: Odg: Pomoc
Poruka od: _tayloR poslato Jul 14, 2021, 00:52:51 PRE PODNE
Mozes ovako mozda,

napravi u Enumu int varijablu jednu u koju ces smjestat te pozicije npr ako je 1 tu ga spawna itd itd.

ovako mozes dodat pod OnPlayerSpawn

[pawn]
switch(PlayerInfo[playerid][pSpawn]) { // Stavi tu kako ti je u enumu
   case 0: {
      // Setaj sta oces ako je vrijednost 0
   }
   case 1: {
      //Isto i za 1 itd itd
   }
}[/pawn]
Naslov: Odg: Pomoc
Poruka od: realplaya poslato Jul 14, 2021, 00:54:05 PRE PODNE
Citat: Taylor Morelli poslato Jul 14, 2021, 00:52:51 PRE PODNE
Mozes ovako mozda,

napravi u Enumu int varijablu jednu u koju ces smjestat te pozicije npr ako je 1 tu ga spawna itd itd.

ovako mozes dodat pod OnPlayerSpawn

[pawn]
switch(PlayerInfo[playerid][pSpawn]) { // Stavi tu kako ti je u enumu
   case 0: {
      // Setaj sta oces ako je vrijednost 0
   }
   case 1: {
      //Isto i za 1 itd itd
   }
}[/pawn]
pa ne znam bas da li mu treba switch za ovakvu stvar.. :/
Naslov: Odg: Pomoc
Poruka od: Darkic poslato Jul 14, 2021, 01:18:41 PRE PODNE
Ako ces imati samo dve opcije, dovoljan je bool i if provera. Switch koristis samo ako ces imati dosta opcija.
Naslov: Odg: Pomoc
Poruka od: krizmanikdev poslato Jul 14, 2021, 13:23:16 POSLE PODNE
Citat: ᴛʜᴇꜱᴍᴏᴋᴇ poslato Jul 14, 2021, 00:41:21 PRE PODNE
if(varijabla == 0)
{
    SetPlayerPos(playerid, neke, tvoje, koordinate);
}
else if(varijabla == 1)
{
    SetPlayerPos(playerid, neke, tvoje, druge koordinate);
}

C:\Users\User\Pictures\Serveri\Mega DM by Lukq\gamemodes\ElegantDM.pwn(446) : error 033: array must be indexed (variable "FBITeam")
C:\Users\User\Pictures\Serveri\Mega DM by Lukq\gamemodes\ElegantDM.pwn(450) : error 033: array must be indexed (variable "GSFTeam")
Naslov: Odg: Pomoc
Poruka od: Claus poslato Jul 14, 2021, 15:26:01 POSLE PODNE
Daj kako si definisao i kako si stavio pod OnPlayerSpawn
Naslov: Odg: Pomoc
Poruka od: tutankamon poslato Jul 15, 2021, 03:26:45 PRE PODNE
Citat: Darkic poslato Jul 14, 2021, 01:18:41 PRE PODNE
Ako ces imati samo dve opcije, dovoljan je bool i if provera. Switch koristis samo ako ces imati dosta opcija.
Uopšte nije bitno da li će koristiti if ili switch u ovom slučaju.
Takođe, kada bi koristio bool za čuvanje mesta za spawn - to će ga ograničiti na samo 2 opcije i uopšte nije pragmatično koristiti bool za takvo nešto, pogotovo ako će u budućnosti dodavati više opcija.
Sasvim je legitimno koristiti switch za 2 ili više opcija, a pogotovo u ovom slučaju gde će on omogućiti sebi i svakom drugom ko bude radio na toj skripti mogućnost za lakše dodavanje novih spawn pointa što uslovljava bržom proverom od strane switch naredbe i urednijim čuvanjem podataka.