Deejva 36 Odesláno: 22. Červenec, 2014 Share Odesláno: 22. Červenec, 2014 Opět zdravím.. Mám chat udělaný přes sendclientmessagetoall, aby se tam psalo id.. ale problém je v tom, že to vypadá takto: Deejva (0): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Potřeboval bych, aby se ten text zlomil a psalo se to takto Deejva (0): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Díky Link to comment Share on other sites More sharing options...
0 rhsCZ 19 Odesláno: 22. Červenec, 2014 Share Odesláno: 22. Červenec, 2014 podmínka na délku textu a když bude větší než chceš tak tam musíš narvat do textu \n doufam že to pujde v chatu jinak by jsi musel rozdělit text a poslat 2x např. Link to comment Share on other sites More sharing options...
0 Deejva 36 Odesláno: 22. Červenec, 2014 Author Share Odesláno: 22. Červenec, 2014 format(string,sizeof(string),"%s (%d):{FFFFFF} %s",GetName(playerid),playerid,text); Tam asi \n nenarvu A popřípadě jak to rozdělit, to je mi jasný, že rozdělit.. Link to comment Share on other sites More sharing options...
0 Hrb™ 48 Odesláno: 22. Červenec, 2014 Share Odesláno: 22. Červenec, 2014 Zkusil jsem ti něco narychlo udělat. Jde to udělat více způsoby ale toto mě napadlo jako první: public OnPlayerText(playerid, text[]) { new zprava[128]; format(zprava,sizeof(zprava),"(%d):",playerid); // do stringu uložíme hráčovo ID //-------------------------------- if(strlen(text) > 64) // pokud je počet znaků ve zprávě delší jak 64 { // text je delší jak 64 znaků new text1[2][65]; // proměnné //---------------------------- strmid(text1[0], text, 0, 64); // zpráva se rozdělí podle znaků od 0 do 64 strmid(text1[1], text, 64, 128); // zpráva se rozdělí podle znaků od 64 do 128 (max 128 znaků pro zprávu do chatu) //---------------------------- format(zprava,sizeof(zprava),"%s %s",zprava,text1[0]); // první řádek (načteme uložené hráčovo ID + 1. část textu) SendPlayerMessageToAll(playerid,zprava); // odešle zprávu //------------------------------ zprava[0] = '\0'; // vymaže předchozí string //------------------------------ format(zprava, sizeof(zprava), "- %s", text1[1]); // druhý řádek (již bez hráčova ID, 2. část textu) SendClientMessageToAll(-1, zprava); /// odešle zbytek zprávy } else { //pokud není počet znaků ve zprávě delší jak 64, odešle jen jeden řádek format(zprava,sizeof(zprava),"%s %s",zprava,text); // načteme uložené ID ve formatu + text zprávy SendPlayerMessageToAll(playerid, zprava); // odešleme zprávu } return 0; } A napiš mi sem prosím, jestli to jede, netestoval jsem to. Dík Link to comment Share on other sites More sharing options...
0 Deejva 36 Odesláno: 23. Červenec, 2014 Author Share Odesláno: 23. Červenec, 2014 Když to je moc dlouhý, tak se pošle jen 2. řádek.. A potřeboval bych to tak, abych tam mohl dát %s a getname, protože tam potřebuju různě nastavit barvy a tak .. VYŘEŠENO,DÍKY Akorát se mi teda rozděluje na konci řádku slovo:) Link to comment Share on other sites More sharing options...
0 Kubko 22 Odesláno: 23. Červenec, 2014 Share Odesláno: 23. Červenec, 2014 public OnPlayerText(playerid, text[]) { if(strlen(text) > 64) //Ak je text dlhší ako 64 znakov { strins(text, '\n', 65); //Vložíme na ďalší znak '\n' (newline) format(text, sizeof(text), "%s (%d): %s", GetName(playerid), playerid, text); //Ak ti bude hádať warning na sizeof tak tam daj 128 SendClientMessageToAll(-1, text); return 0; } return 1; } Link to comment Share on other sites More sharing options...
Dotaz
Deejva 36
Opět zdravím..
Mám chat udělaný přes sendclientmessagetoall, aby se tam psalo id.. ale problém je v tom, že to vypadá takto:
Potřeboval bych, aby se ten text zlomil a psalo se to takto
Díky
Link to comment
Share on other sites
5 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now