Example #1
0
 function getint16(&$data)
 {
     if (empty($data)) {
         return "";
     }
     $lower = parse::getbyte($data);
     $higher = parse::getbyte($data);
     return $higher << 8 | $lower;
 }
 function player()
 {
     $this->getchallenge();
     $response = $this->communicate(A2S_PLAYER . $this->challenge);
     $control_byte = parse::getchar($response);
     //DEBUG	echo "control byte for players is: {$control_byte}. ";
     if ($control_byte != S2A_PLAYER) {
         return false;
     }
     $result = array();
     $count = parse::getbyte($response);
     for ($i = 0; $i < $count; $i++) {
         if (empty($response)) {
             continue;
         }
         $index = parse::getbyte($response);
         $name = parse::getstring($response);
         $frags = parse::getint32($response);
         $rawtime = unpack("Vstr", substr($response, 0, 4));
         $time = parse::getfloat32($response);
         $result[] = array("index" => $index, "name" => $name, "frags" => $frags, "rawtime" => sprintf("%b", $rawtime['str']), "time" => $time != -1 ? date("H:i:s", mktime(0, 0, $time)) : "BOT-Player");
     }
     //DEBUG	printr($result,"returning from serverspy->player() with");
     return $result;
 }