/adminlist

Započeo toncikica, Mart 16, 2024, 22:49:16 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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
CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.

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
CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.

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