Jeden 3. Buchstaben ersetzen

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
  • Hi, also ich möchte jetzt z.B. das wenn jemand einen Text in den Chat schreibt. Der Text dann Lücken enthalten soll. Das heißt jeder 3. Buchstabe soll ersetzt werden.
    Habe es jetzt so ausprobiert:



    public Reden(playerid, text[], Staerke)
    {
    new
    len=strlen(text);
    for(new i;i<len;i++)
    {
    if(text[i]==' ') { return 1; }
    else
    {
    Count ++;
    if(Count == Staerke)
    {
    len = X; // FehlerZeile
    Count = 0;
    return 1;
    }
    }


    }
    return 1;
    }


    So, habe ich mir erhofft, wird jeder ,durch Staerke angegebener Buchstabe, mit einem X ersetzt.
    Den Code habe ich mir aus einem Schnipsel von Goldkiller zusammengebaut.


    Allerdings gibt bringt er mir folgenden Error:

    Zitat

    error 029: invalid expression, assumed zero


    Könnte mir jemand sagen, oder scripten wie ich so etwas mache?

    ...

  • X ist doch ein String, also müsstest du len = "X"; benutzen. Bin mir aber nicht sicher im Moment.

  • len = 'X';
    Des Rätzels Lösung.
    Aber wie wärs mit einem Random-Faktor?
    Reden(text[], rand_size = 10)
    {
    new rand_int = random(rand_size);
    for(new i = 0; i < strlen(text); i++)
    {
    rand_int--;
    if(rand_int <= 0)
    {
    text[i] = ' '; // ersetzten!
    rand_int = random(rand_size);
    }
    }
    }


    Reden(text, höchste Zufallszahl)


    Anwendung:
    public OnPlayerText(playerid, text[])
    {
    Reden(text, 6); // Jedes 0 bis 6te Zeichen wird ersetzt!
    return 1;
    }