SwissError
Grünschnabel
Guten Morgen!
Ich bin auf dem weg ein Serverqueryscript für HL2 Basierte games zu schreiben (HL1 hatte isch schon, war nicht schwer).
Bevor ich das höre wie: Das wurde schon xxx mal gepostet. Jein! Über das Thema schon, hab ich auch alles schön gelesen, aber nie wurde das wort challenge nr. in die Tastatur getippt.
Nun bei HL2 bin ich soweit dass ich einfache Informationen auslesen kann. Jedoch hänge ich bei den Rules und den Playerlisten. Und das nicht wegen des auswerten der daten, sondern eher am senden der "<4 byte challenge number>" (wie es im sdk beschrieben ist).
Die Challengenummer zo holen (auch per empfangen vom server). hab ich auch geschaft (ist sogar 4 byte )
Nun aber wenn ich diese direkt an den nächsten string hänge gibt es probleme...
Hier der Code um die Challange nr. zu empfangen und der code den ich versuche um die challange nr. mit zu schicken.
Hier findet man noch die offizielle erklärung wie man das macht seitens Valve:
http://www.valve-erc.com/srcsdk/Code/Networking/serverqueries.html
Ich bin auf dem weg ein Serverqueryscript für HL2 Basierte games zu schreiben (HL1 hatte isch schon, war nicht schwer).
Bevor ich das höre wie: Das wurde schon xxx mal gepostet. Jein! Über das Thema schon, hab ich auch alles schön gelesen, aber nie wurde das wort challenge nr. in die Tastatur getippt.
Nun bei HL2 bin ich soweit dass ich einfache Informationen auslesen kann. Jedoch hänge ich bei den Rules und den Playerlisten. Und das nicht wegen des auswerten der daten, sondern eher am senden der "<4 byte challenge number>" (wie es im sdk beschrieben ist).
Die Challengenummer zo holen (auch per empfangen vom server). hab ich auch geschaft (ist sogar 4 byte )
Nun aber wenn ich diese direkt an den nächsten string hänge gibt es probleme...
Hier der Code um die Challange nr. zu empfangen und der code den ich versuche um die challange nr. mit zu schicken.
Code:
// String welche man dem Server schickt
$so_qry = "\xFF\xFF\xFF\xFF\x57";
// Senden des Strings
if(!fwrite($fp, $so_qry)) {
echo "<br><br>ERROR: Could NOT write data to server!<br><br>";
}
// Daten abholen und speichern
unset($data);
while ($buffer = fgets($fp,4096)) {
$data.= $buffer;
}
$i = 5;
$server['challenge']['type'] = ord($data{$i++});
$server['challenge']['number'] = ord($data{$i++}).ord($data{$i++}).ord($data{$i++}).ord($data{$i++});
/*
for($p=0;$p<8;$p=$p+2) {
$chalnr .= dechex(substr($server['challenge']['number'],$p,2));
}
*/
$chalnr = $server['challenge']['number'];
echo "test: ".$chalnr."<br>";
// String welche man dem Server schickt
$so_qry = "\xFF\xFF\xFF\xFF\x55".$chalnr;
echo $so_qry;
// Senden des Strings
if(!fwrite($fp, $so_qry)) {
echo "<br><br>ERROR: Could NOT write data to server!<br><br>";
}
// Daten abholen und speichern
unset($data);
while ($buffer = fgets($fp,4096)) {
$data.= $buffer;
}
$i = 5;
$server['playerlist']['count'] = ord($data{$i++});
Hier findet man noch die offizielle erklärung wie man das macht seitens Valve:
http://www.valve-erc.com/srcsdk/Code/Networking/serverqueries.html
Zuletzt bearbeitet: