За последние 24 часа нас посетили 32915 программистов и 1756 роботов. Сейчас ищут 824 программиста ...

каэс

Тема в разделе "Прочие вопросы по PHP", создана пользователем siiXth, 23 ноя 2010.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    делаю кс мониторинг

    PHP:
    1. <?
    2. function playersInfo($server) {
    3.     list($ip,$port) = explode(":", $server);
    4.     $array = array();
    5.     $fp = @fsockopen('udp://'.$ip, $port);
    6.     if($fp) {
    7.         stream_set_timeout($fp, 2);
    8.         $command = pack("V", -1) . 'W';
    9.         fwrite($fp, $command, strlen($command));
    10.         $temp = fread($fp, 5);
    11.         $lo = (ord($temp[1]) << 8) | ord($temp[0]);
    12.         $hi = (ord($temp[3]) << 8) | ord($temp[2]);
    13.         $data = "\xFF\xFF\xFF\xFF\x55".pack("V", ($hi << 16) | $lo);
    14.         fwrite($fp, $data);
    15.         $temp = fread($fp, 4);
    16.         $status = socket_get_status($fp);
    17.         if($status['unread_bytes']>0) {
    18.             echo $status['unread_bytes'];
    19.             $temp = fread($fp, $status['unread_bytes']);
    20.             while(strlen($temp) > 0) {
    21.                 $player['name'] = getString($temp);
    22.                 $temp = substr($temp, 1);
    23.                 $lo = (ord($temp[1]) << 8) | ord($temp[0]);
    24.                 $hi = (ord($temp[2]) << 8) | ord($temp[3]);
    25.                 $player['kills'] = ($hi << 16) | $lo;
    26.                 $temp = substr($temp, 4);
    27.                 $f = @unpack("f1float", $temp);
    28.                 $temp = substr($temp, 4);
    29.                 $player['time'] = gmdate("H:i:s", (int)$f['float']);
    30.                 $array[] = $player;
    31.             }
    32.             usort($array, "sortByKills");
    33.         }
    34.     }
    35.     return $array;
    36. }
    37. $status=playersInfo("123.4.56.78:27015");
    38. print_r($status);
    39. ?>
    выводит какой-то бред

    PHP:
    1. 5Array ( [0] => Array ( [name] => A‘јH [kills] => 0 [time] => 00:00:00 ) )
    что такое A‘јH , не отрезаю , должно быть написано siixth...

    а да и забрал я скрипт на каком-то сайте :<
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    ответы в зависимости от сервера могут быть разными
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ясно , а поконкретней никак ?))
    да и другой вопрос , я не в курсе - можно ли получать чат игроков сервера каким-то образом ?
     
  4. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Можно, если накатаешь (или модернизируешь) плагин, который будет лог грузить в файл или базу.
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    доступа к серву нет =(
    просто думал может оно и чат отдаёт так же как статистику серва
    спасибо