z.b new string[anzahl];

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
  • Wie genau kann ich feststellen welche anzahl ich für z.b string nehmen muss ??
    Kann mir das vielleicht jemand anhand eines befehls zeigen ?
    Wäre echt nett. Hab satt immer ins GF gucken zu müssen ! -.-

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

  • Solang der String danach ist, z.B. kannst du sicher sagen, dass string nicht länger als 30 Zeichen sein kann (z.B. Username), dann kannst du string[30] machen, ist es aber ein ganzer Satz, würde cih string[100] machen.

  • Was für ein string wäre es bei diesen Sätzen:


    format(string,sizeof string,"AdmCmd: %s wurde von %s gebannt. Grund: %s.",spieler2,spieler,grund)
    SendClientMessageToAll(adminrot,string)
    format(string,sizeof string,"AdmCmd: Du wurdest vom Admin %s gebannt und kannst nun nicht mehr connecten.",spieler);
    SendClientMessage(pID,adminrot,string);

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

  • Naja die zahl bestimmt die länge des strings. Also bustaben, zahlen etc.
    Da ein Name maximal 24 Zeichen lang sein kann/darf, nimmt man für namen normal ne länge von 24 oder direkt MAX_PLAYER_NAME, was das gleiche ist.


    normale nachrichten die mit SendClientMessage ausgegeben werden können maximal 128 zeichen enthalten. Also wenn du da keine genau größe hast ist 128 die richtige wahl. Ansonsten kannst du das nachrechnen.


    Wenn du z.b
    format(string,sizeof(string),"Der Spieler %s Hat den server Betreten.",Name_Des_Spielers);
    SendClientMessage(playerid,FARBE_WEIß,string);


    ausgeben willst, kannst du das einfach zusammen rechnen.
    Der Spieler -> 13 Zeichen (das leerzeichen am ende ist mit gezählt)
    %s -> 24 (Da das %s ja durch einen namen ersetzt wird, und wir wissen das ein Name maximal 24 Zeichen lang sein kann)
    Hat den server Betreten. -> 25 (das Leerzeichen am anfang wird natürlich auch wieder mit gezählt)
    +1 Weil immer einer dazu gerechnet wird. Ich weiss grad nicht genau warum aber vllt antwortet ja noch jmd hier drauf der das weiss^^

    mach zusammen 12+24+25+1.
    Also machst du:
    new string[12+24+25+1];
    bzw direkt
    new string[62];


    Zitat

    Wie Grex sagte, am besten immer größere Strings nehmen also bei dir kannst auch schon string[100] nehmen.


    Das halte ich für ein gerücht. Mag vielleicht zu GF zeiten gang und gebe gewesen sein die strings immer extra groß zu machen, und nur werte ala 128,256 etc zu benutzen. Aber Sinnvoll wäre es immer nur so groß zu machen wie wirklich benötigt wird.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Alles klar !! Danke euch allen ! Damit habt ihr mir viel Zeit erspart. Danke auch an Maddin für die perfekte Beschreibung. Hab sie gespeichert.
    DANKE !! :)

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

  • Theoretisch kannst du Strings gleich auf 1024 oder höher festlegen, damit du nie mit einer Begrenzung Probleme bekommen würdest.
    Praktisch rate ich davon dringend ab, denn der Arbeitsspeicherverbrauch verhält sich proportional zur Stringgröße. Das würde nicht nur die Größe deiner AMX Datei vergrößern, sondern beim Laufen des Servers mehr Ressourcen beanspruchen.