За последние 24 часа нас посетили 19628 программистов и 1604 робота. Сейчас ищут 918 программистов ...

выводил steamid

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

  1. samaritynka

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

    С нами с:
    17 дек 2011
    Сообщения:
    30
    Симпатии:
    0
    Есть код который выводит ник игрока, его счет и время проведенное на сервер CS 1.6
    как сделать чтобы выводило steamid игрока

    PHP:
    1. <?php
    2.  
    3.   $player_list = monitor_server_cs_fulll("80.93.184.193", 27017, halflife, players); // измените ай-пи 192.168.0.89 на свой!!!!
    4.  
    5. //------------------////////////////----------------------------------------------------
    6. function monitor_server_cs_fulll($ip, $port, $game, $request)
    7.     {
    8.            $fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1);
    9.             if (!$fp) { return FALSE; }
    10.  
    11.                 stream_set_timeout($fp, 1, 0);
    12.                 stream_set_blocking($fp, true);  
    13.  
    14.  
    15.           if ($request == "players")  { $challenge = "\xFF\xFF\xFF\xFF\x57".$challenge_code;        }
    16.          
    17.  
    18.  
    19.              fwrite($fp, $challenge);
    20.  
    21.           $buffer = fread($fp, 4096);
    22.  
    23.               if (!$buffer) { fclose($fp); return FALSE; }    
    24.  
    25.  
    26.                $buffer = trim(substr($buffer, 4));
    27.            
    28.  
    29.                 fclose($fp);
    30.  
    31.              if (!trim($buffer)) { return FALSE; }
    32.              //---------------------------------------------------------+
    33.  
    34.                             //---------------------------------------------------------+
    35.                                 if ($request == "players")
    36.                                     {
    37.  
    38.                                               $player_number = 0;
    39.                                                 $position = 2;                                          
    40.  
    41.         do
    42.               {
    43.                $player_number++;                                      
    44.  
    45.                 $player[$player_number]['id'] = ord($buffer[$position]);
    46.                  $position ++;                                            
    47.  
    48.                   while($buffer[$position] != "\x00" && $position < 4000)  
    49.                    {
    50.                       $player[$player_number]['name'] .= $buffer[$position];  
    51.                             $position ++;
    52.                             }
    53.                                 $player[$player_number]['score'] = (ord($buffer[$position + 1]))
    54.                                                                      + (ord($buffer[$position + 2]) * 256)
    55.                              + (ord($buffer[$position + 3]) * 65536)
    56.                                    + (ord($buffer[$position + 4]) * 16777216);
    57.  
    58.         if ($player[$player_number]['score'] > 2147483648) { $player[$player_number]['score'] -= 4294967296; }  
    59.  
    60.          $time = substr($buffer, $position + 5, 4);              
    61.           if (strlen($time) < 4) { return FALSE; }              
    62.            list(,$time) = unpack("f", $time);                
    63.             $time = mktime(0, 0, $time);                          
    64.              $player[$player_number]['time'] = date("H:i:s", $time);  
    65.  
    66.               $position += 9;
    67.              }
    68.             while ($position < strlen($buffer));      
    69.  
    70.  
    71.                   return $player;
    72.                }
    73.  
    74.  }
    75.  
    76.  
    77. //------------------////////////////----------------------------------------------------  
    78.  
    79.   if (!$player_list) { echo "<div style='text-align:center'>Нет игроков или сервер не отвечает</div></body></html>"; return; }
    80.  
    81.   if (isset($player_list[1][score]) )  { $monitor_show_score  = 1; }
    82.   if (isset($player_list[1][time])  )  { $monitor_show_time   = 1; }
    83.  
    84.   echo "<table class='players_table' cellpadding='3'>
    85.        <tr>
    86.        <td style='text-align:center'><b>Имя Игрока</b><br /><br /></td>
    87.        <td style='height:30px'><br /><br /></td>";
    88.  
    89.   if ($monitor_show_score ) { echo "<td style='width:60px; text-align:center'><b>Фраги    </b><br /><br /></td>"; }
    90.   if ($monitor_show_time)   { echo "<td style='width:90px; text-align:center'><b>Время в игре     </b><br /><br /></td>"; }
    91.  
    92.   echo "</tr>";
    93. print_r($player_list); 
    94.   foreach ($player_list as $key=>$player)
    95.   {
    96.     if (function_exists("mb_convert_encoding"))
    97.     {
    98.       $player[name] = htmlspecialchars($player[name], ENT_QUOTES);
    99.       $player[name] = @mb_convert_encoding($player[name],"HTML-ENTITIES","auto");
    100.     }
    101.     else
    102.     {
    103.       $player[name] = htmlentities($player[name], ENT_QUOTES);
    104.     }
    105.  
    106.     echo "<tr><td class='players_row'> $player[name] </td><td class='players_spacer'><br /></td>";
    107.  
    108.     if ($monitor_show_score)  { echo "<td class='players_row'> $player[score]  </td>"; }
    109.     if ($monitor_show_time)   { echo "<td class='players_row'> $player[time]   </td>"; }
    110.  
    111.     echo "</tr>\r\n";
    112.   }
    113.  
    114.   echo "</table><div style='height:30px'><br /></div>";
    115.  
    116. ?>
     
  2. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    невозможно
    гугли аддон на амх который будет писать стимид отдельно в бд , а дальше при выводе можно будет показывать стимид.
    вроде это так делалось , уверен что готовые решения есть