[MINI FIXX] SEQUENCE_LOG ------[UNKNOWN] = Kick

10/23/2022 14:45 Endless.#1
Guten Tag zusammen :)

Habe gesehen, dass die Frage zu diesem syserr Eintrag in den meisten Fällen unbeantwortet blieb oder manche Anleitungen diesen Fehler doch nicht behoben haben. Ich habe durch mehrere Tests dann die Ursache gefunden.

Als erstes schauen wir mal in der game/src/input.cpp
folgende Zeile an:


Theoretisch ein fast unvermeidbares Ereignis, dass der Client manche Header nicht richtig verarbeitet.

Jedenfalls die Ursache dafür waren bislang 3 Dinge:

 
Nr.1 -> Map 1 Grundstücksverwalter. Sobald der Spieler in der Nähe ist.
Nr.2 -> Erlaubte Sonderzeichen im Namen des neuen erstellten Charakter.
Nr.3 -> Wenn eine zu hohe Zahl in den Log Tabellen gespeichert werden.
Auswirkung: Spieler werden vom Server getrennt / Client schließt sich unerwartet.

Wie bin ich darauf gekommen?

Beim 1. Fehler, war ist mir aufgefallen, dass ich diesen kürzlich, nachdem ich meine syserr gelöscht hatte, einen neuen Eintrag erhalten habe, als ich einen neuen Testcharakter erstellt habe. Natürlich level ich diesen auf Map1 und zack, habe ich nach der Urzeit bemerkt, dass ich mich da noch Map1 aufgehalten habe. Habe alle Bereiche abgelaufen und immer wieder, wo dieser Grundstücksverwalter Stand, hat sich die syserr plötzlich vergrößert.

Wer diesen Fehler beseitigen möchte, kann diese entweder auskommentieren
oder falls dieses System nicht benutzt wird, kann in der player.land Tabelle der DB jeder einzelne Verwalter in der Letzten Spalte alle ausschalten. Ansonsten weiss ich noch nicht genau, warum diese Verwalter diesen Fehler auslösen, ich nehme mal an, dass im Hintergrund ein Pseudogrundstück erstellt wird und der Client diesen wahrscheinlich nicht richtig verarbeitet.


Beim 2. Fehler habe ich die Sonderzeichen erlaubt und natürlich auch die Namen ausprobiert. Im Spiel selbst hatte dies keine negativen Auswirkungen, doch die syserr stapelte sich sogut wie jede paar Minuten und ich wusste nicht woher. Nach dem löschen der Logs, mit einem Charakter gespielt welche keine Sonderzeichen hatte, syserr war plötzlich leer, also muss man entweder mit diesem Fehler leben wenn diese erlaubt sein sollen oder diese leider verbieten.

Beim 3. Habe ich mir ausversehen zu viel Yang gegeben, und bei jedem Login war diese Meldung in der File. Nachdem ich diese money_log usw deaktiviert hatte, kam sie nicht. Aber dies zu vermeiden, sollte man nie die Yang Grenze überschreiten oder Zahlen speichern die den Maximal Datenwert überschreitet.


So.. Leider wären mit Garantie nicht alle Ursachen perfekt beseitigt, doch dieser Teil im Code sollte entfernt oder zumindest auskommentiert werden:

Code:
lpDesc->SetPhase(PHASE_CLOSE);
Diese Funktion führt zum unerwartetem Schließen des Spiels!

Und wem diese Meldung nervt, sollte diese:

Code:
sys_err("SEQUENCE %x mismatch 0x%x != 0x%x header %u", get_pointer(lpDesc), bSeq, bSeqReceived, bHeader);
und

Code:
sys_err("%s", buf);
auskommentieren.

Ich habe dies getestet und ich bekomme sehr sehr selten vielleicht mal ein Kick. Vor der Einstellung war es drastisch mehr, daher wollte ich dieses kleine Ding hier teilen, für den Fall, dass mehrere Leute dieses Problem haben. Ich kann nur nicht garantieren, dass nicht noch mehr Ursachen auftauchen, daher würde ich diese Meldung erst auskommentieren, wenn das gesamte Spiel auf legitimen Art gespielt werden kann und keine Einzige dieser Meldungen mehr ausspuckt.

