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: Virgonc - 2013. Január 06. - 11:40:58

Cím: Dialog Tab
Írta: Virgonc - 2013. Január 06. - 11:40:58
Hali!
Van egy msgbox dialogom, amiben minden játékos neve és pingje benne van. Viszont van ezzel egy kis gond. Én úgy szeretném, hogy szépen sorban legyen, tehát így:
Név: xanevem                                  ping:z
Név:xyanevemdeezhosszabb         ping:z
Próbáltam \\t -vel, de ezzel az a baj, hogy akinek 9 karakternél rövidebb a neve, annak a tabot nem oda teszi akinek9-nél több, hanem egyel elõtte lévõ tab pozicióhoz.
Ebben kérném a segítségeteket, hogy hogyan lehetne ezt kiküszöbölni!
Én arra gondoltam, hogy lekérni a játékos nevét, és ha az 9 karakter vagy annál kisebb akkor 2 tabot tegyen be elé, ha 9nél több akkor pedig 1-et.
Cím: Dialog Tab
Írta: ZyZu. - 2013. Január 06. - 14:00:42
Esetleg egy kodot adnál?..
Cím: Dialog Tab
Írta: SnooP - 2013. Január 06. - 14:07:32
Idézetet írta: Virgonc date=1357468858\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32016\" data-ipsquote-contentclass=\"forums_Topic
Hali!
Van egy msgbox dialogom, amiben minden játékos neve és pingje benne van. Viszont van ezzel egy kis gond. Én úgy szeretném, hogy szépen sorban legyen, tehát így:
Név: xanevem                                  ping:z
Név:xyanevemdeezhosszabb         ping:z
Próbáltam \\t -vel, de ezzel az a baj, hogy akinek 9 karakternél rövidebb a neve, annak a tabot nem oda teszi akinek9-nél több, hanem egyel elõtte lévõ tab pozicióhoz.
Ebben kérném a segítségeteket, hogy hogyan lehetne ezt kiküszöbölni!
Én arra gondoltam, hogy lekérni a játékos nevét, és ha az 9 karakter vagy annál kisebb akkor 2 tabot tegyen be elé, ha 9nél több akkor pedig 1-et.
 
És az nem lenne egyszerûbb megoldás, ha felcsatlakozik egy player, lekéred a nevének hosszúságát és, ha több, mint 9 karakter ki Kickeled azzal az indokkal, hogy kérlek változtass nevet úgy, hogy a maximum hosszúsága 9 karakter legyen? És akkor nem kell trükköz a tabokkal, hanem mindenkinek egyformán jelenítené meg.
Cím: Dialog Tab
Írta: Virgonc - 2013. Január 06. - 14:08:15
Tessék.
 
if( !strcmp( cmdtext, \"/ping\", true ) || !strcmp(cmdtext, \"/pinglist\", true ))
{
    new coordsstring[1300];
   for(new i=0; i < MAX_PLAYERS; i++)
   {
      if(IsPlayerConnected(i))
      {
         new aname[MAX_PLAYER_NAME];
         GetPlayerName(i, aname, sizeof(aname));
         format(coordsstring,sizeof(coordsstring),\"%s{00b7ff}Név: {ffffff}%s\\t {00b7ff}ping: {ffffff}%d.\\n\",coordsstring,aname,GetPlayerPing(i));
      }
   }
   ShowPlayerDialog( playerid, 54545666, DIALOG_STYLE_MSGBOX, \"{ffffff}-= {00b7ff}Ping lista{ffffff} =-\", coordsstring, \"Oké\", \"\");
   return 1;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 06. - 14:10:18 )

Idézetet írta: SnooP date=1357477652\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32016\" data-ipsquote-contentclass=\"forums_Topic


Hali!
Van egy msgbox dialogom, amiben minden játékos neve és pingje benne van. Viszont van ezzel egy kis gond. Én úgy szeretném, hogy szépen sorban legyen, tehát így:
Név: xanevem                                  ping:z
Név:xyanevemdeezhosszabb         ping:z
Próbáltam \\t -vel, de ezzel az a baj, hogy akinek 9 karakternél rövidebb a neve, annak a tabot nem oda teszi akinek9-nél több, hanem egyel elõtte lévõ tab pozicióhoz.
Ebben kérném a segítségeteket, hogy hogyan lehetne ezt kiküszöbölni!
Én arra gondoltam, hogy lekérni a játékos nevét, és ha az 9 karakter vagy annál kisebb akkor 2 tabot tegyen be elé, ha 9nél több akkor pedig 1-et.
 
És az nem lenne egyszerûbb megoldás, ha felcsatlakozik egy player, lekéred a nevének hosszúságát és, ha több, mint 9 karakter ki Kickeled azzal az indokkal, hogy kérlek változtass nevet úgy, hogy a maximum hosszúsága 9 karakter legyen? És akkor nem kell trükköz a tabokkal, hanem mindenkinek egyformán jelenítené meg.
 
[/quote]
Hát ezért nem szeretném kickelni, de ha letudnád, akkor írd már le, hogy hogy kérnéd le a neve hosszúságát! :) Köszi!
Cím: Dialog Tab
Írta: Zsolesszka - 2013. Január 06. - 14:59:41
http://wiki.sa-mp.com/wiki/Strlen
Nincs tesztelve:
 
   if( !strcmp( cmdtext, \"/ping\", true ) || !strcmp(cmdtext, \"/pinglist\", true ))
{
new coordsstring[1300];
for(new i=0; i < MAX_PLAYERS; i++)
{
      if(IsPlayerConnected(i))
      {
            new
               tab[5],
               aname[MAX_PLAYER_NAME];
            GetPlayerName(i, aname, sizeof(aname));
            if(strlen(aname) > 9) tab = \"\\t\";
            else tab = \"\\t\\t\";
            format(coordsstring,sizeof(coordsstring),\"%s{00b7ff}Név: {ffffff}%s%s {00b7ff}ping: {ffffff}%d.\\n\",coordsstring, aname, tab, GetPlayerPing(i));
            
      }
}
ShowPlayerDialog( playerid, 54545666, DIALOG_STYLE_MSGBOX, \"{ffffff}-= {00b7ff}Ping lista{ffffff} =-\", coordsstring, \"Oké\", \"\");
return 1;
}
Cím: Dialog Tab
Írta: totar - 2013. Január 06. - 18:18:38
Ezt találtam, és az utolsó posztban lévõ code-t használom, de az se pontos, mert eltér bizonyos lehetõségeknél...
http://sampforum.hu/index.php?topic=30666.msg327269#msg327269
Cím: Dialog Tab
Írta: Virgonc - 2013. Január 06. - 20:20:05
Köszönöm, de leegyszerûsítettem, elõre írtam a pinget. :D
De köszönöm, hogy megpróbáltatok segíteni! :)