Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Debug poslato April 18, 2025, 19:32:12 POSLE PODNE

Naslov: Komanda /admini.
Poruka od: Debug poslato April 18, 2025, 19:32:12 POSLE PODNE
Naslov problema*: Komanda /admini.
Opis problema*: Prvi Admin na listi nikad nije AFK, cak i kada ide ESC ne pokazuje da je AFK. Dok svi ostali Admini koji su ispod prvog su uvijek AFK. Ne znam kako da rijesim to pa ako neko zna bilo bi super.
Pokušaj rešavanja*: ///
Deo programskog koda*:

[pawn]YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new tempAdminData[20][2], idx = 0;
   foreach(new i : Player)
   {
      if (PlayerInfo[pAdmin] >= 1 || PlayerInfo[pTAdmin] == 1)
      {
         tempAdminData[idx][0] = i;
         if(PlayerInfo[pTAdmin] == 1) { tempAdminData[idx][1] = 0; }
         else { tempAdminData[idx][1] = PlayerInfo[pAdmin]; }
         idx++;
      }
   }
   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, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string, "Izlaz", "");
   return 1;
}[/pawn]



Debug informacije: ///
Fotografija problema u igri: https://imgur.com/a/rUZqGGY
Korišćene biblioteke (includes): ///
Dodatne informacije: ///
Naslov: Odg: Komanda /admini.
Poruka od: twoblqck.art poslato April 18, 2025, 19:50:15 POSLE PODNE
Postavi kod na pastebin ili preko [pawn ] [/ pawn]
[pawn]Kod[/pawn]
Naslov: Odg: Komanda /admini.
Poruka od: Debug poslato April 18, 2025, 20:04:10 POSLE PODNE
Dodan kod.
Naslov: Odg: Komanda /admini.
Poruka od: Debug poslato April 21, 2025, 20:45:29 POSLE PODNE
Jos uvijek nije fixano, da li ima neko ko zna ?
Naslov: Odg: Komanda /admini.
Poruka od: №Grella poslato April 24, 2025, 02:00:40 PRE PODNE
for (new i = 0; i < idx; ++i)
 oh god
Naslov: Odg: Komanda /admini.
Poruka od: musoviich poslato April 24, 2025, 08:28:21 PRE PODNE
Zameni liniju:
for (new i = 0; i <= idx; ++i)

sa:
for (new i = 0; i < idx; ++i)
Naslov: Odg: Komanda /admini.
Poruka od: Debug poslato April 26, 2025, 13:29:21 POSLE PODNE
[pawn]YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new tempAdminData[20][2], idx = 0;
   foreach(new i : Player)
   {
      if (PlayerInfo[pAdmin] >= 1 || PlayerInfo[pTAdmin] == 1)
      {
         tempAdminData[idx][0] = i;
         if(PlayerInfo[pTAdmin] == 1) { tempAdminData[idx][1] = 0; }
         else { tempAdminData[idx][1] = PlayerInfo[pAdmin]; }
         idx++;
      }
   }
   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, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string, "Izlaz", "");
   return 1;
}[/pawn]

Zamjenio sam i jos uvijek mi pokazuje da su svi Admini AFK osim prvog na listi.
Naslov: Odg: Komanda /admini.
Poruka od: xLanmi poslato April 26, 2025, 16:20:34 POSLE PODNE
[pawn]
YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new string[ 1024 ];
    new aLevel;
    foreach(new i : Player)
    {
        if (PlayerInfo[pAdmin] >= 1 || PlayerInfo[pTAdmin] == 1)
        {   
            if( PlayerInfo[ i ][ pAdmin >= 1]) aLevel = PlayerInfo[ i ][pAdmin ];
            else aLevel = PlayerInfo[ i ][ pTAdmin ];
            if( !IsPlayerPaused( playerid ))
                format(string, sizeof string, "%s%s\t%s\t%d\n"\
                    ,string
                    , GetName( i )
                    , AdminDuty == 0 ? "Van Duznosti" : "Na Duznosti"
                    , aLevel);
            else
                format(string, sizeof string, "%s%s"CRVENA"[ AFK]\t"BELA"%s\t%d\n"\
                    , string
                    , GetName( i )
                    , AdminDuty == 0 ? "Van Duznosti" : "Na Duznosti"
                    , aLevel);       
        }
    }
   
    new string2[2024];
    strcat(string2, "Ime\tDuznost\tLevel\n");
    strcat(string2, string );
   
    ShowPlayerDialog(playerid, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string2, "Izlaz", "");
    return 1;
}

[/pawn]

Trebalo bi da radi :)
Nisam testao, jer nemam samp compiler kod sebe, prilagodi kod onome sto zelis i ne komplikuj osnovne komande.