Szerző Téma: Dialog Tab  (Megtekintve 998 alkalommal)

Dialog Tab
« Dátum: 2013. január 06. - 11:40:58 »
0 Show voters
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.
« Utoljára szerkesztve: 2013. január 06. - 11:47:48 írta Virgonc »

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Dialog Tab
« Válasz #1 Dátum: 2013. január 06. - 14:00:42 »
0 Show voters
Esetleg egy kodot adnál?..

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
Dialog Tab
« Válasz #2 Dátum: 2013. január 06. - 14:07:32 »
0 Show voters
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.
« Utoljára szerkesztve: 2013. január 06. - 14:09:27 írta SnooP »

Dialog Tab
« Válasz #3 Dátum: 2013. január 06. - 14:08:15 »
0 Show voters
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!
« Utoljára szerkesztve: 2013. január 06. - 14:10:18 írta Virgonc »

Dialog Tab
« Válasz #4 Dátum: 2013. január 06. - 14:59:41 »
+1 Show voters
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;
}
« Utoljára szerkesztve: 2013. január 06. - 15:05:04 írta ɐʞzssǝlosz »

Nem elérhető totar

  • 425
    • Profil megtekintése
Dialog Tab
« Válasz #5 Dátum: 2013. január 06. - 18:18:38 »
+1 Show voters
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

Dialog Tab
« Válasz #6 Dátum: 2013. január 06. - 20:20:05 »
0 Show voters
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! :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal