Dialog Tab

Indította Virgonc, 2013. január 06. - 11:40:58

Előző téma - Következő téma

Virgonc

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.

ZyZu.

Esetleg egy kodot adnál?..

SnooP

#2
Idézetet írta: Virgonc date=1357468858\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32016\" data-ipsquote-contentclass=\"forums_TopicHali!
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.

Virgonc

#3
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!

Zsolesszka

#4
http://wiki.sa-mp.com/wiki/Strlen\" rel=\"external nofollow\">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;
}

totar

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\" rel=\"external nofollow\">http://sampforum.hu/index.php?topic=30666.msg327269#msg327269

Virgonc

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! :)