SendClientMessage Fehler!

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
  • Ersteinmal möchte ich mich schonmal bei allen bedanken, die versuchen werden mir bei diesen Fehler zu helfen.
    Ich persönlich finde diesen Fehler einfach nur komisch und bescheuert aber ich habe echt klein Plan was ich da machen soll...


    Nun zur Beschreibung des Fehlers:
    Sobald ich eine Reihe von SendClientMessage Befehlen habe, setzt er sie im Spiel in einer falschen Reihenfolge.
    Zum Beispiel:

    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_GREEN, "|________________Polizei Deparment________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Dies ist das Polizei Deparment (PD). Solltest du in");
    SendClientMessage(playerid, COLOR_WHITE, "Schwierigkeiten sein, kannst du immer ins PD rennen.");
    SendClientMessage(playerid, COLOR_WHITE, "Die Beamten werden dir sofort helfen, sofern du ihnen");
    SendClientMessage(playerid, COLOR_WHITE, "kein Theaterstück vorspielst!");
    SendClientMessage(playerid, COLOR_WHITE, "WICHTIG!! Die Polizei dient nicht für Personenschutz.");
    SendClientMessage(playerid, COLOR_WHITE, "Solang du im PD bist werden sie dich beschützen.");
    SendClientMessage(playerid, COLOR_WHITE, "Doch sobald du draußen bist ist der Schutz vorbei.");
    SendClientMessage(playerid, COLOR_WHITE, "");

    So sieht es im Script aus und im Spiel sieht es wie folgt aus:
    -----------------------------------------------------------------------------
    WICHTIG!! Die Polizei dient nicht für Personenschutz.
    Solang du im PD bist werden sie dich beschützen.
    Doch sobald du draußen bist ist der Schutz vorbei.



    |________________Polizei Deparment________________|
    Dies ist das Polizei Deparment (PD). Solltest du in
    Schwierigkeiten sein, kannst du immer ins PD rennen.
    Die Beamten werden dir sofort helfen, sofern du ihnen
    kein Theaterstück vorspielst!
    -----------------------------------------------------------------------------


    Könnt ihr mir weiterhelfen? ;(


    EDIT: Das Problem ist nur auf Linux Servern. Auf Windows Servern geht alles einwandfrei...

  • Vielleicht hast du einfach einen Windows-Server heruntergeladen, und ihn auf einem Linux-Server verwendet?


    Übrigens, ein "" in einem String, also bei SendClientMessage geht garnicht, und bringt den Server meines Wissens nach zum Abstürzen. So wenn überhaupt:


    SendClientMessage(playerid, COLOR_WHITE, " ");
    SendClientMessage(playerid, COLOR_GREEN, "|________________Polizei Deparment________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Dies ist das Polizei Deparment (PD). Solltest du in");
    SendClientMessage(playerid, COLOR_WHITE, "Schwierigkeiten sein, kannst du immer ins PD rennen.");
    SendClientMessage(playerid, COLOR_WHITE, "Die Beamten werden dir sofort helfen, sofern du ihnen");
    SendClientMessage(playerid, COLOR_WHITE, "kein Theaterstück vorspielst!");
    SendClientMessage(playerid, COLOR_WHITE, "WICHTIG!! Die Polizei dient nicht für Personenschutz.");
    SendClientMessage(playerid, COLOR_WHITE, "Solang du im PD bist werden sie dich beschützen.");
    SendClientMessage(playerid, COLOR_WHITE, "Doch sobald du draußen bist ist der Schutz vorbei.");
    SendClientMessage(playerid, COLOR_WHITE, " ");

  • Gut, also unter Linux läuft schon die richtige Linux SA-MP Server software.
    Das mit den " " werde ich mal eben ausprobieren und berichte es dann gleich obs geht oder nicht.
    Der Server ist bis jetzt allerdings nie abgestürzt.


    EDIT: Ne, hat auch leider nichts gebracht.

  • Ich glaube nicht, dass das was an deinem Problem ändern wird, aber versuch es ^^

  • Zitat

    Ich vermute mal das der Server laggt (nicht merkbar aber funktions mäßig)


    Das könnte sein, da muss ich mal die nächsten Tage ausprobieren ob auf ein leistungsstärkeren Server der Gamemode einwandfrei läuft...


    Zitat

    die Funktion wo diese Nachricht gesendet werden soll wird zu oft aufgerufen und/oder ist zu groß ist...


    Das kann nicht sein, siehe die gesamte Funktion:
    public PlayerTutorialPlace2(playerid)
    {
    SetPlayerPos(playerid,1509.4689,-1670.6888,14.0469);
    SetPlayerCameraPos(playerid,1522.9073,-1675.6073,13.5469+10);
    SetPlayerCameraLookAt(playerid,1555.1964,-1675.6415,16.1953);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_GREEN, "|________________Polizei Deparment________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Dies ist das Polizei Deparment (PD). Solltest du in");
    SendClientMessage(playerid, COLOR_WHITE, "Schwierigkeiten sein, kannst du immer ins PD rennen.");
    SendClientMessage(playerid, COLOR_WHITE, "Die Beamten werden dir sofort helfen, sofern du ihnen");
    SendClientMessage(playerid, COLOR_WHITE, "kein Theaterstück vorspielst!");
    SendClientMessage(playerid, COLOR_WHITE, "WICHTIG!! Die Polizei dient nicht für Personenschutz.");
    SendClientMessage(playerid, COLOR_WHITE, "Solang du im PD bist werden sie dich beschützen.");
    SendClientMessage(playerid, COLOR_WHITE, "Doch sobald du draußen bist ist der Schutz vorbei.");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SetTimerEx("PlayerTutorialPlace3", 22000, 0, "d", playerid);
    return 1;
    }

  • Lad das Script auf deinem Homeserver hoch, und teste es dort, wenn es da geht, wird es wohl an dem Laggen liegen.

  • Naja, also ich habe das so bereits getestet, der ist allerdings Windows und viele meinten das Windows und Linux sehr unterschiedlich mit SA-MP arbeiten.
    Daher denke ich, ich kann das so nicht testen. Ich frag einfach ein Freund von mir, der hat ein viel leistungsstärkeren Linux Server.
    Ich denke wenn da der Fehler auch ist, muss es an was anderen liegen.


    EDIT: Das Problem ist ja nicht, dass die Nachrichten verteilt kommen. Sie kommen in einer komplett anderen Reihenfolge...

  • genau ^^ probier mal:


    SendClientMessage(playerid, COLOR_WHITE, " ");
    SendClientMessage(playerid, COLOR_GREEN, "|________________Polizei Deparment________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Dies ist das Polizei Deparment (PD). Solltest du in Schwierigkeiten sein, kannst du immer ins PD rennen.");
    SendClientMessage(playerid, COLOR_WHITE, "Die Beamten werden dir sofort helfen, sofern du ihnen kein Theaterstück vorspielst!");
    SendClientMessage(playerid, COLOR_WHITE, "WICHTIG!! Die Polizei dient nicht für Personenschutz. Solang du im PD bist werden sie dich beschützen.");
    SendClientMessage(playerid, COLOR_WHITE, "Doch sobald du draußen bist ist der Schutz vorbei.");
    SendClientMessage(playerid, COLOR_WHITE, " ");


    wenn das nicht klappt vllt noch kürzer


  • Kann nicht daran liegen, denn der Fehler tritt nur auf mein getesteten Linux Server auf.
    Wenn ich von mein PC aus ein Windows Server hoste, funktioniert alles normal (Auch mit vielen Zeilen).


    -------------------------------------------------------------


    Weitere Tipps zur Problembehebung sind bei mir sehr willkommen! :)


    EDIT: Kann mir jemand einige Includes geben, vllt. habe ich eine andere Version gedownloadet ?
    Ich benötige: utils und dini

  • Zitat

    Google nach Dini fragen hätt auch gereicht.
    <dini>


    Das gleiche bei utils


    Du bist lustig, was glaubst du woher ich die Includes habe?
    Es gibt nur komischerweise jede Datei in 10-20 unterschiedlichen Größen, daher denke ich das in allen Dateien ein etwas anderer Inhalt drin steht...
    Habe mir auch gerade von anderen Seiten die Includes gedownloadet, die waren dort wiederrum größer aber gebracht hat es nichts! :(

  • Hätte sonst noch jemand eine Idee?
    Also es kann nicht mit lags oder sowas in der Art zusammenhängen.


    -->
    Ich habe es erst auf ein Linux VServer getestet und dort kam der Fehler.
    Dann habe ich es auf mein eigenen Windows Rechner getestet, dort lief es einwandfrei.
    Als letztes habe ich es auf ein Linux Root-Server getestet 4GB Ram, 2x 2,8Ghz, 100 m/bit Anbindung und dort war der Fehler wieder vorhanden.
    -->


    Es muss also mit Linux und Windows zusammenhängen.
    Könnte es vllt. an Debian liegen, dass irgendwas nicht ordnungsgemäß installiert/konfiguriert ist?
    Oder kann es am Zubehör des SA-MP Servers liegen, dass dort irgendetwas nicht ganz kompatibel mit Linux ist?

  • Native SAMP Funktionen laufen auf allen Betriebsystemen gleich gut/schlecht,
    lediglich Plugins sind vom OS abhängig.


    Sehe keinen Fehler, außer den "" Nachrichten...
    Mach einfach nach jeder Nachricht ein print, und guck, obs abgerufen wird

  • es hat funktioniert dort kommt sogar alles in richtiger Reihenfolge währenddessen im Spiel nach wie vor die Reihenfolge vertauscht ist...
    Irgendwie verstehe ich diesen Fehler nicht aber er ist ja da...
    Als Includes habe ich diese:


    #include <a_samp>
    #include <a_npc>
    #include <utils>
    #include <dini>
    #include <Obj_Streamer>
    #include <G_ObjectsRot>


    Fehlen da vllt. noch welche oder sollte ich davon welche entfernen?
    Oder hat sonst noch jemand irgendwelche Tipps oder kennt vllt. sogar das Problem? :D Würde mich echt freuen! :thumbup:

  • Versuch es mal mit nem string^^.

    new string[8];


    format(string[0],128," ");
    format(string[1],128,"|________________Polizei Deparment________________|");
    format(string[2],128,"Dies ist das Polizei Deparment (PD). Solltest du in Schwierigkeiten sein, kannst du immer ins PD rennen.");
    format(string[3],128,"Die Beamten werden dir sofort helfen, sofern du ihnen kein Theaterstück vorspielst!");
    format(string[4],128,"WICHTIG!! Die Polizei dient nicht für Personenschutz. Solang du im PD bist werden sie dich beschützen.");
    format(string[5],128,"Doch sobald du draußen bist ist der Schutz vorbei.");
    format(string[6],128," ");
    format(string[7],128,"%s\n%s%s\n%s\n%s\n%s\n%s",string[0],string[1],string[2],string[3],string[4],string[5],string[6]);
    SendClientMessage(playerid,COLOR_GREEN,string);


    Kann fehler enthalten!
    Ungetestet!