Frage zum string

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 liebe Community,
    Ich habe ein Problem und zwar ist meinen Text im /o Chat zu kurz.
    Ich habe es versucht mit mehreren strings aber Ich komm nicht so wirklich weiter.
    ocmd:o(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist kein Admin.");
    {
    new text [ 128 ], string2[ 128], string3 [ 200 ];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"[Benutzung]: /o [Text]");
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new string [ 128 ];
    new alevel[ 128 ];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 1:{alevel="Supporter";}
    case 2:{alevel="Moderator";}
    case 3:{alevel="Moderator & Supporter";}
    case 4:{alevel="Admin";}
    case 5:{alevel="Full Admin";}
    case 6:{alevel="Inhaber";}
    }
    format(string,sizeof(string),"%s %s:",alevel,SpielerName(playerid));
    format(string2,sizeof(string2),"%s",text);
    format(string3,sizeof(string3),"%s %s",string,string2);
    SendClientMessage(i,LILA,string3);
    }
    }
    }
    return 1;
    }
    Wenn Ich jetzt z.B im Spiel eingebe "Hallo Wie geht es Dir Ich habe dich nicht lieb" dann geht der Text nur bis "Hallo wie geht es Dir Ich habe" das ist definitiv zu kurz.
    Wie kann Ich das verlängern?


    Liebe Grüße !

  • Wie soll es denn ausgegeben werden ?
    Du solltest den String einmalig formatieren, da du ja zu allen Spielern den gleichen String senden möchtest. Lediglich das Senden sollte in der Schleife vorkommen. Anstatt die Schleife wäre auch SendClientMessageToAll nützlich,wenn es wirklich an ALLE gesendet werden soll.
    Du brauchst auch sowieso nicht 3x format, 1x tut es auch:
    format(string3,sizeof(string3),"%s %s: %s",alevel,SpielerName(playerid),text);
    "alevel" muss auch nicht 128 Zellen Groß sein, 22 tut es bei dir in diesem Fall auch.


    Genau genommen brauchst du die Variable "text" auch nicht, du kannst auch direkt params verwenden. Müsstest allerdings prüfen ob params leer ist ( isnull Funktion wäre sinnvoll ).