SendClientMessage Zeilenbruch mit Fehlern.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Brotfische,


    Ich habe mal wieder ein Problem, ich wollte eigentlich das man in der SendClientMessage Funktion einen Zeilenbruch machen, dieser wird aber nicht angzeigt. Sobald man connectet werden alle Strings die vom Server aus gesendet werden wie z.B "Du hast dich erfolgreich eingeloggt." usw. nicht gesendent. Beim Connecten wird auch ein Fehler Code in der Console angezeigt. (siehe unten.)


    [tabmenu]
    [tab='Code']


    [tab='Fehler Code (Debug)']


    Mit freundlichen Grüßen
    German_ScripterHD

  • Du hast diese Zeile:


    new strings[4][128]


    Es scheint, als ob du öfters als 4x \n in der sendclientmessage benutzt.


    Erhöhe evtl einfach mal den Wert:


    new strings[16][128]


    //Edit: Warte mal deine Schleife ist Quatsch...schreib die mal so:


    for(new y; y<sizeof(strings); y++)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Habe es jetzt so,:


    C
    stock __SendClientMessage(playerid, color, const string[]) // by Deadmau5 | edited und hooked by BlackAce | last edit by German_ScripterHD (sendmsg)
    {
    	new strings[16][128],sendmsg[148];
    	split(string,strings,'\n');
    	for(new y; y<sizeof(strings); y++) if(strings[y][0]) _SendClientMessage(playerid,color,sendmsg[y]);
    	return true;
    }


    aber es werden auch keine SendClientMessages mit oder ohne "\n" angezeigt. (Log besteht Fehler besteht aber nicht mehr)


    Mit freundlichen Grüßen
    German_ScripterHD

  • Was steht da auch alles für ein Unsinn :D


    Sry hab es gestern nicht richtig gelesen, schreib es so:


    C
    stock __SendClientMessage(playerid, color, const string[]) // by Deadmau5 | edited und hooked by BlackAce | last edit by German_ScripterHD (sendmsg)
    {
        new strings[16][128]:
        split(string,strings,'\n');
        for(new y; y<sizeof(strings); y++) if(strings[y][0]) _SendClientMessage(playerid,color,strings[y]);
        return true;
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Warum denn überhaupt ein Limit an möglichen Nachrichten einbauen?
    Mach es so, da kannst du so viele Zeilenumbrüche machen wie du willst, ohne dass alle Nachrichten zwischengespeichert werden müssen:
    native _SendClientMessage(playerid, color, string[]) = SendClientMessage;
    #define SendClientMessage __SendClientMessage
    stock __SendClientMessage(playerid, color, string[]) // by Deadmau5 | edited und hooked by BlackAce | last edit by Jeffry
    {
    new tmp[145];
    for(new i = 0, j = strlen(string); i < j; i++)
    {
    if(string[i] == '\n')
    {
    strmid(tmp, string, 0, i);
    strdel(string, 0, i+1);
    j -= i+1;
    i = -1;
    _SendClientMessage(playerid,color,tmp);
    }
    }
    if(strlen(string)) _SendClientMessage(playerid,color,string);
    return true;
    }


    Die "split"-Funktion brauchst du dann nicht mehr.