Mislim da ce ova tema pomoci vecini ljudi.
Opširnije:
PRIMER 1
Ako ima u skripti:
public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
if(UlogovanIgrac == 0)
{
Error(playerid, "Niste ulogovani.");
return 0;
}
else if(PI < 1 && PI < 1 && ACCmd == 1)
{
Error(playerid, "Komande mozete koristiti svake 2 sekunde.");
return 0;
}
CmdProtect(playerid);
return 1;
}
Zasto koristiti ovako:
CMD:unprison(playerid, params[])
{
if(IsPlayerConnected(playerid)) // ZASTO JER IGRAC MORA BITI KONEKTOVAN DA BI BIO ULOGOVAN
{
if(UlogovanIgrac == 0) return Error(playerid, "Niste ulogovani."); //ZASTO PONOVO PROVERA DA LI JE ULOGOVAN
.....
....
....
}
return 1;
}
PRIMER 2
Provere u dialozima:
CMD:fveh(playerid, params[])
{
if(PI < 1 && PI < 1 && PI < 1 && PI < 1) return Error(playerid, "Upisali ste komandu koja ne postoji.");
.....
.....
.....
if(PI > 0 || PI > 0)
{
....
...
...
}
else if(PI > 0) SPD(playerid, D_FIXVEH, DSL, "0, 1", D_POTVRDI, D_ZATVORI); //case 0: case1:
else if(PI < 4 || PI > 1) SPD(playerid, D_FIXVEH, DSL, "0, 1, 2", D_POTVRDI, D_ZATVORI); //case 0: case1: case:2
else if(PI > 3) SPD(playerid, D_FIXVEH, DSL, "0, 1, 2, 3", D_POTVRDI, D_ZATVORI); //case 0: case1: case2:case3:
return 1;
}
Zas u dialozima raditi dodatne bezpotrebne provere:
else if(dialogid == D_FIXVEH && response)
{
switch(listitem)
{
case 0:
{
if(PI > 0 || PI > 0) //zasto
{
...
....
....
....
}
else return Error(playerid, "Niste ovlasceni.");
}
case 1:
{
if(PI > 0 || PI > 0) SPD(playerid, D_FIXVEH_ID, DSI, "", D_POTVRDI, D_ZATVORI);
else return Error(playerid, "Niste ovlasceni.");
}
case 2:
{
if(PI > 0 || PI > 1) SPD(playerid, D_FIXVEH_RADIUS, DSI, "", D_POTVRDI, D_ZATVORI);
else return Error(playerid, "Niste ovlasceni.");
}
case 3:
{
if(PI > 3)
{
....
....
....
.....
}
else return Error(playerid, "Niste ovlasceni.");
}
}
}
Dodatno: Zasto raditi takve provere ponovo ako nije potrebno. Primer u dialozina, u komandi je odredjeno KO MOZE DA KORISTI KOMANDU i KOME CE SE KOJI case PRIKAZATI i zasto u dialogu ponovo proveravati ako se igracu nece raditi komanda ili se nece prikazati taj case dialoga.
