/admini

Započeo Goku ^
8. Jul 2021.
2,357
pregleda
35
postova
Dime123
4
Made Man
8. Jul 2021.
Problem(error/warning): /admini ==> izbaci jelte od AL1 do AL6 i da li je na duznost ili ne sta je problem, sto komanda /admini gleda po ID znaci ako je al1 tipa id 0 a al6 id 1 AL1 ce biti iznad AL6, a ja to ne zelim da bude tako nego da bude prema admin levelu znaci ako je al6 on je prvi al1 poslednji.
Deo skripte:
CMD:admini(playerid, params[], help)
{
    #pragma unused params
    #pragma unused help
    if(UlogovanProvera == 0) return SCM(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
new string;
format(string, sizeof(string), "");
strcat(string, "Ime\tLevel");
foreach(new i : Player)
{
        if (PlayerInfo >= 1 || PlayerInfo >=6 || PlayerInfo >=1)
                        strcat(string, "{FFFFFF}\t");
                        new arank;
                        if(PlayerInfo == 6) { arank = "6"; }
                        else if(PlayerInfo == 5) { arank = "5"; }
                        else if(PlayerInfo == 4) { arank = "4"; }
                        else if(PlayerInfo == 3) { arank = "3"; }
                        else if(PlayerInfo == 2) { arank = "2"; }
else if(PlayerInfo == 1) { arank = "1"; }
else if(PlayerInfo == 1) { arank = "Test Admin"; }
format(atext, sizeof(atext), "\t%s", arank);
strcat(string, atext);
  strcat(string, "\n");
}
}
if(strlen(string) == 0) return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Vaš odgovor: //
Lukq
4
Shot Caller
8. Jul 2021.
ne vidim gdje se spominje taj id
Lukq
4
Shot Caller
8. Jul 2021.
mozda probaj ovako
CMD:admini(playerid, params[], help)
{
    #pragma unused params
    #pragma unused help
    if(UlogovanProvera == 0) return SCM(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
new string;
format(string, sizeof(string), "");
strcat(string, "Ime\tLevel");
foreach(new i : Player)
{
        if (PlayerInfo >= 1 || PlayerInfo >=6 || PlayerInfo >=1)
                        strcat(string, "{FFFFFF}\t");
                        new arank;
                        if(PlayerInfo == 6) { arank = "6"; }
                        else if(PlayerInfo == 5) { arank = "5"; }
                        else if(PlayerInfo == 4) { arank = "4"; }
                        else if(PlayerInfo == 3) { arank = "3"; }
                        else if(PlayerInfo == 2) { arank = "2"; }
else if(PlayerInfo == 1) { arank = "1"; }
else if(PlayerInfo == 1) { arank = "Test Admin"; }
format(atext, sizeof(atext), "\t %s", arank);
strcat(string, atext);
  strcat(string, "\n");
}
}
if(strlen(string) == 0) return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
return 1;
}
dtutankamon
3
Hustler
8. Jul 2021.
Ono sto je tebi potrebno jeste sortiranje.
Ti kada prodjes kroz sve igrace od 0 do max, svaka stavka u dijalogu ce ici od 0 pa do max, zar ne?

Evo ti primer komande koja bi TREBALA da radi(to znaci da je nisam testirao, ali ces isprobati ako budes hteo):
CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera == 0)
{
return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
}

new tempAdminData; // => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
new idx = 0;

foreach(new i : Player)
{
if (PlayerInfo >= 1 || PlayerInfo == 1)
{
tempAdminData = playerid;

if(PlayerInfo == 1)
{
tempAdminData = 0;
}
else
{
tempAdminData = PlayerInfo;
}

idx++;
}
}

// ako nema admina
if(idx == 0)
{
return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
}

// Sortiranje po levelima po opadajucem redosledu
for (new i = 0; i <= idx; ++i)
{
for (new j = i + 1; j < idx; ++j)
{
if (tempAdminData < tempAdminData)
{
// Zamenjivanje vrednosti, tj. ako je element pre manji od sledeceg zamenice im mesta = sortiranje

// Zamena ID-a admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Zamena levela admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Svaku stavku menjamo, jer svaka stavka je vezana za odredjenog igraca
}
}
}

new string;
strcat(string, "Ime\tLevel");

// Spremanje liste za prikaz u dialogu
for(new i = 0; i <= idx; ++i)
{
new pid = tempAdminData;

// Ime
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);

// Level
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);
strcat(string, "\n");
}

ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");

return 1;
}


Naravno, ovaj nacin je dosta primitivan, ali je dovoljan da vidis kako odraditi to sto si hteo.

