| Autor |
Beitrag |
superchatti
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Fr 07.11.03 23:19
Ich würde gerne den Ping von einem BF server ermitteln und Wenn man connect sagt darauf connecten wie mache ich sowas?
_________________ mfG Superchatti
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Sa 08.11.03 14:40
ping dürfte ja kein problem sein... die IP des servers wirst du ja kennen.... schwieriger wirds beim connecten... da brauchst du das protokoll, das BF da verwednet. und wenn das net öffentlich is, gehts nur durch reversed engineering... das wird aber heftig, sag ich dir gleich
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
superchatti 
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Sa 08.11.03 14:48
wie ermittle ich den Ping denn?
_________________ mfG Superchatti
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Sa 08.11.03 14:53
guck dir mal die Indy Kompos an, da is glaub was dabei.. oder die ICS Kompos ( www.overbyte.be )
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Currywurst
      
Beiträge: 50
Win XP Pro
D3 Pro, D5 Std, D6 Pers
|
Verfasst: Sa 08.11.03 18:37
zum joinen natürlich einfach die bf1942.exe mit parameter starten, zb. BF1942.exe +joinServer 217.160.178.129:14567 +restart 1
aber weisst du wie man die server liste vom gamespymaster bekommt??? das scheint wohl nich öffentlich zu sein, irgendein key muss da in der kommunikation mit dem gamespy master ausgetauscht werden, weiss zufällig jemand mehr dazu?
|
|
superchatti 
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Di 11.11.03 18:18
stimmen diese angegeben Parameter?
_________________ mfG Superchatti
|
|
Currywurst
      
Beiträge: 50
Win XP Pro
D3 Pro, D5 Std, D6 Pers
|
Verfasst: Di 11.11.03 18:32
was meinst du mit stimmen?, ist halt ein beispiel, 217.160.178.129 ist die ip und 14567 der port des servers, hab ich beides auch so getestet und ging
|
|
superchatti 
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Di 11.11.03 19:45
weißt du denn auch wie ich den Ping ermittle?
_________________ mfG Superchatti
|
|
Currywurst
      
Beiträge: 50
Win XP Pro
D3 Pro, D5 Std, D6 Pers
|
Verfasst: Mi 12.11.03 07:56
zum theme pingen solltest du eigentlich in der (google) suche reichlich finden, mein tipp, nimm indy und schau in den demos www.indyproject.org/download/Indy9.html
aber woher bekommst du denn die server ip?, bekommste eine liste der ganzen server?, wenn ja woher??, wie gesagt, bin sehr interessiert daran wie man an eine battlefield server liste kommt 
|
|
lemming
      
Beiträge: 470
Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
|
Verfasst: Mi 12.11.03 09:47
superchatti. Das was du pingen meinst glaube ich ist nicht das was du wirklich willst. Du willst doch schauen ob der BF Server auf einem rechner irgendwo im Internet gerade läuft und am besten noch ob gerade ein Platz darauf frei ist.
Das kennen wir ja alle von half-Life. Bei Half-Life war es sehr einfach, da man RCON hatte. Das Urgestein aus Quake 1 ff..
Bei Battelefield verhält es sich ähnlich. Da solltest du mal nach einem SDK für Modder ausschau halten. Darin wird meistens erklärt wie man auch die Console des Servers fernsteuert oder wie z.B. GameSpy den Status abfrägt.
Ich kann dir gern dabei helfen, die Infos musst allerdings du auftreiben. Dafür hab ich keine Zeit.
|
|
Currywurst
      
Beiträge: 50
Win XP Pro
D3 Pro, D5 Std, D6 Pers
|
Verfasst: Mi 12.11.03 10:40
also ich habe grade mal ein bissel gegoogelt, hier das forum von kquery www.kquery.com/forum...ndex.php?showforum=7 dort hat jemand selbiges gefragt, und es ist ein beispiel dabei, allerdings in c#
www.kquery.com/forum...ex.php?showtopic=495
meine frage wurde dort auch beantwortet, die serverliste ist nich public  sch** gamespy (und für ASE gibs nen extra master, der natürlich aber auch nich öffentlich ist)
|
|
superchatti 
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Mi 12.11.03 18:54
sanke das ihr mir bis jetzt geholfen habt.
Also is ja schön und gut mit dem C# Code...
Aber war bringt er mir in C#?
Danke für die ganzen Antworten
_________________ mfG Superchatti
|
|
Currywurst
      
Beiträge: 50
Win XP Pro
D3 Pro, D5 Std, D6 Pers
|
Verfasst: Do 13.11.03 08:05
| superchatti hat folgendes geschrieben: | | Aber war bringt er mir in C#? |
sorry für den spruch, aber man könnte es mit denken versuchen!
ich hab genau wie du keine ahnung von c#, mit indy und udp hab ich auch nie wirklich was gemacht, aber nach harten 3 minuten habe ich erkannt das man lediglich ein udp paket mit dem inhalt '\\info\\' an den server (seinem query port) schicken muss, und dann kommen die daten zurück...
das wesentliche in stolzen zwei zeilen:
Delphi-Quelltext 1: 2: 3:
| IdUDPClient1.Send('\\info\\'); ShowMessage(IdUDPClient1.ReceiveString(-1)); |
Moderiert von raziel: Code- durch Delphi-Tags ersetzt
|
|
superchatti 
      
Beiträge: 296
Win XP, Red Hat Linux 7.3
Delphi 6 PE
|
Verfasst: Do 13.11.03 16:43
also...
Ich habe das gemacht, aber irgendwie hängt sich dann das ganze Programm weg!
_________________ mfG Superchatti
|
|
Obi-Wan
Hält's aus hier
Beiträge: 9
D2005 Pers
|
Verfasst: Sa 22.04.06 16:57
Sorry das ich den Thread ausgrabe aber ich fänd es unnütz einen neuen dafür aufzumachen. Ich habe das hier so gemacht wie beschrieben, allerdings mit Battlefield 2 und es funzt auch wunderbar, wenn man nur die serverstats haben will...
Denn der Server scheint mehrere UDP Packets zu schicken (max 1400 bytes wenn ich mich nicht irre). Wenn ich das hier mache:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| udp.Active := true; udp.Host := '81.3.59.98'; udp.Port := 31531; udp.Send('\status\'); udp.ReceiveBuffer() status := udp.ReceiveString(1000); udp.Active := false; |
bekomme ich zwar einen string zurück mit den serverinfos, jedoch sind hinten dran noch die spielerinfos und ca. bei spieler 20/21 sind die abgeschnitten. LAnge rede kurzer sinn, wie bekomme ich es bei dem tidudpclient hin das der die packets hintereinander ausliest und zusammenfügt? Bin jetzt schon seit 2 stunden am suchen (delphi-forum, delphi-source, delphi-praxis, google, ...) aber ich finde einfach nichts.
Wäre schön wenn da einer was wüßte, stehe echt auf dem schlauch
MfG
Moderiert von raziel: Code- durch Delphi-Tags ersetzt
|
|