Maximale String länge -> Drüber: Fehler anzeigen

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,
    ich habe folgenden Code.. Undzwar möchte, wenn jemand mehr als 20 Zeichen benutzt, ein Fehler angezeigt wird & der Befehl returnt wird also nicht ausgeführt wird..
    .
    Hier ist der Befehl:


    ocmd:ta(playerid,params[])
    {
    new text,str[256];
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    if(PlayerInfo[playerid][pRank] < 5)return SendClientMessage(playerid, COLOR_RED,"Du musst mindestens Rank 5 sein.");
    if(sscanf(params, "s", text)) return SendClientMessage(playerid, COLOR_GREY, "Fehler: /ta [Text]");
    format(str,sizeof(str),"Unbekannter: %s",text);
    SendClientMessageToAll(COLOR_WHITE, "|================= {FF0000}Terrornachricht {FFFFFF}=================|");
    SendClientMessageToAll(COLOR_WHITE, str);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied der Terroristen.");
    }
    return 1;
    }



    Ich möchte jetzt sowas wie if(sscanf(params,"s",text))
    if(text > 0 && text < 50) aber das geht ja nur bei Zahlen und soweit ich weiß nicht bei Zeichenketten oder?


    Scripte nach 2 Jahren wieder, also seit nicht so hart :)



    MfG

  • Wäre vielleicht von Vorteil, wenn du uns die betroffene Zeile zeigst, denn hellsehen können wir noch immer nicht.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Wäre vielleicht von Vorteil, wenn du uns die betroffene Zeile zeigst, denn hellsehen können wir noch immer nicht.


    Achso, sry ich dachte das ist eindeutig, dass damit folgende Zeile gemeint ist:


    if(strlen(text) > 20)return SendClientMessage(playerid,COLOR_RED,"Du darfst maximal 20 Zeichen benutzen.");

  • Naja du musst da statt (text) (str) reinschreiben :)


    Nein, str ist der ganze String, er möchte aber eine Nachricht ausgeben lassen, wenn text größer als 20 ist.
    Also so:
    new text[128],str[145];