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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: TengeriMalac - 2012. Augusztus 15. - 11:27:59

Cím: Tabulátor
Írta: TengeriMalac - 2012. Augusztus 15. - 11:27:59
Tabulátor Egyszerûsítõ
 
Ez egy apró kis kód, ami leegyszerûsíti a tabulátor \'\\t\' használatát játékon belül.
!!Csak Windowson teszteltem, nem tudom, linuxon mekkora egy tabulátor mérete!!
Tartalma
 
  • Tabulátor függvény

Használata
Ez a kód visszatérési értékként adja meg a tabulált szöveget, szoval így is kell használni scripten belül
 
Tab(tabulált szöveg eleje[], tabulálni kívánt szöveg[], tabulátor métere);

 
Szükséges
 
  • Alap \'a_samp\' függvénykönyvtár

Frissítések
Nem kívánom frissíteni ezt a kódot.
Hibák, elírások
Ha valamit elírtam, hibásan írtam meg, akkor egy kommentben jelentsétek.
Köszönöm.
Példa script
 
#include <a_samp>
#include <tabulator>
public OnFilterScriptInit() {
new szam[4],
    string[128];
for(new i = 0; i < 20; i++) {
    format(szam, 4, \"%d\", i);
    strins(string, szam, strlen(string), 128);
printf(\"%s\", Tab(string, \"2\", 5));
}
return 1;
}

 
\"3322u6w.png\"
Letöltés
Pastebin
Cím: Tabulátor
Írta: Zsolesszka - 2012. Augusztus 15. - 19:54:08
printf(\"%s\", Tab(string, \"2\", 2));

 
Ellenõrizd le újra a fenti példával és látni fogod hogy a bevitt számsor karakterláncot elrontja.
 
0123456789101112131415161718192
[/quote]
Cím: Tabulátor
Írta: TengeriMalac - 2012. Augusztus 15. - 20:08:13
Idézetet írta: ɐʞzssǝlosz date=1345053248\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic

printf(\"%s\", Tab(string, \"2\", 2));

 
Ellenõrizd le újra a fenti példával és látni fogod hogy a bevitt számsor karakterláncot elrontja.
 
0123456789101112131415161718192

[/quote]
Erre akartam megoldást, csak mindig hibát írt rá.
Egyébként nem hibás szerintem, mert 2 tabbal akartad eltolni (ami 16 karakter), de a beírt szöveged hosszabb, mint 16 karakter, szoval a függvény automatikusan nem tabulálja.
Ennek ellenõrzésére volt egy pár sor benne, ami szabályozta azt is, hogy például ne lehessen 0 alatti értékre tabulálni, de ismétlem, nem tudtam megoldani, mert hibát írt rá a  string visszatérés miatt.
Cím: Tabulátor
Írta: Zsolesszka - 2012. Augusztus 15. - 20:34:18
De én elnéztem, a kód mûködik mivel a számokat úgy pakolja egymás után hogy 9 10 11 12 és így tovább és a végére oda teszi a 2-est.
Már alkotom az egyszerûsítést. Postolom ide, ha kész. :D
Edit:
 
stock 
Tab(text[], text2[], tabcount = 0)
{
new
tab_[16] = \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\",
out[128];      
if((tabcount = (((tabcount + 1) * 8) - strlen(text) - 1) / 8) < 0 || tabcount >= sizeof tab_) tabcount = 0;
format(out, sizeof out, \"%s%s%s\", text, tab_[(sizeof(tab_) - 1) - tabcount], text2);
return out;
}

 
Elkészült, én tesztelgettem és nem találtam hibát benne. Ha valaki igen akkor írjon. :D
Cím: Tabulátor
Írta: totar - 2013. Január 07. - 18:04:23
Bocs, hogy nagyon régi téma, csak használgatom zsoleszka kódját:
 

    stock
            Tab(text[], text2[], tabcount = 0)
    {
            new
                    tab_[16] = \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\",
                    out[128];             
            if((tabcount = (((tabcount + 1) * 8) - strlen(text) - 1) / 8) < 0 || tabcount >= sizeof tab_) tabcount = 0;
            format(out, sizeof out, \"%s%s%s\", text, tab_[(sizeof(tab_) - 1) - tabcount], text2);
            return out;
    }

 
Az a tapasztalatom, hogy ez sem mindig pontos, eltér 1-2 esetû karakterhosszúság egymás mellé kerülésekor.
New OFF, csak tapasztalat, hogy hátha lehet javítani, de ez a legjobb tabulator kód, amit eddig láttam.
Cím: Tabulátor
Írta: Zsolesszka - 2013. Január 07. - 22:05:59
Az eltérõ egy két esetrõl kellene kép, hogy lehessen vele tesztelni.
De szerintem akkor se lesz 100 százalékos, én a karakterek szélességére próbálok ezzel utalni.
Példaként
10 darab i:
iiiiiiiiii
és 10 darab a:
aaaaaaaaaa
Cím: Tabulátor
Írta: TengeriMalac - 2013. Január 08. - 12:49:49
elméletileg ugyanoda tolja ki õket, mert a karakterek száma alapján dolgozik.
Cím: Tabulátor
Írta: takehun - 2013. Január 08. - 13:09:30
Ez tehát arra jó, hogy ne csúszkáljon a szöveg? Mert én dialognál hiába használom a  \\t  -t nekem másképp jelenik meg mint a többi playernek.
Cím: Tabulátor
Írta: TengeriMalac - 2013. Január 08. - 13:46:56
igen.
az, hogy hány \\t kell az adott szövegbe, a szöveg hosszától függ.. ennek kiszámítására írtam ezt a függvényt. :D
Cím: Tabulátor
Írta: takehun - 2013. Január 08. - 14:32:12
Nagyszerû, akkor ki is próbálom majd.  :thumbsup: Köszi szépen.  :yes:
Cím: Tabulátor
Írta: totar - 2013. Január 11. - 15:57:40
\"5b240ddaff.png\"\"7de9149b4b.png\"
tessék például.
Cím: Tabulátor
Írta: kurta999 - 2013. Január 11. - 20:22:11
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.
Cím: Tabulátor
Írta: Gabor.. - 2013. Január 11. - 20:47:21
Idézetet írta: kurta999 date=1357932131\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.
 
Ezt a 30-as dolgot kifejtenéd légyszi?
Cím: Tabulátor
Írta: totar - 2013. Január 11. - 21:09:58
Idézetet írta: kurta999 date=1357932131\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.
 
Okés
 

Ezt a 30-as dolgot kifejtenéd légyszi?
 
[/quote]
Ezt leltem http://forum.sa-mp.com/showthread.php?t=338258

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 12. - 08:48:23 )

Én úgy próbáltam, hogy %02d. %24s\\t\\t%02d               Number, Name, Kills
\"95547b0888.png\"
Cím: Tabulátor
Írta: Gabor.. - 2013. Február 07. - 21:21:35
Valaki tud egy biztos megoldást erre a tabulátoros dologra?
Így akarnám:
Pénz: $10         Pont: 100
Ölés: 10            Halál: 10
format függvényben:
Pénz: $%d        Pont: %d
Ölés: %d           Halál: %d
Ezeket kéne tabulálni, hogy a játékban is így mutassa.
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 05. - 21:21:33
Bocsi a duplaposztért!
Valaki tud egy biztos megoldást erre a tabulátoros dologra?
Így akarnám:
Pénz:   $10          Pont:   100
Ölés:   10            Halál:   10
format függvényben:
Pénz:  $%d        Pont:  %d
Ölés:   %d         Halál:  %d
Ezeket kéne tabulálni, hogy a játékban is így mutassa. Sose csússzanak el, mindig egy vonalban legyenek.
Valaki?
Cím: Tabulátor
Írta: lackos888 - 2013. Március 06. - 07:02:32
Idézetet írta: Gabor.. date=1362514893\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Bocsi a duplaposztért!
Valaki tud egy biztos megoldást erre a tabulátoros dologra?
Így akarnám:
Pénz:   $10          Pont:   100
Ölés:   10            Halál:   10
format függvényben:
Pénz:  $%d        Pont:  %d
Ölés:   %d         Halál:  %d
Ezeket kéne tabulálni, hogy a játékban is így mutassa. Sose csússzanak el, mindig egy vonalban legyenek.
Valaki?
 
Esetleg így?
 

Pénz:  $%d\\tPont:  %d
Ölés:   %d\\tHalál:  %d
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 06. - 13:28:26
Nem jó. :/
Kód:
 

CMD:dialog( playerid )
{
new
szString[ 300 + 1 ];
format( szString, sizeof( szString ),
    \"Pénz:             $%d\\tPont:                  %d\\n\\
              Ölés:              %d\\tHalál:                 %d\\n\\
     Figyelmeztések:    %d\\tMegnyert tesztek:      %d\", 1000, 5555, 10, 5, 5, 10 );
ShowPlayerDialog( playerid, 500, DIALOG_STYLE_MSGBOX, \"asdegypélda\",  szString, \"ok\", \"\" );
return 1;
}

 
Kép:
\"816029500N_vtelen_www.kepfeltoltes.hu_.png\"
Elég sok helyen láttam ilyen dialógot, ezek szerint meg lehet oldani.
Cím: Tabulátor
Írta: totar - 2013. Március 06. - 14:27:50
Szerintem nincs biztos megoldás(sohasem fognak egymás alá esni a szövegek pontosan), mert a betû méretek nem egyeznek meg...
 
Idézetet írta: ɐʞzssǝlosz date=1357592759\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Az eltérõ egy két esetrõl kellene kép, hogy lehessen vele tesztelni.
De szerintem akkor se lesz 100 százalékos, én a karakterek szélességére próbálok ezzel utalni.
Példaként
10 darab i:
iiiiiiiiii
és 10 darab a:
aaaaaaaaaa
 
Cím: Tabulátor
Írta: TengeriMalac - 2013. Március 06. - 14:44:11
Egy kérdés...
Ez az általam publikált téma hogy az édes anyámba került a segítségkérések közé?!
Egy válasz..
Ha hazaértem, leírom, hogy hogy csináld meg a dialogos stringes cucmót, de most nincs rá idõm.
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 06. - 15:33:39
Megköszönném.  :)
Cím: Tabulátor
Írta: Sramm - 2013. Március 06. - 19:20:40
Valaki mondja el nekem kérlek, hogy ez mitõl leírás?
Csak mert eredetileg jó helyen volt, csak Anthony áthelyezte...
Cím: Tabulátor
Írta: Zsolesszka - 2013. Március 06. - 20:37:01
Idézetet írta: totar date=1362576470\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Szerintem nincs biztos megoldás(sohasem fognak egymás alá esni a szövegek pontosan), mert a betû méretek nem egyeznek meg...
 

Az eltérõ egy két esetrõl kellene kép, hogy lehessen vele tesztelni.
De szerintem akkor se lesz 100 százalékos, én a karakterek szélességére próbálok ezzel utalni.
Példaként
10 darab i:
iiiiiiiiii
és 10 darab a:
aaaaaaaaaa
 

[/quote]
Sõt én most már hozzá tenném a felbontást is, én például: 1680*1050*32 beállítással játszok.
Notepad++-nál is ha növelem vagy csökkentem a betûméretet ott is rosszul jelennek meg a sorok amelyeket korábban tabulátorokkal szépen oszlopokba rendeztem.
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 06. - 20:42:53
De akkor pár szerveren, ahol ilyen van, ott hogy van szépen tabulálva?
Cím: Tabulátor
Írta: Zsolesszka - 2013. Március 06. - 20:47:55
Meg kell próbálni csak sima szóközökkel kiegészíteni a dolgot.
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 06. - 20:50:14
Már próbáltam, de az sem jó. :/
Cím: Tabulátor
Írta: DrAkE - 2013. Március 06. - 23:35:14
Maximum valahogy így lehet:
 

new
szString[ 300 + 1 ];
   
format( szString, sizeof( szString ),
\"%20s%10d$\\t\\t%20s%10d\\n\\
%20s%10d\\t\\t%20s%10d\\n\\
%20s%10d\\t\\t%20s%10d\", \"Pénz\", 1000000, \"Pont\", 555005, \"Ölés\", 10420, \"Halál\", 5, \"Figyelmeztetések\", 5, \"Megnyert tesztek:\", 10 );
print(szString);

 
Eredmény:
\"eredmeny.png\"
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 07. - 12:40:35
Úgy sem jó. :/
\"1203078479N_vtelen_www.kepfeltoltes.hu_.png\"
Cím: Tabulátor
Írta: kurta999 - 2013. Március 08. - 01:58:45
Dialógba nem fogod tudni normálissan megcsinálni, ha csak nem csinálsz valami függvényt vagy akármit a betûméretekre, amivel átszámítod mikor fogja átdobni.
 
De akkor pár szerveren, ahol ilyen van, ott hogy van szépen tabulálva?[/quote]
Úgy vannak szépen tabulálva, hogy azok konstans üzenetek, tehát egyszer megcsinálták és az jó.
Én a top 30 játékosra használtam, ott nem ugyanazok az értékek vannak, soha nemvolt pontos.
Egy parancs dialógra simán megtudod csinálni, mert azt egyszer megírod azt széttudod számolni jópár tesztelés után, hogy pontossan kijöjjön.
Cím: Tabulátor
Írta: Gabor.. - 2013. Március 08. - 13:55:49
Idézetet írta: kurta999 date=1362704325\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Dialógba nem fogod tudni normálissan megcsinálni, ha csak nem csinálsz valami függvényt vagy akármit a betûméretekre, amivel átszámítod mikor fogja átdobni.
 
De akkor pár szerveren, ahol ilyen van, ott hogy van szépen tabulálva?
Úgy vannak szépen tabulálva, hogy azok konstans üzenetek, tehát egyszer megcsinálták és az jó.
Én a top 30 játékosra használtam, ott nem ugyanazok az értékek vannak, soha nemvolt pontos.
Egy parancs dialógra simán megtudod csinálni, mert azt egyszer megírod azt széttudod számolni jópár tesztelés után, hogy pontossan kijöjjön.
 
[/quote]
Értem...:)
Köszi mindenkinek!
Cím: Tabulátor
Írta: TengeriMalac - 2013. Március 10. - 12:37:04
Pár napos tesztelgetés után arra jöttem rá, hogy a dialogos tabulálás nagyon el van kúrva.
A dialogban használt \\t mérete attól függ, hogy elõtte hány szóköz (\" \") van.
Ha 4, és utána használom a tabulátort, akkor 4 szóköznyit ugrik, ha 11, akkor 11et.
Ezt jó lenne ha javítanák.
Cím: Tabulátor
Írta: scripter01 - 2013. Március 23. - 06:37:22
Pfhuu mennyit kerestem régen ezt grat szép lett :)
Cím: Tabulátor
Írta: scripter01 - 2013. Április 24. - 14:23:28
Hasznos kis dolog :) fel használom :)