GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: inf - 2013. október 23. - 16:22:31

Cím: "Nincs admin a szerver" kijelzése
Írta: inf - 2013. október 23. - 16:22:31
Sziasztok!

Valaki beletudná írni ebbe a /admins scriptbe hogyha nincs admin a szerveren akkor ne egy üres táblázatot adjon ki hanem írja ki hogy \"Nincs admin a szerveren!\".


Admins Script:

 
CMD:admins(playerid, params[])
{
new strtext[1000];
new string[1000];
new sendername[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if(IsPlayerConnected(i))
   {
      if(JatekosInfo[playerid][AdminSzint] == 1)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 1 | Rang: VIP -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 2)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 2 | Rang: Próbaidõs Admin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 3)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 3 | Rang: Moderátor -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 4)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 4 | Rang: Admin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 5)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 5 | Rang: Fõadmin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 6)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 6 | Rang: Tulajdonos -|\", sendername, i);
      }
      strcat(string, \"\\n\");
      strcat(strtext, string);
   }
}
ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\", strtext, \"Kilépés\",#);
}
return 1;
}
Cím: "Nincs admin a szerver" kijelzése
Írta: Kovacs_Richard - 2013. október 23. - 16:41:25
if(!strlen(strtext)) { format(strtext,sizeof(strtext),\"Nincs admin a szerveren\"); }
ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\", strtext, \"Kilépés\",#);
Cím: "Nincs admin a szerver" kijelzése
Írta: inf - 2013. október 23. - 17:00:58
Semmi, ugyanúgy kiad egy üres táblázatot.
Cím: "Nincs admin a szerver" kijelzése
Írta: Kovacs_Richard - 2013. október 23. - 17:29:55
pedig ennek mûködnie kéne, mutasd a jelenlegi kódot
Cím: "Nincs admin a szerver" kijelzése
Írta: inf - 2013. október 23. - 17:38:14
CMD:admins(playerid, params[])
{
new strtext[1000];
new string[1000];
new sendername[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if(IsPlayerConnected(i))
   {
      if(JatekosInfo[playerid][AdminSzint] == 1)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"{\"nsarga\"}|- Név: %s | ID: %d | Szint: 1 | Rang: VIP -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 2)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"{\"szold\"}|- Név: %s | ID: %d | Szint: 2 | Rang: Próbaidõs Admin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 3)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"{\"vkek\"}|- Név: %s | ID: %d | Szint: 3 | Rang: Moderátor -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 4)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"|- Név: %s | ID: %d | Szint: 4 | Rang: Admin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 5)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"{\"vzold\"}|- Név: %s | ID: %d | Szint: 5 | Rang: Fõadmin -|\", sendername, i);
      }
      if(JatekosInfo[playerid][AdminSzint] == 6)
      {
         GetPlayerName(i, sendername, sizeof(sendername));
         format(string, 128, \"{\"piros\"}|- Név: %s | ID: %d | Szint: 6 | Rang: Tulajdonos -|\", sendername, i);
      }
      strcat(string, \"\\n\");
      strcat(strtext, string);
   }
}
if(!strlen(strtext)) { format(strtext,sizeof(strtext),\"Nincs admin a szerveren\"); }
ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"{\"piros\"}Adminok\", strtext, \"Kilépés\",#);
}
return 1;
}
Cím: "Nincs admin a szerver" kijelzése
Írta: BoOy - 2013. október 23. - 18:52:51
CMD:admins(playerid, params[])
{
        new strtext[1000];
        new string[1000];
        new count = 0;
        new sendername[MAX_PLAYER_NAME];
        if(IsPlayerConnected(playerid))
        {
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                        if(IsPlayerConnected(i))
                        {
                                if(JatekosInfo[playerid][AdminSzint] == 1)
                                {
                                        count++;
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 1 | Rang: VIP -|\", sendername, i);
                                }
                                if(JatekosInfo[playerid][AdminSzint] == 2)
                                {
                                        count++;
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 2 | Rang: Próbaidõs Admin -|\", sendername, i);
                                }
                                if(JatekosInfo[playerid][AdminSzint] == 3)
                                {
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 3 | Rang: Moderátor -|\", sendername, i);
                                }
                                if(JatekosInfo[playerid][AdminSzint] == 4)
                                {
                                        count++;
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 4 | Rang: Admin -|\", sendername, i);
                                }
                                if(JatekosInfo[playerid][AdminSzint] == 5)
                                {
                                        count++;
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 5 | Rang: Fõadmin -|\", sendername, i);
                                }
                                if(JatekosInfo[playerid][AdminSzint] == 6)
                                {
                                        count++;
                                        GetPlayerName(i, sendername, sizeof(sendername));
                                        format(string, 128, \"|- Név: %s | ID: %d | Szint: 6 | Rang: Tulajdonos -|\", sendername, i);
                                }
                                strcat(string, \"\\n\");
                                strcat(strtext, string);
                        }
                }
if(count == 0) return ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\", \"Nincs online admin\", \"Kilépés\",#);
else return ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\", strtext, \"Kilépés\",#);
        }
        return 1;
}
Cím: "Nincs admin a szerver" kijelzése
Írta: Kovacs_Richard - 2013. október 23. - 19:04:45
van még néhány észrevételem:
 
JatekosInfo[playerid][AdminSzint]

 
helyett
 
JatekosInfo[AdminSzint]

 
és a sok if helyett else if-ekkel csinálnám a helyedben
 
{FFFFFF}|- Név: 12345678901234567890 | ID: 123 | Szint: 2 | Rang: Próbaidõs Admin -|[/quote]
84 karakter ( + szöveg végi \\0 ) szóval max 85 karakter lehet a string-ed
 
new string[1000];

 
helyett:
 
new string[85];

 
és ehhez igazítani a dialog szöveghez létrehozott strtext tömböt is, lesz annyi admin, hogy kelljen 1000 cella?
amúgy teszteltem a kódot és 1 karakter hosszú volt az strtext
 
strcat(string, \"\\n\");
strcat(strtext, string);

 
ez a kód miatt...ahány játékos van online annyi karakter lesz...
 
if(strlen(string))
{
      strcat(string, \"\\n\");
strcat(strtext, string);
strdel(string,0,sizeof(string));
}

 
vagy
 
strcat(string, \"\\n\");

 
ezt a kódot kitörlöd és a formatok végére beírod a \\n-t
Cím: "Nincs admin a szerver" kijelzése
Írta: inf - 2013. október 23. - 20:11:35
Mostmár kiírja hogy nincs online admin, csak mostmeg 2x tesz be 1 admint.

Szerintem ha 4 player lenne akkor meg 3x írná az utolsót.


Kép:

\"admins_www.kepfeltoltes.hu_.png\"
Cím: "Nincs admin a szerver" kijelzése
Írta: BoOy - 2013. október 23. - 20:23:12
Ezt próbáld meg.. hátha.
 
CMD:admins(playerid,params[])
{
    new string[256],count = 0;
    new sendername[MAX_PLAYER_NAME];
    for(new i = 0;i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(JatekosInfo[playerid][AdminSzint] >= 1)
            {
               GetPlayerName(i, sendername, sizeof(sendername));
               if(JatekosInfo[playerid][AdminSzint] == 1)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 1 | Rang: VIP -|\\n\", string,sendername, i);
               else if(JatekosInfo[playerid][AdminSzint] == 2)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 2 | Rang: VIP -|\\n\", string,sendername, i);
               else if(JatekosInfo[playerid][AdminSzint] == 3)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 3 | Rang: VIP -|\\n\", string,sendername, i);
               else if(JatekosInfo[playerid][AdminSzint] == 4)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 4 | Rang: VIP -|\\n\", string,sendername, i);
               else if(JatekosInfo[playerid][AdminSzint] == 5)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 5 | Rang: VIP -|\\n\", string,sendername, i);
               else if(JatekosInfo[playerid][AdminSzint] == 6)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 6 | Rang: VIP -|\\n\", string,sendername, i);         
      count++;
            }
        }
        if(count != 0) ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\",string, \"Kilépés\",\"\");
        else
        {
            ShowPlayerDialog(playerid,303,DIALOG_STYLE_MSGBOX,\"Adminok\",\"Nincs online Admin!\",\"Kilép\",\"\");
        }
    }
    return 1;
}
Cím: "Nincs admin a szerver" kijelzése
Írta: Kovacs_Richard - 2013. október 23. - 20:25:31
if(IsPlayerConnected(i))
strcat(strtext, string);

 
Igen mivel ezen a feltételen belül van...
a string formázó if-else if-eken beülre rakd vagy az elejére rakj egy strdel-t de inkább az elõbbit ajánlom
 

Ezt próbáld meg.. hátha.
 
CMD:admins(playerid,params[])
{
   new string[256],count = 0;
   new sendername[MAX_PLAYER_NAME];
   for(new i = 0;i < MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
           if(JatekosInfo[playerid][AdminSzint] >= 1)
           {
              GetPlayerName(i, sendername, sizeof(sendername));
              if(JatekosInfo[playerid][AdminSzint] == 1)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 1 | Rang: VIP -|\\n\", string,sendername, i);
              else if(JatekosInfo[playerid][AdminSzint] == 2)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 2 | Rang: VIP -|\\n\", string,sendername, i);
              else if(JatekosInfo[playerid][AdminSzint] == 3)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 3 | Rang: VIP -|\\n\", string,sendername, i);
              else if(JatekosInfo[playerid][AdminSzint] == 4)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 4 | Rang: VIP -|\\n\", string,sendername, i);
              else if(JatekosInfo[playerid][AdminSzint] == 5)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 5 | Rang: VIP -|\\n\", string,sendername, i);
              else if(JatekosInfo[playerid][AdminSzint] == 6)format(string, 128, \"%s|- Név: %s | ID: %d | Szint: 6 | Rang: VIP -|\\n\", string,sendername, i);
               ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\",string, \"Kilépés\",\"\");
      count++;
           }
       }
       else if(count == 0)
       {
           ShowPlayerDialog(playerid,303,DIALOG_STYLE_MSGBOX,\"Adminok\",\"Nincs online Admin!\",\"Kilép\",\"\");
       }
   }
   return 1;
}

 

[/quote]
 
ShowPlayerDialog(playerid, 303, DIALOG_STYLE_MSGBOX,\"Adminok\",string, \"Kilépés\",\"\");

 
ezt szerintem nem kéne a cikluson belülre rakni :)
Cím: "Nincs admin a szerver" kijelzése
Írta: BoOy - 2013. október 23. - 20:27:53
hopp. elírtam bocsi, módosítva!