Counter Strike

Discussion in 'PHP' started by nikfm, 5 Apr 2007.

  1. nikfm

    nikfm Elder - Старейшина

    Joined:
    30 Apr 2006
    Messages:
    172
    Likes Received:
    36
    Reputations:
    4
    извеняюсь если не в тему
    нужен движок для статистики Cs сервира
    Чтобы показывал кто играит и какая карта
     
  2. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    Табличку покажи,там mysql вроде
    SELECT что выбрать
    FROM где выбрать
    WHERE если допустим выбираеш карту
     
  3. ice1k

    ice1k Banned

    Joined:
    1 Jan 2007
    Messages:
    462
    Likes Received:
    382
    Reputations:
    490
    http://www.psychostats.com/
     
  4. nikfm

    nikfm Elder - Старейшина

    Joined:
    30 Apr 2006
    Messages:
    172
    Likes Received:
    36
    Reputations:
    4
    А русско язычного нет ???

    а то я тут нефига непонял :confused:
     
  5. Eugeny

    Eugeny New Member

    Joined:
    6 Mar 2007
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    http://www.dedicated-server.ru
    если попадешь в закрытый форум, то много чего интересного там найдёшь
    ещё http://faq.cs2.ru
     
    1 person likes this.
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Лови скрипт, используется не бд, а файлы....
    + можешь сам добавлять сервера...
    PHP:
    <center>
    <?php
    error_reporting
    (0);
    define ("SERVLIST""servers.txt");  // файл со списком server:port
    define("SERVERSBYPAGE"10);  // количество серверов на страницу

    function GetServerInfo($server,$port) {
    $fp = @fsockopen("udp://".$server$port);
    if(!
    $fp) return false;
        @
    fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
        
    $start=time();
        
    socket_set_timeout($fp,1);
        
    $st=fread($fp,1);
        
    $r=socket_get_status($fp);
        
    $r=$r["unread_bytes"];
        if (
    $r == 0) { @fclose($fp); return false;}
        
    $st.=fread($fp,$r);
        @
    fclose($fp);

        
    $st=substr($st,5);
        
    $address=SubStr($st,0,StrPos($st,chr(0)));
        
    $address=str_replace(chr(0),"|",$address);
        
    $st=SubStr($st,StrPos($st,chr(0))+1);
        
    $name=SubStr($st,0,StrPos($st,chr(0)));
        
    $st=SubStr($st,StrPos($st,chr(0))+1);
        
    $map=SubStr($st,0,StrPos($st,chr(0)));
        
    $st=SubStr($st,StrPos($st,chr(0))+1);
        
    $st=SubStr($st,StrPos($st,chr(0))+1);
        
    $st=SubStr($st,StrPos($st,chr(0))+1);
        
    $current=ord(SubStr($st,0,1));
        
    $max=ord(SubStr($st,1,1));

    if(
    $map == "") return false;
        
    $result['map'] = $map;
        
    $result['name']= $name;
        
    $result['current'] = $current;
        
    $result['max'] = $max;

        return 
    $result;
    }

    function 
    ReadServers($servlist) {
        
    $file = @fopen($servlist"rt");
        if(
    $file) {
          
    $lines explode("\n"fread($filefilesize($servlist)));
          foreach (
    $lines as $v) {
            
    $elem explode(":"$v);
            
    $srv['ip'] = $elem[0];
            
    $srv['port'] = $elem[1];
            if (
    GetServerInfo($srv['ip'],$srv['port'])) $servers[] = $srv;
          }
          
    fclose($file);
          return 
    $servers;
        } else return 
    false;

    }

    function 
    AddServer($newserver,$servlist) {
        if (!
    preg_match('/^\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}:\d{1,5}$/xs',$_REQUEST['newserver'])) return false;
        
    $f fopen($servlist,"a+");
        if (!
    $f) return false;

        
    fputs($f,"\n".$_REQUEST['newserver']);
        
    fclose($f);
        return 
    true;
    }


    if (isset(
    $_REQUEST['newserver'])) {

        if (!
    preg_match('/^\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}:\d{1,5}$/xs',$_REQUEST['newserver']))
           echo 
    "Ошибка! Невозможно определить введенный сервер или порт";
        else { list(
    $newserv['ip'],$newserv['port']) = explode(":",$_REQUEST['newserver']);

               if (!
    GetServerInfo($newserv['ip'],$newserv['port'])) echo "Ошибка! Не удалось подключиться к серверу";

               elseif (
    in_array($newservReadServers(SERVLIST))) echo "Сервер уже есть в списке<br />";
               elseif (!
    AddServer($newserver,SERVLIST)) echo "Ошибка при добавлении сервера <br />";
               else echo 
    "Сервер добавлен в список <br />";
        }
      echo 
    "<br/><a href=".$_SERVER['SCRIPT_NAME'].">Вернуться</a>";
      exit;

    }

    $servers = array();
    $servers ReadServers(SERVLIST);
    $countpages ceil(count($servers)/SERVERSBYPAGE);

    if (!isset(
    $_GET['page']) || ((int)$_GET['page'] == 0) || $_GET['page'] < 1$_GET['page'] = 1;
    {
      for (
    $i=0$i < ($_GET['page']-1)*SERVERSBYPAGE$i++) array_shift($servers);
      while (
    count($servers) > SERVERSBYPAGEarray_pop($servers);

    }

    ?>

    <table width='50%' cellpadding='3' cellspacing='3' border="1" bordercolor='#333333'>
     <tr>
       <td><div align='center'>Сервер:</div></td>
       <td><div align='center'>Название:</div></td>
       <td><div align='center'>Карта:</div></td>
         <td><div align='center'>Игроков:</div></td>
       <td><div align='center'>Статус:</div></td>
     </tr>

    <?php

    foreach($servers as $k => $v) {

       
    $serv GetServerInfo($v['ip'],$v['port']);
       if (
    $serv)
       echo 
    "<tr>
             <td><div align='center'>
             <a href=\"http://
    {$v['ip']}\" onmouseover=\"return overlib('На сервере сейчас играют:');\" onmouseout=\"return nd();\">".$v['ip'].":".$v['port']."<a></div></td>
             <td><div align='center'>"
    .$serv['name']."</div></td>
             <td><div align='center'>"
    .$serv['map']."</div></td>
             <td><div align='center'>"
    .$serv['current']."/".$serv['max']."</div></td>
             <td height='50'><div align='center'>
             <font color=green><b>Online</b></font>
             </div></td></tr>"
    ;
    }
    echo 
    "<br /></table>";
    echo 
    "Мониторинг all Half-Life mode's";
    if (
    count($servers) > SERVERSBYPAGE) {
    echo 
    "<br /><br /><p>Страницы:&nbsp;</p>";

    for (
    $i 1$i <= $countpages$i++);
    {

     if (
    $i == $_GET['page'] ) echo "[".$i."]&nbsp;";
     else
     echo 
    "[<a href=\"".$_SERVER['SCRIPT_NAME']."?page=$i\">$i</a>]&nbsp;";

    }
    }
    echo 
    "<br />
            <p>Добавить сервер:</p>

            <form  action="
    .$_SERVER['SCRIPT_NAME'].">
            <input name=\"newserver\" type=\"text\" value=\"IP:порт\" onfocus=\"if(this.value=='IP:порт')this.value='';\" onblur=\"if(this.value=='')this.value='IP:порт';\">
            <input type=\"submit\" value=\"Добавить\">
            </form>"
    ;


    ?>
    </center>