1. GSManager
    1. Funktionen
    2. Unterstützte Spiele
    3. Neuigkeiten
    4. Statistiken
    5. Serverliste
  2. Lexikon
  3. Filebase
  4. Entwicklung
  5. Forum
    1. Dashboard
    2. Unerledigte Themen
  6. Web-Interface
  7. Artikel
  8. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Dateien
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. GSManager
  2. Mitglieder
  3. Bizzi

Beiträge von Bizzi

Das Projekt GSManager (vormals ManuAdminMod) wurde am 01.01.2020 eingestellt - diese Internetpräsenz bleibt verfügbar, die Software wird aber nicht länger gepflegt. Vielen Dank für eure Unterstützung in den mehr als zehn vergangenen Jahren!
  • RCON - frostbite3 header

    • Bizzi
    • 7. Juli 2014 um 19:11

    Da ich ohnehin gerade da am herumexperimentieren bin, hier eine mögliche Lösung:
    Das Bitwise kommt wohl nicht mit den 4stelligen unsigned integer klar.

    Wenn ich den (so ists jedenfalls in unserem Java-Backend gewesen) Header als Unsigned Int hole, scheints zu klappen:

    Code
    public static function DecodeHeader($data) {
        $value            = self::DecodeInt32($data);
        $sequence        = $value & 0x3FFFFFFF;
        $isFromServer    = ($value & 0x80000000) != 0;
        $isResponse        = ($value & 0x40000000) != 0;
    
    
    
    
        var_dump(array(
            'sequence'        => $sequence,
            'isFromServer'    => $isFromServer,
            'isResponse'    => $isResponse
        ));
    
    
    
    
        return array($isFromServer, $isResponse, $sequence);
    }
    Alles anzeigen

    Jedenfalls kommt die Sequence-ID nun korrekt durch und die Boolischen Werte werden auch beim response korrekt zurückgeworfen:

    Zitat

    Init 194.97.46.94_47200
    [0] login.plainText ******************
    [1] serverInfo
    [2] admin.eventsEnabled true
    Init 194.97.46.84_47200
    [0] login.plainText ******************
    [1] serverInfo
    [2] admin.eventsEnabled true
    [0] OK
    [0] OK
    [1] OK [ReCr] Mixed DM - Fast Respawn 0 32 SquadDeathMatch0 MP_Abandoned 0 2 0 0 true true false 38831 38822 194.97.46.84:25200 v1.894 | A1390 C2.343 true EU ams DE 0 IN_GAME
    [1] OK [ReCr] 24/7 Siege of Shanghai 2000 Tickets 0 64 ConquestLarge0 MP_Siege 1 2 2 2000 2000 0 true true false 44471 3125 194.97.46.94:25200 v1.894 | A1390 C2.343 true EU ams DE 0 IN_GAME
    [2] OK
    [2] OK
    [2686] punkBuster.onMessage 4Netplayers-PB Server: Player List: [Slot #] [GUID] [Address] [Status] [Power] [Auth Rate] [Recent SS] [O/S] [Name]

    Alles anzeigen

    Hier mal einen Auszug aus dem Java-Backend:

    Code
    int header        = (int) reader.readUnsignedInt();
    
    
    
    
    packet.setSequence(header & 0x3FFFFFFF);
    packet.setType((header & 0x80000000) != 0 ? Packet.PacketType.CLIENT : Packet.PacketType.SERVER);
    packet.setResponse((header & 0x40000000) != 0);
    
    
    
    
    int size        = (int) reader.readUnsignedInt();
    int wordcount    = (int) reader.readUnsignedInt();
    Alles anzeigen
  • RCON - frostbite3 header

    • Bizzi
    • 7. Juli 2014 um 18:42

    Halli hallo,

    ich bin damaliger Entwickler von gConsole.net - Ein auf Javabasierendes Backend für Gameserver.
    Ich bin zufällig auf euch gestoßen, da ich ein kleines Problem habe. Wie ihr setze ich derzeit privat ein Backend für meinen Clan um.

    Ich habe in der Source bei euch gesehen, dass wohl auch ihr (genauso wie ich) Probleme habt, mit den Response-Headers der einkommenden Packete.
    Die Pakete selbst kommen korrekt an, hier ist nur der Header anscheinend broken - Ich denke aber dass dies an PHP selbst liegt. Anscheinend kommt der resultierende Wert von unpack() nicht mit Bytewise-AND klar.

    Das selbe Problem hatte ich damals nicht in Java, sondern in Javascript - Hier hatte ich das Protokoll von frostbite3 komplett Clientseitig rekonstruiert gehabt. Ich weiß zwar nicht worin PHP da nun Probleme sieht, aber Javascript damals kannte keine wirklichen Datentypen und hier musste man ein wenig herumprobieren bis es dann geklappt hat.

    Wie ich sehe nutzt ihr die gleiche Quelle aus GitHub (https://github.com/lethak/frostbite-php-framework), denn hier besteht das selbe Problem und die Methoden sind nahezu Identisch. Ich hatte mich da nun auch bedient gehabt.

    Vielleicht können wir ja Gedanken austauschen :)

    Mfg
    Bizzi

  1. Mitarbeiter
  2. Datenschutzerklärung
  3. Nutzungsbedingungen
  4. Impressum
  5. Kontakt
Community-Software: WoltLab Suite™