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; }