Chat_Bug

  • Tach Jungens,

    wollte den Bug eigentlich schon öfter melden, da dieser schon einige Zeit existiert, habe es aber immer vergessen.

    Es dreht sich um folgendes, wenn man im Chat mit den Pfeiltasten das schon mal geschriebene wieder anfordert und verändert bekommt man nur das was nicht verändert ist.

    Beispiel:

    Ich führe über Funk eine Konversation mit einem FC weil ich (hier beliebiges Beispiel einfügen) will.

    Ich funke:

    *Magnus an FC* Erbitte Hangar 2

    *FC an Magnus* Wofür?

    Hier rufe ich mit den Pfeiltasten den vorherigen Funk auf, also *Magnus an FC* Erbitte Hangar 2 und lösche "Erbitte Hangar 2" mit Backspace und füge jetzt den neuen Text Training ein -> *Magnus an FC* Training.

    Wenn ich den Text jetzt abschicke erscheint im Chat nur:

    MJR WP 666666 Magnus: [FUNK] *Magnus an FC*

    Ich hoffe ich konnte das Problem ausreichend beschreiben, wenn ich antworten will muss ich komplett alles neu tippen.

    Gruß

    Brend

  • Kann ich so auch nur bestätigen.

    Ist mir auch des Öfteren passiert.

    Spiele ich irgendeinen RP Modus von EGM: Ja, Arma 3 RP

    Möchte ich irgendwann mal wieder spielen: Wenn der richtige RP Modus da ist: Ja.

    Bin ich auf dem TS3: Ja.

    Bin ich Alex: Ja.

    Bin ich eine simple Bitch: Vielleicht.

    Bin ich ein Mann: Dazu fehlen mir die Eier.

    Bin ich eine Frau: Dazu fehlen mir die Eierstöcke.

    Bin ich zu ehrlich: Ja.

    Bin ich ein Lügner: Ja.

    Habe ich gelogen: Eventuell.

    Habe ich eine Zukunft: Seh ich so aus?
    Widerspricht sich so ziemlich alles in meiner Signatur: Klar!

    Liebe Grüße, Alex !

  • ihr müsst die unsichtbaren Zeichen CR und LF löschen, dafür geht ihr direkt hinter euren Text und haltet kurz ENTF gedrückt.

    Das Problem ist, dass der Return Key mit kopiert wird, wenn man die Pfeiltasten-Funktion benutzt.

    P4sca1 Keine Ahnung, ob du an die Funktion ran kommst, oder die überladen kannst. Das ist auf jeden Fall ziemlich nerfig.

    Bis dahin versucht es über den oben genannten Weg.

  • Falls es jemanden näher interessiert: Ganz grundlegendes Prinzip in der Informatik:

    1 Zeichen = 1 Byte.

    Die untersten Werte sind speziell definierte Aktionen und nicht direkt Zeichen oder Buchstaben.

    0x0A und 0x0C sind die entsprechenden Byte, die für den Zeilenumbruch sorgen.

    Wenn ihr Enter/Return drückt, werden genau diese Bytes an die Zeichenkette angehängt.

    Das heißt für das Textfenster so viel wie: Hier ist die Nachricht zu Ende.

    Hier der Bug:

    Ihr tippt "*ich an du* Hallo!" ein. Drückt dann return.

    Der Parser erhält den Bytecode für den String: "*ich an du* Hallo!" \0x0A \0x0C

    Nun holt ihr eure Nachricht zurück mit der Pfeiltaste und anstatt euch nur die sichtbaren Zeichen zu geben, kopiert die Funktion den gesammten Ausdruck inklusive des vorher gemachten Return-Drucks in die Chatzeile. Ihr fügt hinzu: "Hast du mal Zeit?"

    Ihr schreibt dann hinter dem CR LF und die Zeichenkette sieht wie folgt aus:

    "*ich an du* Hallo!" \0x0A \0x0C "Hast du mal Zeit?" \0x0A \0x0C

    Der Parser bekommt das, sieht das CR LF und denkt, die Nachricht ist zu Ende.

    Der Rest dahinter wird nicht weiter beachtet, der String wird terminiert.

    Wenn ihr die Del (<--)Taste benutzt, wird das CR LF ignoriert und die Zeichen davor gelöscht. Der Curser bleibt jedoch dahinter und wenn ihr tippt, tippt ihr hinter dem vorherigen Return-Tastendruck.


    Kleiner Crashkurs in Sachen Stringverarbeitung.


    Wie gesagt: Lösung dafür:

    Curser direkt hinter das letzte sichtbare Zeichen setzen (mit den Pfeiltasten <- ) und dann schreiben.

    2 Mal editiert, zuletzt von Blacky (20. Januar 2017 um 15:07)

  • Blacky in seinem Element :)

    Aber naja danke für den Tipp

    MFG
    Sloger

    Sloger obsiegt (wenn auch ein bisschen weniger als ich...) =D