Das wäre es auch wieder,


Mit freundlichen Grüßen, Endless :)
10/23/2022 17:03 x'Radon#2
Tut mir leid, ein Fix wäre es, wenn man die Ursache behebt. Das PHASE_CLOSE auszukommentieren, oder den sys_err Eintrag, ist alles, aber nicht mal annährend an einem Fix dran. Ich habe diese Probleme die du da beschreibst btw nicht, weder habe ich Client closes noch die syserr Einträge.
10/23/2022 17:46 Endless.#3
Quote:
Originally Posted by x'Radon View Post
Tut mir leid, ein Fix wäre es, wenn man die Ursache behebt. Das PHASE_CLOSE auszukommentieren, oder den sys_err Eintrag, ist alles, aber nicht mal annährend an einem Fix dran. Ich habe diese Probleme die du da beschreibst btw nicht, weder habe ich Client closes noch die syserr Einträge.
Da sich der Client deswegen nicht mehr von alleine schließt, was davor ja bei manchen Leuten öfter der Fall war, ist es zumindest schon ein kleiner Fixx. Aber gut, soll jeder selbst für sich entscheiden, ob dies das Problem tatsächlich fixxt oder nicht. Bei mir hat es das und daher hab ich es auch weitergegeben.

Ausserdem gibt es mittlweile zahlreiche Files bei denen dieses Problem noch vorhanden sein könnte, wenns bei dir nicht so ist, dann ist es natürlich toll, aber für die anderen, die es nicht wissen, könnte dies vielleicht von Nutzen sein.

Und Punkt 2 wäre ein fixx für diese Error Meldung, da der Datenwert in der DB überschritten wurde und man Anfangs nicht weiss, von wo der Fehler kommt. Damit wäre auch einige Zeit fürs Suchen erspart, wenn man es nicht wirklich am Anfang weiss.
10/24/2022 05:16 RauschGiftx3#4
Quote:
Originally Posted by x'Radon View Post
Tut mir leid, ein Fix wäre es, wenn man die Ursache behebt. Das PHASE_CLOSE auszukommentieren, oder den sys_err Eintrag, ist alles, aber nicht mal annährend an einem Fix dran. Ich habe diese Probleme die du da beschreibst btw nicht, weder habe ich Client closes noch die syserr Einträge.
habs mir auch gedacht :D aber ehrlich, ich wusste davor keineswegs das dieser grundstücks fuzzi diese error auslöst. ich hab mir mind. ne woche den kopf zerbrochen ob des nicht an meinen zuletzt eingebauten systemen oder quests gelegen hat.

klar wäre es ein richtiger fixx, wenn Endless noch rausfinden und posten würde, wie man den grundstücks fuzzi fixxt ohne ihn zu deaktivieren oder die meldung abzuschalten aber jetzt wissen wa wenigstens wo wir schonmal stehen und wonach man gucken muss. ich wäre niemals drauf gekommen bei mir ist das nämlich genau das gleiche.


ich würde die sonderzeichen generell verbieten da manche zeichen wie "*" oder "." oder "=" für bösartige angriffe wie z.b sql injection ausgenutzt werden kann. ausserdem wenn du eine query via quest ausführst kann des auch zu problemen führen, auch wenns cooler aussehen würde wenn man solche namen wie z.b "^.^" oder "=_=" dran setzen könnte, aber es hat nen grund warum diese geblockt wurden. soweit ich mich erinnern konnte gab es damals 1 zeichen auf m2 DE welchen man im namen verwenden konnte, glaub dieser hier "°".

zum thema yang hab ich selbst noch keine so meldung erhalten liegt aber auch daran das ich alle logs in meiner db bis auf quest log und boot log über die game deaktiviert habe. hab die yang rates und marktpreise auch so eingestellt man nicht einfach so kurz auf 2kkk kommten kann, man kriegt zwar schon yang zum verbessern usw aber bei mir is man bereits mit 50kk schon reich ^^