Naravno ako zelis mozes tu iskoristiti i md-sort i inline sort include koje verovatno i imas kod sebe vec u inc folderu.
Ako koristis SQL za cuvanje podataka u modu onda mozes da prikupis listu svih admina po DESCENDING redosledu i samo proveris koji je online i pucas u dialog.

Verujem da ces mozda imati pitanja oko ovoga tako da slobodno ostavi poruku o ovoj temi.
Garadooo
5
Forum Don
8. Jul 2021.
tutankamon wrote on July 8, 2021, 12:25 pm:
Ono sto je tebi potrebno jeste sortiranje.
Ti kada prodjes kroz sve igrace od 0 do max, svaka stavka u dijalogu ce ici od 0 pa do max, zar ne?

Evo ti primer komande koja bi TREBALA da radi(to znaci da je nisam testirao, ali ces isprobati ako budes hteo):
CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera == 0)
{
return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
}

new tempAdminData; // => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
new idx = 0;

foreach(new i : Player)
{
if (PlayerInfo >= 1 || PlayerInfo == 1)
{
tempAdminData = playerid;

if(PlayerInfo == 1)
{
tempAdminData = 0;
}
else
{
tempAdminData = PlayerInfo;
}

idx++;
}
}

// ako nema admina
if(idx == 0)
{
return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
}

// Sortiranje po levelima po opadajucem redosledu
for (new i = 0; i <= idx; ++i)
{
for (new j = i + 1; j < idx; ++j)
{
if (tempAdminData < tempAdminData)
{
// Zamenjivanje vrednosti, tj. ako je element pre manji od sledeceg zamenice im mesta = sortiranje

// Zamena ID-a admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Zamena levela admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Svaku stavku menjamo, jer svaka stavka je vezana za odredjenog igraca
}
}
}

new string;
strcat(string, "Ime\tLevel");

// Spremanje liste za prikaz u dialogu
for(new i = 0; i <= idx; ++i)
{
new pid = tempAdminData;

// Ime
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);

// Level
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);
strcat(string, "\n");
}

ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");

return 1;
}


Naravno, ovaj nacin je dosta primitivan, ali je dovoljan da vidis kako odraditi to sto si hteo.

Naravno ako zelis mozes tu iskoristiti i md-sort i inline sort include koje verovatno i imas kod sebe vec u inc folderu.
Ako koristis SQL za cuvanje podataka u modu onda mozes da prikupis listu svih admina po DESCENDING redosledu i samo proveris koji je online i pucas u dialog.

Verujem da ces mozda imati pitanja oko ovoga tako da slobodno ostavi poruku o ovoj temi.

Dzabe si mu sastavio komandu, kada se nece potruditi ni da je procita, a sumnjam i razumiti.
dtutankamon
3
Hustler
8. Jul 2021.
Galardo wrote on July 8, 2021, 12:59 pm:
Dzabe si mu sastavio komandu, kada se nece potruditi ni da je procita, a sumnjam i razumiti.


Uglavnom, kada pomazem, to ne radim za jednu osobu nego za njega i za sve ostale koji ce kasnije naici na ovu temu mozda i obicnom pretragom foruma.

Shvatam da ga mozda nece interesovati uopste, ali bice korisno i njemu i nekome ko naleti na ovo kasnije.
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 12:25 pm:
Ono sto je tebi potrebno jeste sortiranje.
Ti kada prodjes kroz sve igrace od 0 do max, svaka stavka u dijalogu ce ici od 0 pa do max, zar ne?

Evo ti primer komande koja bi TREBALA da radi(to znaci da je nisam testirao, ali ces isprobati ako budes hteo):
CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera == 0)
{
return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
}

new tempAdminData; // => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
new idx = 0;

foreach(new i : Player)
{
if (PlayerInfo >= 1 || PlayerInfo == 1)
{
tempAdminData = playerid;

if(PlayerInfo == 1)
{
tempAdminData = 0;
}
else
{
tempAdminData = PlayerInfo;
}

idx++;
}
}

// ako nema admina
if(idx == 0)
{
return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
}

// Sortiranje po levelima po opadajucem redosledu
for (new i = 0; i <= idx; ++i)
{
for (new j = i + 1; j < idx; ++j)
{
if (tempAdminData < tempAdminData)
{
// Zamenjivanje vrednosti, tj. ako je element pre manji od sledeceg zamenice im mesta = sortiranje

// Zamena ID-a admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Zamena levela admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Svaku stavku menjamo, jer svaka stavka je vezana za odredjenog igraca
}
}
}

new string;
strcat(string, "Ime\tLevel");

// Spremanje liste za prikaz u dialogu
for(new i = 0; i <= idx; ++i)
{
new pid = tempAdminData;

// Ime
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);

