bitmap[$p_x][$p_y]; } public function Y($packet=array(), $method=1) { if(!isset($packet['j'])) { return 1; } $Data = @file_get_contents('http://xat.com/web_gear/chat/auth.php?i='.@$packet['i'].'&j='.@$packet['j'].'&k='.@$packet['k'].'&s='.@$packet['s'].'&t='.@$packet['t']); if(!$Data || @$Data=='') { return 1; } $code = 0; $Data = @gzuncompress(substr($Data, 8)); switch($method) { case 1: $code = ($code << 1) | ord($Data[411]); $code = ($code << 1) | ord($Data[424]); $code = ($code << 1) | ord($Data[437]); $code = ($code << 1) | ord($Data[450]); $code = ($code << 1) | ord($Data[463]); $code = ($code << 1) | ord($Data[476]); $code = ($code << 1) | ord($Data[489]); $code = ($code << 1) | ord($Data[502]); $code = ($code << 1) | ord($Data[515]); $code = ($code << 1) | ord($Data[528]); $code = ($code << 1) | ord($Data[541]); $code = ($code << 1) | ord($Data[554]); $code = ($code << 1) | ord($Data[567]); $code = ($code << 1) | ord($Data[580]); $code = ($code << 1) | ord($Data[593]); $code = ($code << 1) | ord($Data[606]); $code = ($code << 1) | ord($Data[619]); $code = ($code << 1) | ord($Data[632]); $code = ($code << 1) | ord($Data[645]); $code = ($code << 1) | ord($Data[658]); $code = ($code << 1) | ord($Data[671]); $code = ($code << 1) | ord($Data[684]); $code = ($code << 1) | ord($Data[697]); $code = ($code << 1) | ord($Data[710]); $code = ($code << 1) | ord($Data[723]); $code = ($code << 1) | ord($Data[736]); $code = ($code << 1) | ord($Data[749]); $code = ($code << 1) | ord($Data[762]); $code = ($code << 1) | ord($Data[775]); $code = ($code << 1) | ord($Data[788]); $code = ($code << 1) | ord($Data[801]); break; case 2: default: for($i=0; $i<31; $i++) { $code = ($code << 1) | ord($Data[0x019B+$i*0x000D]); } break; } return $code; } public function __construct(&$parent) { $this->parent = $parent; } function update(){ $XML = file_get_contents('http://xat.com/web_gear/chat/ip.htm?init'.time()); $p = xml_parser_create(); xml_parse_into_struct($p, $XML, $vals, $index); xml_parser_free($p); $this->xArray = $vals[0]['attributes']; $this->xSock = explode(',',$this->xArray['XSOCK']); $this->xSock2 = explode(',',$this->xArray['XSOCK2']); $this->fwd = $this->xArray['FWD']; } public function GetDom($arg1){ if ($arg1 == 8) { return (0); } return ((($arg1)<8) ? 3 : (($arg1 & 96) >> 5)); } public function setIps() { $this->update(); $local2 = array(); $local3 = 0; $local1 = 0; while ($local1 < $this->xservers) { $local2 = array(); $local3 = 0; while ($local3 < $this->xips) { $v = (($local1 * $this->xips) + $local3); if ($this->SockStatus[$v] != 0) { array_push($local2, $this->xSock[(($local1 * $this->xips) + $local3)]); } $local3++; } if (count($local2) > 0) { $this->Sock[$local1] = $local2[round('0.'.rand(0,3) * count($local2))]; } $local1++; } } public function getIP($ChatID=1) { return $this->Sock[$this->GetDom($ChatID)]; } public function GetPort($arg1) { if ((integer)$arg1 == 8) { return (10000); } return ((((integer)$arg1)<8) ? ((10000 - 1) + (integer)$arg1) : ((10000 + 7) + ((integer)$arg1 % 32))); } } ?>