Jump to content
  • 0

pomoc Text


Deejva

Dotaz

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

5 odpovědí na tuto otázku

Recommended Posts

  • 0

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

  • 0

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 .. :d


VYŘEŠENO,DÍKY


Akorát se mi teda rozděluje na konci řádku slovo:)

Link to comment
Share on other sites

  • 0


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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...