Page 1 of 1

PHP serverio info ir Dproto

Posted: 2015 Feb 17 19:52
by Caramba
Sveiki, siandien atsinaujinau dproto i naujausia versija.
Iskylo tokia nedidelia problema, sprendimo nezinau.
Pries tai buvo viskas ok kol neatnaujinau dproto , tinklapije rode.

Code: Select all

Players: 20/32Map: de_dust2

Code: Select all

Dabar rodo:Players: 20/32Map: cstrike
Tai va kaip padaryti kad viel rodytu zemelapi vietoj cstrike

Stai scriptas.

Code: Select all

<?phpfunction query_server($type,$ip,$port){  global $players;  global $map;  global $servername;  global $maxplayers;  global $bots;  global $success;   $success = 0;   $map = "0";  $players = "0";  $servername = "0";  $maxplayers = "0";  $bots = "0";   if ($type == "Counter Strike") //Source Query  {       $packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";           if(!$live_server = fsockopen("udp://".$ip,$port))      {      $output = "Neveikia";    }      else      {      fwrite($live_server, $packet);      socket_set_timeout($live_server,1,0);      $junk = fread($live_server,5);      $status = socket_get_status($live_server);      $do = 1;      $server_info= "";           while($do)      {        $str_1 = fread($live_server,1);        $server_info .= $str_1;        $status = socket_get_status($live_server);        if($status["unread_bytes"] == 0) {$do = 0;}      }      fclose($live_server);           if (strlen($server_info) > 0)      {           $success = 1;      $servername = getnextstring($server_info);      $map = getnextstring($server_info);      $junk = getnextstring($server_info);      $junk = getnextstring($server_info);      $junk = getnextbytevalue($server_info);      $junk = getnextbytevalue($server_info);      $players = getnextbytevalue($server_info);      $maxplayers = getnextbytevalue($server_info);      $bots = getnextbytevalue($server_info);                      if ($players < $maxplayers)      {       $output = "Veikia";      }      else      {        $output = "Blia servas pilnas";      }           }      else      {        $output = "Neveikia";      }    }       }  elseif ($type == "TeamSpeak")// Teamspeak Query  {     if (!$fp = @fsockopen($ip,$port))   {     $output = "Neveikia";     }   else   {     socket_set_timeout($fp,1,0);     $data = fread($fp,4);       fputs($fp, "quit");     fclose($fp);       if ($data == "[TS]")        {           $output = "Veikia" ;      }        else        {           $output = "Klaida";        }    }      }     elseif ($type == "CounterStrike 1.6")     {       $packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";             if(!$live_server = fsockopen("udp://".$ip,$port))      {      $output = "Neveikia";    }      else      {      fwrite($live_server, $packet);      socket_set_timeout($live_server,1,0);      $junk = fread($live_server,5);      $status = socket_get_status($live_server);      $do = 1;      $server_info= "";           while($do)      {        $str_1 = fread($live_server,1);        $server_info .= $str_1;        $status = socket_get_status($live_server);        if($status["unread_bytes"] == 0) {$do = 0;}      }      fclose($live_server);           if (strlen($server_info) > 0)      {        $success = 1;      $junk = getnextstring($server_info);      $servername = getnextstring($server_info);      $map = getnextstring($server_info);      $junk = getnextstring($server_info);      $junk = getnextstring($server_info);      $players = getnextbytevalue($server_info);      $maxplayers = getnextbytevalue($server_info);           if ($players < $maxplayers)      {       $output = "Veikia";      }      else      {        $output = "Serveris pilnas";      }           }      else      {        $output = "Neveikia";      }    }        }       return $output;}function getnextstring(&$data)    {       $temp="";       $counter=0;       while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];       $data=substr($data,strlen($temp)+1);       return $temp;   }  function getnextbytevalue(&$data)   {     $temp=ord($data[0]);     $data=substr($data,1);     return $temp;   } print query_server("CounterStrike 1.6", "ipadresas", "27015");echo "Players: $players/$maxplayers";echo "Map: $map ";?>

Re: PHP serverio info ir Dproto

Posted: 2015 Feb 17 20:19
by DYaGesS
dproto galimi 3 atvaizdavimo būdai, pasiskaitinėk dproto.cfg

Re: PHP serverio info ir Dproto

Posted: 2015 Feb 17 21:17
by Caramba
Dekui :liux: