Thema: Delphi Query an Gameserver

Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#44

AW: Query an Gameserver

  Alt 24. Feb 2015, 13:31
Du solltest dir mal TMemoryStream oder TByteStream anschauen.
Das was du da machst kann man damit um einiges übersichtlicher/besser/einfacher lösen.

Deine ganzen Hexstrings sind total unnötig
ja das hat super funktioniert
Schön, dann ist ja gut (aber was ist damit konkret gemeint?
Schlussendlich benötige ich doch noch eine bessere Variante um die Einzelnen Stellen der Antwort auszulesen. So, wie man die Informationen von einem Gameserver per Query abfragen kann, kann man auch die globale serverliste beim Masterserver per Query abfragen. dieses Script habe ich ebenfalls in PHP vorliegen.
Hier ein Link zum Script das die Serverliste anzeigt (Laden dauert etwas):
http://last-templers.de/a2epoch/serverlist.php
Nicht alle Server in der Liste funktionieren.

Problem besteht in den letzten Bytes, die angeben ob der Server Passwortgeschützt ist und ob VAC aktiviert ist.

Code:
Bei Servern OHNE Passwort (647700;00;) funktioniert mein Code.
Bei Servern MIT Passwort (64770100;) funktioniert mein code natürlich nicht, da die letzten Strings des Array dann verschoben werden.
Ich kann das auch mit einer IF ELSE Abfrage lösen, aber irgendwie scheint mir das ganze ziemlich "dreckig" programmiert.
Die einen mögen jetzt sagen: "Funktioniert doch, lass es so" .
Das was ich bisher von Deinem Programm gesehen habe, war nun wahrhaftig nicht als positives Codierungsbeispiel zu gebrauchen

Andererseits verstehe ich die Funktion von Sir Rufo nicht so ganz. Ehrlich gesagt garnicht.

Klar ist schon, dass er nur den Header ausliest und überprüft ob die Antwort Gesplittet ist oder nicht. Ich stocke schon an dem punkt, wie ich die ersten 4 Strings, die ja variable Längen haben, auslesen oder definieren soll.
Man könnte z.B. ein pAnsiChar auf das erste Zeichen eines String zeigen lassen und mit Hilfe dieses Pointers den String auslesen.
Aber so lange wir nicht wissen wie Dein Programm jetzt aussieht, ist das eigentlich nur unverbindliches Geblubber.

[OT]
Bevor man sich an's programmieren macht, ist es kein Fehler zunächst einmal die zu verarbeitenden Daten zu analysieren, und diese Datenstruktur zu beschreiben. Oft ergeben sich dan ein oder zwei (Record-)Definitionen mit denen dann auf einmal alles ganz einfach ist. Ein kleines Beispiel hierzu ist #32.
[/OT]


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat