Hey, wie kann man machen, dass wenn man etwas schreibt und es zu lang ist, dass es automatisch in die 2. zeile übergeht?
Gruß & danke
Hey, wie kann man machen, dass wenn man etwas schreibt und es zu lang ist, dass es automatisch in die 2. zeile übergeht?
Gruß & danke
stock SendClientMessageToAllEx(color, string[]){ new count, lenght = 72; for(new i, l = strlen(string); i != l; i++) { if(string[i] == '{' && string[i+7] == '}') count += 8; } if(strlen(string) > (lenght+count)) { new text[2][128]; strmid(text[0], string, 0, lenght+count); strmid(text[1], string, lenght+count, strlen(string)); format(text[0], 128, "%s...", text[0]); SendClientMessageToAll(color, text[0]); format(text[1], 128, "...%s", text[1]); SendClientMessageToAll(color, text[1]); return 1; } SendClientMessageToAll(color, string); return 1;}stock SendClientMessageEx(playerid, color, string[]){ new count, lenght = 72; for (new i, l = strlen(string); i != l; i++) { if(string[i] == '{' && string[i+7] == '}') count += 8; } if(strlen(string) > (lenght+count)) { new text[2][128]; strmid(text[0], string, 0, lenght+count); strmid(text[1], string, lenght+count, strlen(string)); format(text[0], 128, "%s...", text[0]); SendClientMessage(playerid, color, text[0]); format(text[1], 128, "...%s", text[1]); SendClientMessage(playerid, color, text[1]); return 1; } SendClientMessage(playerid, color, string); return 1;}
An sich ist das kein schöner Code...
Hier mal eine Alternative:
stock SendLongClientMessage(playerid, color, const string[])
{
new tmp[128],l=strlen(string);
if(l < 100) return SendClientMessage(playerid,color,string);
new space = strfind(string," ",false,80);
if(space == -1) return SendClientMessage(playerid,color,string);
strmid(tmp,string,0,space,sizeof(tmp)),strcat(tmp,"...",sizeof(tmp));
SendClientMessage(playerid,color,tmp);
strmid(tmp,string,space+1,l,sizeof(tmp)),strins(tmp,"...",0,sizeof(tmp));
SendClientMessage(playerid,color,tmp);
return 1;
}
Alles anzeigen
Dafür brauch man nicht mal eine Schleife
Alles anzeigenstock SendLongClientMessage(playerid, color, const string[])
{
new tmp[128],l=strlen(string);
if(l < 100) return SendClientMessage(playerid,color,string);
new space = strfind(string," ",false,80);
if(space == -1) return SendClientMessage(playerid,color,string);
strmid(tmp,string,0,space,sizeof(tmp)),strcat(tmp,"...",sizeof(tmp));
SendClientMessage(playerid,color,tmp);
strmid(tmp,string,space+1,l,sizeof(tmp)),strins(tmp,"...",0,sizeof(tmp));
SendClientMessage(playerid,color,tmp);
return 1;
}
Danke dir, funktioniert einwandfrei
Nein, \n ist nur für eine neue Zeile zB im Dialog.
SendClientMessage ist ja der Chat, und der Chat hat nur 128 Zeichen soweit ich weiß.
Deswegen Splitten die es auch, und Teilen es in zwei SendClientMessage auf.
Mit freundlichen Grüßen.
SendClientMessage ist ja der Chat, und der Chat hat nur 128 Zeichen soweit ich weiß.
144 Zeichen plus EOS, sprich das maximale was du angezeigt bekommst ist ein String mit [145] als Arraygröße, was 144 sichtbaren Zeichen entspricht.