Szerző Téma: Valamiért csak egy embert jelez ki.  (Megtekintve 631 alkalommal)

Valamiért csak egy embert jelez ki.
« Dátum: 2015. október 24. - 23:00:31 »
0 Show voters
van egy /adminok parancsom, ami addig teljesen jól működik ameddig egy admin van a szervere, de mikor feljön kettő, csak azt jelzi ki aki ABC sorrendben előrébb van.
Mi lehet a hiba ? Kösz a segítséget előre is
 
CMD:adminok(playerid, params[])
{
new admin = 0;
new string1[256];
new string[1024];
foreach(petla, i)
{
if(pInfo[pAdmin] > 0)
{
      new rangja[128];
   new szolgalatban[128];
   if(pInfo[pAdmin] == 1)
   {
   format(rangja, sizeof(rangja), \"Moderátor\");
   }
   else if(pInfo[pAdmin] == 2)
   {
   format(rangja, sizeof(rangja), \"1.Admin\");
   }
   else if(pInfo[pAdmin] == 3)
   {
   format(rangja, sizeof(rangja), \"2.Admin\");
   }
   else if(pInfo[pAdmin] == 4)
   {
   format(rangja, sizeof(rangja), \"3.Admin\");
   }
   else if(pInfo[pAdmin] == 5)
   {
   format(rangja, sizeof(rangja), \"4.Admin\");
   }
   else if(pInfo[pAdmin] == 6)
   {
   format(rangja, sizeof(rangja), \"Játékfejlesztő\");
   }
   else if(pInfo[pAdmin] == 7)
   {
   format(rangja, sizeof(rangja), \"Tulajdonos\");
   }
   if(AdminSzoliban == 0)
   {
   format(szolgalatban, sizeof(szolgalatban), \"{FF0000}Nem\");
   }
   else
   {
   format(szolgalatban, sizeof(szolgalatban), \"{00FF00}Igen\");
   }
   format(string1,sizeof(string1),\"\\n %i \\t %s \\t %s \\t %s \",i,Nev(i),rangja,szolgalatban);
            format(string,sizeof(string),\"ID\\tNév\\tRang\\tSzolgálatban\\n%s\",string1);
   admin++;
}
}
if(admin >= 1)
ShowPlayerDialog(playerid, 19862, DIALOG_STYLE_TABLIST_HEADERS, \"Online Adminok:\", string, \"Okey\", \"\");
if(admin == 0)
GameTextForPlayer(playerid, \"~r~Nincs online ~w~Admin\", 3000, 3);
return 1;
}

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Valamiért csak egy embert jelez ki.
« Válasz #1 Dátum: 2015. október 25. - 09:53:44 »
+1 Show voters
CMD:adminok(playerid, params[])
{
new admin = 0;
new string[1024];
new rangja[32];
foreach(petla, i)
{
if(pInfo[pAdmin] > 0)
{
    switch(pInfo[pAdmin]) {
        case 1: rangja = \"Moderátor\";
        case 2: rangja = \"1.Admin\";
        case 3: rangja = \"2.Admin\";
        case 4: rangja = \"3.Admin\";
        case 5: rangja = \"4.Admin\";
        case 6: rangja = \"Játékfejlesztő\";
        case 7: rangja = \"Tulajdonos\";
    }
            if(admin == 0) { // Azaz még az első admintalálat van..
      string = \"ID\\tNév\\tRang\\tSzolgálatban\\n\";
   }
   format(string, sizeof(string), \"%s %i \\t %s \\t %s \\t %s\\n\", string, i, Nev(i), rangja, (AdminSzoliban) ? (\"{00FF00}Igen\") : (\"{FF0000}Nem\"));
 
   admin++;
}
}
if(admin) ShowPlayerDialog(playerid, 19862, DIALOG_STYLE_TABLIST_HEADERS, \"Online Adminok:\", string, \"Okey\", \"\");
else GameTextForPlayer(playerid, \"~r~Nincs online ~w~Admin\", 3000, 3);
return 1;
}

 
Egy picit optimalizáltam, és egyszerűsítettem a parancson. :)
UPDATE (elfelejtettem kiírni xd)
+ Javítva
« Utoljára szerkesztve: 2015. október 25. - 10:39:19 írta Pedró »

Valamiért csak egy embert jelez ki.
« Válasz #2 Dátum: 2015. október 25. - 10:05:48 »
0 Show voters
Az a sok else if tényleg fura volt az első kódban :D

Valamiért csak egy embert jelez ki.
« Válasz #3 Dátum: 2015. október 25. - 11:46:41 »
0 Show voters
Köszönöm Pedró

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal