ShowPlayerDialog(playerid, ID, DIALOG_STYLE_LIST, \"Cím\", \"Sor1\\nSor2\\nSor3 ... Ebbõl hány lehet?*, \"Kiválaszt\", \"Mégsem\");
while(mysql_fetch_row(mysql_line)){i++;format(string, sizeof(string), \"T%d\", i); // A stringet mindig máshogy írom át, T1, T2, T3, stb. Na most ezeket a T1, T2, stb.ket szeretném használni több stringhez.format(string, sizeof(string), \"{0000FF}%s\", mysql_line); // Itt a string helyén a T1, T2, T3, T4, stb.nek kéne szerepelnie, mindig annak, ami éppen jön. Így az éppen következõ adatot mindig külön karakterláncként el tudnám tárolni, és ez is lenne a cél. Csak ugye ez, amit itt leírtam, a lekérdezés eredményét rakja bele a \"string\" nevezetû karakterláncba, átszínezve. De én azt szeretném, hogy a soron következõ TX (X = pl. 3) nevezetû karakterláncba pakolja bele a dolgot.SendClientMessage(playerid, 0xFFFFFFFF, T1); // A példa kedvéértSendClientMessage(playerid, 0xFFFFFFFF, T2); // A példa kedvéért}
new T[50];while(mysql_fetch_row(mysql_line)){i++;format(T, sizeof(T), \"{0000FF}%s\", mysql_line);SendClientMessage(playerid, 0xFFFFFFFF, T1); // A példa kedvéértSendClientMessage(playerid, 0xFFFFFFFF, T2); // A példa kedvéért}
SendClientMessage(playerid, 0xFFFFFFFF, mysql_line);
Nekem 44 darabot engedett, a Nemzetiség scriptemnél, tehát 44. [/quote]Attól még, hogy nálad annyit engedett, nem biztos, hogy annyi a határ, ha van határ. Függ a karakterlánc hosszúságától is szerintem. 44, mint limit? Kizárt... Nem limitnek való szám... 44, mint limit, pedig szinte biztosan nem limit sehol sem, egyik programnyelvben sem.
Értelmezned kéne a válaszomat -.-\"Nálam\" szó benne volt a kommentben. Hogyne függne a karakterlánc hosszúságától! Pontosan nem tudom megmondani, de utána nézek! [/quote]Spoiler for ...: Jajj de szeretem az offolókat... :facepalm:Téma bõvítve egy új kérdéssel, amely a dologhoz kapcsolódik.Rupert, azt már néztem (azzal kezdtem), és nem találtam meg rajta. Én viszont külön arra vonatkozóan kerestem adatot (legyen szó sorról, vagy karakterszámról), de nem találtam sajnos. De már megvan, csak azért nem láttam, mert az összes dialogra vonatkozik a dolog. Köszi. Akkor viszont hogyan oldhatom meg, hogy annál is többet írjak ki? Nyilván sehogy sem, igaz? Mert akkor sajnos marad a több oldalas megoldás, amelyet igyekeznék elkerülni...
Edit: nem ide tartozik, de akkor ezek szerint az MSGBOX-nál a kiírt szöveg az inputtext? [/quote]Nem.Átolvastam az egészet, és eléggé meglepõ hogy egy ilyen kis apróságon fennakadsz.Karakterláncok összefûzésére valóban az strcat használata a célszerû de mivel új adatokat is be kell illeszteni, és elgondolkodtató hogy egy darab illetve két darab változót szeretne az ember használni így kétféle lehetõség marad: new bigstr[4096];bigstr = \"{0000FF}\"; // színkód elhelyezése a karakterlánc legelejére ha az egész szöveget egy színben akarod megjeleníteni.while(mysql_fetch_row(mysql_line)){ format(bigstr, sizeof bigstr, \"%s%s\\n\", bigstr, mysql_line);}ShowPlayerDialog(playerid, 342, DIALOG_STYLE_LIST, \"teszt\", bigstr, \"Select\", \"\"); // A SendClientMessage lehet crashel ekkora karakterláncnál meg megse tudja jeleníteni. Persze ebben az új adatra arra gondoltam ha netalán szeretnéd megszámozni a sorokat. (persze ezt lehet mysql lekérdezéssel is be lehetne illeszteni de csak a példa kedvéért írtam ezt) new bigstr[4096], temp[128], i;bigstr = \"{0000FF}\"; // színkód elhelyezése a karakterlánc legelejére ha az egész szöveget egy színben akarod megjeleníteni.while(mysql_fetch_row(mysql_line)){ format(temp, sizeof temp, \"(%d)%s\\n\", i, mysql_line); strcat(bigstr, temp); i++;}ShowPlayerDialog(playerid, 342, DIALOG_STYLE_LIST, \"teszt\", bigstr, \"Select\", \"\");
new bigstr[4096];bigstr = \"{0000FF}\"; // színkód elhelyezése a karakterlánc legelejére ha az egész szöveget egy színben akarod megjeleníteni.while(mysql_fetch_row(mysql_line)){ format(bigstr, sizeof bigstr, \"%s%s\\n\", bigstr, mysql_line);}ShowPlayerDialog(playerid, 342, DIALOG_STYLE_LIST, \"teszt\", bigstr, \"Select\", \"\"); // A SendClientMessage lehet crashel ekkora karakterláncnál meg megse tudja jeleníteni.
new bigstr[4096], temp[128], i;bigstr = \"{0000FF}\"; // színkód elhelyezése a karakterlánc legelejére ha az egész szöveget egy színben akarod megjeleníteni.while(mysql_fetch_row(mysql_line)){ format(temp, sizeof temp, \"(%d)%s\\n\", i, mysql_line); strcat(bigstr, temp); i++;}ShowPlayerDialog(playerid, 342, DIALOG_STYLE_LIST, \"teszt\", bigstr, \"Select\", \"\");
while(mysql_fetch_row(mysql_line)){ format(bigstr, sizeof bigstr, \"%s%s\\n\", bigstr, mysql_line);} [/quote]Itt mintha a lekérdezett adat mindig a soron következõ %s helyére kerülne. Ez így is történik? Csak mert erre gondoltam már párszor, de még mindig nem látom a logikáját, hogy miért ne az elsõ helyre kerülne a karakterlánc minden alkalommal. Valahogy sosem próbáltam meg e miatt... Ezek szerint hagyjam a fenébe azt a sok változót, amelyet késõbb egy stingbe tennék vagy format(bigstr, sizeof bigstr...-al, vagy pedig strcat-al?Upsz, rosszul értelmeztem, már látom benne a logikát. Akkor amirõl én az elõbb beszéltem, kicsit másról szólt. Na mindegy is, akkor ezt most már értem. Eleinte az lesz a bigstr, hogy {00FF00}Valami\\n, aztán már {00FF00}Valami\\nSonkaaa\\n, majd {00FF00}Valami\\nSonkaaa\\nSaaajt\\n, stb., és így tovább.A második \"megoldás\" már nem is igazán megoldás, hiszen a lényeg nem az, hogy különbözõ számot adjak neki, hanem az, hogy kiírjam a dolgokat egy dialogba, majd azokat késõbb még fel is tudjam használni, az adott adat újbóli lekérdezések nélkül. Viszont az elsõ megoldásod abszolúte tökéletes. A végén még ma megvalósítom a dolgot, habár nemsokára lépni készülõdök.Spoiler for SendClientMessage: // A SendClientMessage lehet crashel ekkora karakterláncnál meg megse tudja jeleníteni. [/quote]Amúgy a SendClientMessage csak egy példa volt, természetesen nem ahhoz kell, hanem dialoghoz. Igazából írhattam volna azt is a SendClientMessage helyett, csakhogy nem tudtam hogyan kéne azt leírni, hisz errõl is szól a 2. kérdésem. Meg persze a SendClientMessage rövidebb is, mint egy dialog, szóval miért ne írtam volna le azt, amelyikkel gyorsabban megvagyok?
while(mysql_fetch_row(mysql_line)){ format(bigstr, sizeof bigstr, \"%s%s\\n\", bigstr, mysql_line);}
// A SendClientMessage lehet crashel ekkora karakterláncnál meg megse tudja jeleníteni. [/quote]Amúgy a SendClientMessage csak egy példa volt, természetesen nem ahhoz kell, hanem dialoghoz. Igazából írhattam volna azt is a SendClientMessage helyett, csakhogy nem tudtam hogyan kéne azt leírni, hisz errõl is szól a 2. kérdésem. Meg persze a SendClientMessage rövidebb is, mint egy dialog, szóval miért ne írtam volna le azt, amelyikkel gyorsabban megvagyok?
// A SendClientMessage lehet crashel ekkora karakterláncnál meg megse tudja jeleníteni.
new str[128];str = \"teszt\";for(new i; i < 100; i++){ format(str, sizeof str, \"%s\", str); print(str);}
bigstr, mysql_line);mysql_line, bigstr);