Nur ein 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
  • Hey,


    Ich wollte mal fragen, ob es zu Fehlern führt oder es überhaupt funktioniert, wenn ich ganz oben new string[128]; mache und dann in jedem Command oder so wo ich sendclientmessage verwende und ein String für format brauche, es auf den einzigen String speichere.


    Hoffe ihr versteht es ^^.


    Danke!

  • Nein das wird nicht funktionieren, da es sich wohl sonst schneiden würde.


    Überall wo du einen String brauchst, wirst du wohl einen neuen erstellen & formatieren müssen.


    //Edit: Rechtschreibung.


    //Edit: Kann natürlich auch sein, dass ich falsch liege.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • es reicht eine deklaierung
    Ich nutze auch für 60 sachen nur 1 string und es geht ohne ein Prob


    //e
    Text

  • Du brauchst/kannst auch einmal oben den string deklaieren
    den kannst du immer wieder verwenden wenn du jetzt immer einen neuen string deklaierst, dann geht es auf die reccourcen

  • Natürlich funktioniert das.


    In jeder Funktion, in der der dann definiert wird,
    überschreibt den String dann sowieso wieder.
    (etwas unglückliche Formulieren, entschuldigung)


    Ein Beispiel:


    format(string, sizeof(string), "test 123");


    der String gibt nun auch wieder - test 123 - zurück.


    Wird er danach gleich wieder erneut definiert,


    format(string, sizeof(string), "test 234");


    wird der vorherige String überschrieben und gibt jetzt


    - test 234 - zurück und nicht etwa - test 123 -
    Und abropo ist der String außerhalb der Funktionen
    sowieso nicht anwendbar, wenn er innerhalb dieser
    deklariert wird.

  • es wird damit eigendlich keine Probleme geben
    aber du kannst unter einen format des stringes strdel nutzen damit setzt du den wieder auf 0 aber man brauch es nicht

  • Zitat

    aber du kannst unter einen format des stringes strdel nutzen damit setzt du den wieder auf 0 aber man brauch es nicht


    Richtig.


    Außerhalb der Funktion, ist der String dann sowieso nichtig.


    Und mehrmals in einer Funktion verwendet, ist immer der
    letzt definierte String, der jenige, der ausgegeben wird.

  • Der String wird ganz oben definiert, also kann jeder Abschnitt auch drauf zugreifen, ich will eigentlich nur wissen, ob es sein könnte das zwei Spieler einen unterschiedlichen Befehl oder den gleichen ca. gleichzeitig ausführen und dann der der den Befehl ein bisschen früher ausgeführt hat, den String vom anderen bekommt.

  • Erstelle einfach einen globalen String, und formatiere ihn dort wo du möchtest.
    Du kannst natürlich auch einfach bei z.B. OnPlayerCommandText am Anfang den String deklarieren, und dann bei jedem Befehl verwenden, das geht auch.


    Also buggen sollte nichts, solange es richtig verwendet wird. ;)

  • Auch wenn ich Deinem Wortlaut gerade nicht so ganz
    folgen kann, kannst Du Dir sicher sein, dass Dein String,
    den Du in den Funktionen deklariert hast und so funktioniert.


    Definiere ihn einfach global, beispielsweise mit:


    new string[255];
    ...und leg dann den Wert des String in Deinen Funktionen fest.


    Der Rest funktioniert schon, keine Angst.

  • Nur mal so, ich weis schon wie das funktioniert ^^, ich hab das auch schon länger so, nur wollte ich jetzt mal fragen, weil ich keine Lust habe, wenn ich ein paar tausend Zeilen habe das ganze Skript umzuschreiben.


  • Auch wenn Sonic heute mal etwas später antworte,
    hat er natürlich wieder völlig Recht.
    :D

    Und alles was Du uns nicht glaubst, probierst Du einfach aus.
    :thumbup:
    Editiere dazu nicht Dein ganzes Script, sondern probiers bsp. an einem Filterscript aus.
    Nur so nebenbei als kleiner Tipp.