// Level
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);
strcat(string, "\n");
}

ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");

return 1;
}


Naravno, ovaj nacin je dosta primitivan, ali je dovoljan da vidis kako odraditi to sto si hteo.

Naravno ako zelis mozes tu iskoristiti i md-sort i inline sort include koje verovatno i imas kod sebe vec u inc folderu.
Ako koristis SQL za cuvanje podataka u modu onda mozes da prikupis listu svih admina po DESCENDING redosledu i samo proveris koji je online i pucas u dialog.

Verujem da ces mozda imati pitanja oko ovoga tako da slobodno ostavi poruku o ovoj temi.

izbacuje warning
(70034) : warning 203: symbol is never used: "admini"
a ta linija ne postoji postoje 70033
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 12:25 pm:
Ono sto je tebi potrebno jeste sortiranje.
Ti kada prodjes kroz sve igrace od 0 do max, svaka stavka u dijalogu ce ici od 0 pa do max, zar ne?

Evo ti primer komande koja bi TREBALA da radi(to znaci da je nisam testirao, ali ces isprobati ako budes hteo):
CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera == 0)
{
return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
}

new tempAdminData; // => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
new idx = 0;

foreach(new i : Player)
{
if (PlayerInfo >= 1 || PlayerInfo == 1)
{
tempAdminData = playerid;

if(PlayerInfo == 1)
{
tempAdminData = 0;
}
else
{
tempAdminData = PlayerInfo;
}

idx++;
}
}

// ako nema admina
if(idx == 0)
{
return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
}

// Sortiranje po levelima po opadajucem redosledu
for (new i = 0; i <= idx; ++i)
{
for (new j = i + 1; j < idx; ++j)
{
if (tempAdminData < tempAdminData)
{
// Zamenjivanje vrednosti, tj. ako je element pre manji od sledeceg zamenice im mesta = sortiranje

// Zamena ID-a admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Zamena levela admina
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;
tempAdminData ^= tempAdminData;

// Svaku stavku menjamo, jer svaka stavka je vezana za odredjenog igraca
}
}
}

new string;
strcat(string, "Ime\tLevel");

// Spremanje liste za prikaz u dialogu
for(new i = 0; i <= idx; ++i)
{
new pid = tempAdminData;

// Ime
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);

// Level
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);
strcat(string, "\n");
}

ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");

return 1;
}


Naravno, ovaj nacin je dosta primitivan, ali je dovoljan da vidis kako odraditi to sto si hteo.

Naravno ako zelis mozes tu iskoristiti i md-sort i inline sort include koje verovatno i imas kod sebe vec u inc folderu.
Ako koristis SQL za cuvanje podataka u modu onda mozes da prikupis listu svih admina po DESCENDING redosledu i samo proveris koji je online i pucas u dialog.

Verujem da ces mozda imati pitanja oko ovoga tako da slobodno ostavi poruku o ovoj temi.

Fixao warning e ovo su sad errori sto postoje.

(39896) : error 017: undefined symbol "i"
(39900) : error 017: undefined symbol "i"
(39907) : error 017: undefined symbol "atext"
(39907) : error 017: undefined symbol "atext"
(39908) : error 017: undefined symbol "atext"
(39909) : error 017: undefined symbol "atext"
(39909) : error 017: undefined symbol "atext"
(39910) : error 017: undefined symbol "atext"


evo tih linija ovde

format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);


zatim kada sam dodao new atext id itd
izbacuje 2 warninga i jedan eror.

(39912) : error 033: array must be indexed (variable "-unknown-")
(39910) : warning 202: number of arguments does not match definition
(39910) : warning 202: number of arguments does not match definition


evo tih linija

//ovo je error
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
//ovo je warrning
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));


fixao warning
[(39910) umesto GetPlayerName(pid) stavio GetName(pid) tako je kod mene dok medjutim i dalje ima eror
(39912) : error 033: array must be indexed (variable "-unknown-") //kod linije
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
dtutankamon
3
Hustler
8. Jul 2021.
Dime123 wrote on July 8, 2021, 2:05 pm:
Fixao warning e ovo su sad errori sto postoje.

(39896) : error 017: undefined symbol "i"
(39900) : error 017: undefined symbol "i"
(39907) : error 017: undefined symbol "atext"
(39907) : error 017: undefined symbol "atext"
(39908) : error 017: undefined symbol "atext"
(39909) : error 017: undefined symbol "atext"
(39909) : error 017: undefined symbol "atext"
(39910) : error 017: undefined symbol "atext"


evo tih linija ovde

format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));
strcat(string, atext);
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
strcat(string, atext);


zatim kada sam dodao new atext id itd
izbacuje 2 warninga i jedan eror.

(39912) : error 033: array must be indexed (variable "-unknown-")
(39910) : warning 202: number of arguments does not match definition
(39910) : warning 202: number of arguments does not match definition


evo tih linija

//ovo je error
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));
//ovo je warrning
format(atext, sizeof atext, "{FFFFFF}%s\t", GetPlayerName(pid));


fixao warning
[(39910) umesto GetPlayerName(pid) stavio GetName(pid) tako je kod mene dok medjutim i dalje ima eror
(39912) : error 033: array must be indexed (variable "-unknown-") //kod linije
format(atext, sizeof atext, "\t%s", tempAdminData == 0 ? "Test Admin" : strval(tempAdminData));


Mozes li tu error liniju zameniti sa ovim:
		if(tempAdminData == 0)
{
format(atext, sizeof atext, "\t%s", "Test Admin");
}
else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 2:40 pm:
Mozes li tu error liniju zameniti sa ovim:
		if(tempAdminData == 0)
{
format(atext, sizeof atext, "\t%s", "Test Admin");
}
else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}

Kada idem /admini nema tipa al1 al2 al3 bilo koji admin da si pisace ti Test Admin zatim kod /admini gore gde pise Ime Duznost Level pored pise nick a ne treba tako https://ibb.co/HPyp5Ps
dtutankamon
3
Hustler
8. Jul 2021.
Sto se tice duznosti trebalo bi da pokazes taj dijalog kako ga formatiras i sve ostalo posto sam ja gore odradio samo Ime, Level.

Ne znam kako si spojio sa ostalim, moze malo vise informacija?
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 3:00 pm:
Sto se tice duznosti trebalo bi da pokazes taj dijalog kako ga formatiras i sve ostalo posto sam ja gore odradio samo Ime, Level.

Ne znam kako si spojio sa ostalim, moze malo vise informacija?

evo ovako sam odradio to iznad onoga sto si mi poslao sam dodao ovo nista drugo nisam radio ostalo je sve isto kao sto si mi posao

            if(AdminDuty == 0)
    {
      strcat(string, "{F81414}Van Duznosti");
    }
    if(AdminDuty == 1)
    {
      strcat(string, "{6EF83C}Na duznosti");
    }
if(tempAdminData == 0)
{
format(atext, sizeof atext, "\t%s", "Test Admin");
}
else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 3:00 pm:
Sto se tice duznosti trebalo bi da pokazes taj dijalog kako ga formatiras i sve ostalo posto sam ja gore odradio samo Ime, Level.

Ne znam kako si spojio sa ostalim, moze malo vise informacija?

Fixao sam to da ne pise gore pored level ime itd itd
sad pise ovako https://ibb.co/VBKX9gt ali i dalje nece da se makne ovo Test Admin koji god level bio pisace Test Admin, ovo gore sto ne pise Level je AL1 a ovo dole Test admin to je ono sto sam ti pricao dal bio al1 ili al6 pisace dole Test Admin, kada setam Test Admina sebi to ovako izgleda https://ibb.co/bQMFG64 sada kod level pise Test Admina ali takodje pise i dole ispod koji ne radi uopste samo tu bleji
Dime123
4
Made Man
8. Jul 2021.
tutankamon wrote on July 8, 2021, 3:00 pm:
Sto se tice duznosti trebalo bi da pokazes taj dijalog kako ga formatiras i sve ostalo posto sam ja gore odradio samo Ime, Level.

Ne znam kako si spojio sa ostalim, moze malo vise informacija?

A sta ako odradim ovako umesto ovoga
    else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}

ubacim ovako

                else
{
format(atext, sizeof atext, "\t%d", PlayerInfo);
}


Nakon sto sam ubacio ovo iznad sa PlayerInfo desilo se ovo https://ibb.co/HxQFBxq, sada pise Nick radi ovo za duznost da jeste da nije i plus pise admin level medjum i dalje pise ispod Test Admin, jedino da probam sad umesto
    else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}


da probaj da odradim ovako
    else
{
format(atext, sizeof atext, "\tTest Admin", PlayerInfo));
}
dtutankamon
3
Hustler
8. Jul 2021.
Dime123 wrote on July 8, 2021, 3:09 pm:
A sta ako odradim ovako umesto ovoga
    else
{
format(atext, sizeof atext, "\t%s", strval(tempAdminData));
}

ubacim ovako

                else
{
format(atext, sizeof atext, "\t%d", PlayerInfo);
}


Tako ce uzeti admin level od tebe koji gledas listu, probaj ovako:
                else
{
format(atext, sizeof atext, "\t%d", tempAdminData);
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha