Получение списка игроков на PHP

Тема в разделе "Веб-технологии", создана пользователем Bandit228, 1 фев 2016.

  1. Bandit228

    Bandit228

    Сообщения:
    102
    Симпатии:
    10
    Хочу сделать вывод игроков, которые сейчас играют на сервере. Вот мой код мониторинга:
    PHP:
    <?php
    function source_query($ip){
        
    $cut explode(":"$ip);
        
    $HL2_address $cut[0];
        
    $HL2_port $cut[1];

        
    $HL2_command "\377\377\377\377TSource Engine Query\0";
       
        
    $HL2_socket fsockopen("udp://".$HL2_address$HL2_port$errno$errstr,3);
        
    fwrite($HL2_socket$HL2_command);
        
    $JunkHead fread($HL2_socket,4);
        
    $CheckStatus socket_get_status($HL2_socket);

        if(
    $CheckStatus["unread_bytes"] == 0)return 0;

        
    $do 1;
        while(
    $do){
            
    $str fread($HL2_socket,1);
            
    $HL2_stats.= $str;
            
    $status socket_get_status($HL2_socket);
            if(
    $status["unread_bytes"] == 0){
                   
    $do 0;
            }
        }
        
    fclose($HL2_socket);

        
    $x 0;
        while (
    $x <= strlen($HL2_stats)){
            
    $x++;
            
    $result.= substr($HL2_stats$x1);   
        }
       
        
    // ord ( string $string );
        
    $result str_split($result);
        
    $info['network'] = ord($result[0]);$char 1;
        while(
    ord($result[$char]) != "%00"){$info['name'] .= $result[$char];$char++;}$char++;
        while(
    ord($result[$char]) != "%00"){$info['map'] .= $result[$char];$char++;}$char++;
        while(
    ord($result[$char]) != "%00"){$info['dir'] .= $result[$char];$char++;}$char++;
        while(
    ord($result[$char]) != "%00"){$info['description'] .= $result[$char];$char++;}$char++;
        
    $info['appid'] = ord($result[$char].$result[($char+1)]);$char += 2;       
        
    $info['players'] = ord($result[$char]);$char++;   
        
    $info['max'] = ord($result[$char]);$char++;   
        
    $info['bots'] = ord($result[$char]);$char++;   
        
    $info['dedicated'] = ord($result[$char]);$char++;   
        
    $info['os'] = chr(ord($result[$char]));$char++;   
        
    $info['password'] = ord($result[$char]);$char++;   
        
    $info['secure'] = ord($result[$char]);$char++;   
        while(
    ord($result[$char]) != "%00"){$info['version'] .= $result[$char];$char++;}
       
        return 
    $info;
    }
    $q source_query('95.141.193.92:27023');
    $procent = ($q['players']*100/$q['max']);
    echo 
    "<br><div class='progress'><div class='progress-bar purple' style='width:".$procent."%;'></div></div>";
    echo 
    "<span style='float:left;font-size:10pt;'>".$q['players']." из ".$q['max']."</span>";
    echo 
    "<span style='float:right;font-size:10pt;'>".$q['map']."</span><br>";
    ?>
    Что там нужно добавить для получения переменной вывода списка игроков? Надо именно что-бы они были по отдельности, и каждый ник с новой строки. Может есть плагин который записывает это в БД?
     
  2. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    915
  3. Bandit228

    Bandit228

    Сообщения:
    102
    Симпатии:
    10
    Я не пойму этой документации, как мне именно добавить это в уже готовый код, ведь по сути то он уже получает данные с сервера.
     
  4. blvck

    blvck

    Сообщения:
    7
    Симпатии:
    0
    Подобная система есть в AmxBans (web морда), возьми оттуда файл include/rcon_hl_net.inc , затем открой файл /view.php и посмотри способ получения ника, фрагов и времени игры.
    Я себе вырезал именно оттуда.
     
  5. Found

    Found

    Сообщения:
    1
    Симпатии:
    0
  6. Altaj

    Altaj

    Сообщения:
    102
    Симпатии:
    5
    Есть у кого готовый скрипт вывода игроков играющих на сервере?
     
  7. ykpon

    ykpon Владыка Read Only

    Сообщения:
    399
    Симпатии:
    104
    Постом выше же.
     
  8. Altaj

    Altaj

    Сообщения:
    102
    Симпатии:
    5
    Чет я покопался и нифига не пойму. Может кто объяснить, как этим пользоваться?
     
  9. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    915