Ne radi nijedna komanda gde koristim ||

Započeo .Drakula.
pre 3 godine
412
pregleda
5
postova
Dragan_Milosavljevic
Shot Caller
pre 3 godine
Problem(error/warning): Bilo koja komanda gde koristim  || jednostavno ne radi lepo obijasnicu dole
Ako sklonim proveru, komanda radi normalno.
Deo skripte:

//u koli kojoj komandi ako dodam proveru
if(PI < 1 || PI < 2) return Error(playerid, "Upisali ste komandu koja ne postoji.");
//komanda ne radi vec samo ispisuje Error poruku

//primer:
CMD:spec(playerid, params[])
{
  if(PI < 1 || PI < 2) return Error(playerid, "Upisali ste komandu koja ne postoji.");  //samo ce ispisivati Error
  new id;
  if(sscanf(params,"u",id)) return Cmd(playerid, "/spec [ ID ]");
  else if(id == IPI) return Error(playerid, "Taj igrac ne postoji.");
        else if(id == playerid) return Error(playerid, "Ne mozete specati sami sebe.");
        .......
        .......
  return 1;
}

CMD:prison(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
        if(PI < 1 || PI < 2) return Error(playerid, "Upisali ste komandu koja ne postoji.");  // samo Error poruka
        .......
        .......
        .......
  }
    return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Shavershian
Rookie
pre 3 godine
if(PI < 1 || PI < 2) return Error(playerid, "Upisali ste komandu koja ne postoji.");


U prijevodu, ako je igrač manje razine admina od 1 ILI mu je razina helper-a manja od 2, ispiši grešku.

Nešto mi govori, ako je igrač već admin 1, garant nije helper 2 i eto problema.
lance.bishop
Crime Lord
pre 3 godine
Nije da nece, vec pogresno koristis simbole.

|| - ILI
&& - I

Ako igrac nije admin ili nije helper, vratice gresku. Sto znaci da mora imati oba var-a da server ne bi vratio gresku.
Resenje: Zameni || sa && ukoliko u komandi imas 2 provere, odnosno proveravas 2 varijable igracu. Ukoliko imas samo jednu varijablu za proveriti, koristices ||.

To je samo za nacin kada returnas nesto. Kada otvaras brackete korsitices || iako tu postoje 2 ili vise varijabli za proveriti.
Dragan_Milosavljevic
Shot Caller
pre 3 godine
Shavershian wrote on June 17, 2022, 8:27 pm:
if(PI < 1 || PI < 2) return Error(playerid, "Upisali ste komandu koja ne postoji.");


U prijevodu, ako je igrač manje razine admina od 1 ILI mu je razina helper-a manja od 2, ispiši grešku.

Nešto mi govori, ako je igrač već admin 1, garant nije helper 2 i eto problema.

Ako bi odradio ovako:

CMD:spec(playerid, params[])
{
if(PI >= 1 || PI > 1)
{
new id;
if(sscanf(params,"u",id)) return Cmd(playerid, "/spec [ ID ]");
else if(id == IPI) return Error(playerid, "Taj igrac ne postoji.");
    else if(id == playerid) return Error(playerid, "Ne mozete specati sami sebe.");
    .......
    .......
}
else return Error(playerid, "Upisali ste komandu koja ne postoji.");
return 1;
}
Dragan_Milosavljevic
Shot Caller
pre 3 godine
ryco wrote on June 17, 2022, 8:55 pm:
Nije da nece, vec pogresno koristis simbole.

|| - ILI
&& - I

Ako igrac nije admin ili nije helper, vratice gresku. Sto znaci da mora imati oba var-a da server ne bi vratio gresku.
Resenje: Zameni || sa && ukoliko u komandi imas 2 provere, odnosno proveravas 2 varijable igracu. Ukoliko imas samo jednu varijablu za proveriti, koristices ||.

To je samo za nacin kada returnas nesto. Kada otvaras brackete korsitices || iako tu postoje 2 ili vise varijabli za proveriti.

Hvala.
Ja i moja logika, nisam provalio.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava