Hocu napravit komandu da mi izbaci listu svih admina( imam posebnu cmd za online). Ali ne znam kako bih to uradio, znam da bi trebo preko fread, ali u mene nije da imam kao u drugim modovima 30 kreiranih fajlova pa da su pola prazni i pise niko. Kod mene kad dam admina kreira se novi file sa informacijama. E sad kako da ja to napravim, ako mi moze neko pojasnit, ne trazim citavu cmd
Citat: toncikica poslato Mart 16, 2024, 22:49:16 POSLE PODNE
Hocu napravit komandu da mi izbaci listu svih admina( imam posebnu cmd za online). Ali ne znam kako bih to uradio, znam da bi trebo preko fread, ali u mene nije da imam kao u drugim modovima 30 kreiranih fajlova pa da su pola prazni i pise niko. Kod mene kad dam admina kreira se novi file sa informacijama. E sad kako da ja to napravim, ako mi moze neko pojasnit, ne trazim citavu cmd
Pusti poruku pm i napravicemo ocas posla.
[pawn]CMD:admini(playerid, params[])
{
#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ORANGE2"#!: Morate se ulogovati !");
new string[3000];
format(string, sizeof(string), "");
foreach(new i : Player)
{
if(PlayerInfo[pTestAdmin] >= 1)
{
new atext[50];
format(atext, sizeof(atext), ""BELA"%s", GetName(i));
strcat(string, atext);
format(atext, sizeof(atext), ""SRWBOJA" [%d]", i);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
strcat(string, ""BELA" Test Admin");
strcat(string, ""SRWBOJA" >");
if(AdminDuty == 0)
{
strcat(string, ""BELA" Duty: "CRVENA"(OFF)");
}
if(AdminDuty == 1)
{
strcat(string, ""BELA" Duty: "ZELENA"(ON)");
}
if(AFKDetekcija == 1)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "CRVENA"(AFK)");
}
if(AFKDetekcija == 0)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "ZELENA"(ONLINE)");
}
strcat(string, "\n");
}
if(PlayerInfo[pAdmin] >= 1)
{
new atext[50];
format(atext, sizeof(atext), ""BELA"%s", GetName(i));
strcat(string, atext);
format(atext, sizeof(atext), ""SRWBOJA" [%d]", i);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
strcat(string, ""BELA" Admin Level:");
format(atext, sizeof(atext), ""SRWBOJA" %d", PlayerInfo[pAdmin]);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
if(AdminDuty == 0)
{
strcat(string, ""BELA" Duty: "CRVENA"(OFF)");
}
if(AdminDuty == 1)
{
strcat(string, ""BELA" Duty: "ZELENA"(ON)");
}
if(AFKDetekcija == 1)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "CRVENA"(AFK)");
}
if(AFKDetekcija == 0)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "ZELENA"(ONLINE)");
}
strcat(string, "\n");
}
}
if(strlen(string) == 0) return SendClientMessage(playerid, -1, ""CRVENA"[GRESKA]:"BELA" Nema online Admina.");
SPD(playerid, 336, DIALOG_STYLE_MSGBOX, "ONLINE ADMINI", string, "OK", "");
return 1;
}[/pawn]
ovo je neki system toga sto trazis pokusaj skontat o cemu se radi pa pokusaj uraditi sam ako zapnes sa problemima javi se ponovo
Citat: yeet poslato Mart 17, 2024, 02:30:23 PRE PODNE
[pawn]CMD:admini(playerid, params[])
{
#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ORANGE2"#!: Morate se ulogovati !");
new string[3000];
format(string, sizeof(string), "");
foreach(new i : Player)
{
if(PlayerInfo[pTestAdmin] >= 1)
{
new atext[50];
format(atext, sizeof(atext), ""BELA"%s", GetName(i));
strcat(string, atext);
format(atext, sizeof(atext), ""SRWBOJA" [%d]", i);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
strcat(string, ""BELA" Test Admin");
strcat(string, ""SRWBOJA" >");
if(AdminDuty == 0)
{
strcat(string, ""BELA" Duty: "CRVENA"(OFF)");
}
if(AdminDuty == 1)
{
strcat(string, ""BELA" Duty: "ZELENA"(ON)");
}
if(AFKDetekcija == 1)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "CRVENA"(AFK)");
}
if(AFKDetekcija == 0)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "ZELENA"(ONLINE)");
}
strcat(string, "\n");
}
if(PlayerInfo[pAdmin] >= 1)
{
new atext[50];
format(atext, sizeof(atext), ""BELA"%s", GetName(i));
strcat(string, atext);
format(atext, sizeof(atext), ""SRWBOJA" [%d]", i);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
strcat(string, ""BELA" Admin Level:");
format(atext, sizeof(atext), ""SRWBOJA" %d", PlayerInfo[pAdmin]);
strcat(string, atext);
strcat(string, ""SRWBOJA" >");
if(AdminDuty == 0)
{
strcat(string, ""BELA" Duty: "CRVENA"(OFF)");
}
if(AdminDuty == 1)
{
strcat(string, ""BELA" Duty: "ZELENA"(ON)");
}
if(AFKDetekcija == 1)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "CRVENA"(AFK)");
}
if(AFKDetekcija == 0)
{
strcat(string, ""SRWBOJA" > "BELA"Status: "ZELENA"(ONLINE)");
}
strcat(string, "\n");
}
}
if(strlen(string) == 0) return SendClientMessage(playerid, -1, ""CRVENA"[GRESKA]:"BELA" Nema online Admina.");
SPD(playerid, 336, DIALOG_STYLE_MSGBOX, "ONLINE ADMINI", string, "OK", "");
return 1;
}[/pawn]
ovo je neki system toga sto trazis pokusaj skontat o cemu se radi pa pokusaj uraditi sam ako zapnes sa problemima javi se ponovo
Zar nije ovako lepse i bolje mozda?
Sorira takodje test admin je uvek zadnji pa ide al1 pa al2 itd itd od najveci admin lvl do najnizi.
[pawn]
CMD:admini(const playerid, const params[])
{
if(UlogovanProvera[playerid] == 0) return SCM(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
new tempAdminData[20][2], idx = 0;
foreach(new i : Player)
{
if (PlayerInfo
[pAdmin] >= 1 || PlayerInfo[pTA] == 1)
{
tempAdminData[idx][0] = i;
if(PlayerInfo[pTA] == 1) { tempAdminData[idx][1] = 0; }
else { tempAdminData[idx][1] = PlayerInfo[pAdmin]; }
idx++;
}
}
if(idx == 0) { return SCM(playerid, NS_ORANGE, "* Trenutno nema ni jedan Admin online."); }
for (new i = 0; i <= idx; ++i)
{
for (new j = i + 1; j < idx; ++j)
{
if (tempAdminData[1] < tempAdminData[j][1])
{
tempAdminData- ^= tempAdminData[j][0];
tempAdminData[j][0] ^= tempAdminData- ;
tempAdminData- ^= tempAdminData[j][0];
tempAdminData[1] ^= tempAdminData[j][1];
tempAdminData[j][1] ^= tempAdminData[1];
tempAdminData[1] ^= tempAdminData[j][1];
}
}
}
new string[1024];
strcat(string, "Ime\tDuznost\tLevel");
for(new i = 0; i < idx; ++i)
{
new pid = tempAdminData- , atext[1024];
strcat(string, "\n");
strcat(string, "{FFFFFF}");
if(IsPlayerPaused(pid))
{
strcat(string, GetName(pid)); strcat(string, " ");
strcat(string, ""CRVENA"[AFK]");
strcat(string, "\t");
}
else { strcat(string, GetName(pid)); strcat(string, "\t"); }
if(AdminDuty[pid] == 0) { strcat(string, ""CRVENA"Van Duznosti"); }
if(AdminDuty[pid] == 1) { strcat(string, ""ZELENA"Na duznosti"); }
if(tempAdminData[1] == 0) { format(atext, sizeof atext, "\tTest Admin"); }
else { format(atext, sizeof atext, "\t%d", tempAdminData[1]); }
strcat(string, atext);
strcat(string, "\n");
}
ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online", string, "Izlaz", "");
return 1;
}
[/pawn]
Uzeo sa najblizeg moda nazalost up, samo sam mu dao primjer kako moze da se uradi, naravno da jeste
Citat: toncikica poslato Mart 16, 2024, 22:49:16 POSLE PODNE
Hocu napravit komandu da mi izbaci listu svih admina( imam posebnu cmd za online). Ali ne znam kako bih to uradio, znam da bi trebo preko fread, ali u mene nije da imam kao u drugim modovima 30 kreiranih fajlova pa da su pola prazni i pise niko. Kod mene kad dam admina kreira se novi file sa informacijama. E sad kako da ja to napravim, ako mi moze neko pojasnit, ne trazim citavu cmd
Ako ne postoji fajl znaci da ne postoji admin, makar je tako u tvom slucaju (i tako je pravilno a ne ono "niko").
Posto imas fajl sistem, vjerovatno je najpametnije da napravis pomocni ini fajl u kojeg ces cuvati sve admine da ne bi loop kroz 300 fajlova zbog cega bi ti padao server na vise igraca).
Napravi jedan ini fajl i kad god dodas ili skines admina napravi isto i u tom ini fajlu.
Mozes i obican da nije ini, ali tu trebas znati malo vise oko stringova, loopova i imati samu logiku, tako da zaobidji to, koristi ini pametnije ti je i lakse