Call of Duty Maprotation

2004-10-14 22:44 von Kelli (0 Kommentare)

Bei Medal of Honor gab es über den Gamespy Port auch Informationen über die Maprotattion.

Das wird bei Call of Duty leider nicht mehr unterstüzt.

Wie man mit ein wenig PHP und viel Stümperei doch an die Daten kommt erklärt dieser Artikel:

Die Idee ist das die Maprotation ja in der default_mp.cfg stehen muss.
Nur leider liegt die ja auf dem Gameserver.
Wer Game und Webserver auf der selben Maschine hat kan diesen Teil überspringen

Script zur Abholung der cfg über FTP:
$ftp_server = '127.0.0.0';
$remote_file = '/pfad/cod/main/default_mp.cfg';
$local_file = '/pfad/default_mp.cfg';
$ftp_user_name = 'user';
$ftp_user_pass = 'pass';
echo
"kopieren der logdatei $remote_file ...";
// set up basic connection
$conn_id = ftp_connect($ftp_server);

< /font>// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// try to copy $remote_file
if (ftp_get($conn_id, $local_file, $remote_file, FTP_BINARY)) {
echo
"$log_file copy successful ";
} else {
echo
"could not copy $remote_file ";
}

// close the connection
ftp_close($conn_id);

Das kopiert die Datei schonmal auf den Webserver soweit, so gut.
Jetzt müssen wir nur noch die maprotation auslesen:


$handle = fopen("./default_mp.cfg","r");
preg_match_all("#set sv_mapRotation "(.*)"#",fread($handle,filesize("./default_mp.cfg")),$map_cycle);

Damit haben wir die Zeile maprotation

preg_match_all("#map (S*)#",$map_cycle[1][0],$match_rotation);
foreach (
$match_rotation[0] as $v){
echo
"$v";
}
damit haben wir die einzelnen Maps aus dem Array einzeln in $v


Jetzt noch ansehlich presentieren, vielleicht noch eine wenn Standard dann Farbe 1 ansonsten Farbe 2 Schleife rein, das ftp abhol script Passwortschützen über eine htaccess Datei, Auf dem Gameserver einen cronjob mit
crontab -e
*/20 * * * * lynx --source -auth=id:pass http://host/pfad_zum_ftp_script > /dev/null
einrichten, und schon ist die Maprotation public für alle und wird alle 20 Minuten neu eingelesen .
Wer noch eine elegantere Lösung weiß - Nur her damit

Zurück