1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function retrieveCODData($ip, $port) {
global $r, $x, $p_flags, $g_flags, $playerdat, $teamcnt, $teamscor;
$fp = fsockopen("udp://$ip", $port, $errno, $errstr, 1);
if (!$fp) {
return "-FAILED";
} else {
fwrite($fp, "\xFF\xFF\xFF\xFFgetstatus\n");
socket_set_timeout($fp, 2);
do {
$chr .= fgetc($fp);
$status = socket_get_status($fp);
} while ($status["unread_bytes"]);
$r = explode("\\", $chr);
//echo $chr;
$teamscor=0;
for ($i=0;$i<30;$i++) if ($r[$i]=="Call of Duty") $teamscor=1;
if ($teamscor==1) {
$game = "COD";
$x = array();
for ($i=0;$i<count($r);$i++) {
$z = $i+1;
$r[$i]=strtolower($r[$i]);
$x["$r[$i]"] = $r[$z];
}
$x["mod"]=substr($x["mod"],0,1);
$playerlist = substr($chr,strpos($chr,"\\mod\\")+6);
$i=0;
$teamcnt->blue = 0;
$teamcnt->red = 0;
$teamcnt->spec = 0;
if (strlen($playerlist)<2) $playerlist="";
while($playerlist <> "") {
$player1 = substr($playerlist,0,strpos($playerlist,"\"\n"));
$playerlist = substr($playerlist,strlen($player1)+2);
$playerdat[$i]->score = substr($player1,0,strpos($player1," "));
$player1=substr($player1,strlen($playerdat[$i]->score)+1);
$playerdat[$i]->ping=substr($player1,0,strpos($player1," "));
$player1=substr($player1,strlen($playerdat[$i]->ping)+2);
$playerdat[$i]->name = $player1;
$i++;
}
$x["numplayers"] = $i;
return "+OK";
}
}
} |
Partager