Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Заполненость сервера - скрипт.

, Помогите найти или сделать.
Статус пользователя wer1K
сообщение 1.9.2014, 0:37
Сообщение #1
Стаж: 18 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Здравствуйте. Хочу себе на сайт к простому мониторингу (код ниже) прикрепить прогресс бар который будет отображать заполненность сервера, подскажите код как это реализовать. Если можно в примерах.

Код мониторинга:
Скрытый текст
Код
<?php

$server = '31.28.168.178';
$port = '27036';


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);
$result['status'] = $r["timed_out"];
$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;
}

$serv = GetServerInfo($server,$port);

if ($serv) {
echo '<img width="100%" height="20%" src="img/maps/'.$serv['map'].'.jpg"/>';
echo '
Сервер: '.$server.':'.$port.'
<br>
Название: '.$serv['name'].'
<br>
Карта: '.$serv['map'].'
<br>
Игроков: '.$serv['current'].'/'.$serv['max'].'
<br>
Статус: On-line
<br>
';
} else {
echo 'Статус: Off-line';
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
BariN
сообщение 1.9.2014, 0:59
Сообщение #2
Стаж: 12 лет

Сообщений: 761
Благодарностей: 324
Полезность: 0

xxf3mzue,
для начала в павн все вставьте
так красиво и читать удобнее)

Отредактировал: BariN, - 1.9.2014, 0:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 1.9.2014, 10:10
Сообщение #3


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

BariN, HTML и PHP с посветкой PAWN?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Trovel
сообщение 1.9.2014, 10:13
Сообщение #4
Стаж: 12 лет

Сообщений: 112
Благодарностей: 54
Полезность: 0

Код
@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));

Это еще что за?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 1.9.2014, 11:24
Сообщение #5
Стаж: 18 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Цитата(Trovel @ 1.9.2014, 10:13) *
Код
@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));

Это еще что за?


Без понятия, но тем не менее информацию о сервере отображает как нужно. С другими скриптами (к примеру PHP Source Query) подружится я не смог, вот использую этот. Но интересует все таки не это, а то каким образом мне сделать красиво отображение заполненности сервера, возможно у кого-то был опыт и подскажет?

Отредактировал: xxf3mzue, - 1.9.2014, 11:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 1.9.2014, 11:25
Сообщение #6
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Hex /


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.9.2014, 12:42
Сообщение #7


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

что-то не понял
ТС выкладывает кривоватый код для gold source query аж одного запроса!!! server_info
и хочет что бы ему сделали бар игроков?
очевидно вместе с дизайном...

держи код
и дальше сам вешай красивости всякие...
Код
<?php
    header("Content-type: image/jpeg");
    
    $current = isset($_GET['c']) ? $_GET['c'] : 50;
    $start = isset($_GET['s']) ? $_GET['s'] : 0;
    $end = isset($_GET['e']) ? $_GET['e'] : 100;
    $p = isset($_GET['p']) ? $_GET['p'] : 0;
    
    $pos = floor(2 * $current/($end - $start) * 100);
        
    $im = imagecreate(200, 16); // width , height px
    $white = imagecolorallocate($im, 255, 255, 255);
    $black = imagecolorallocate($im, 0, 0, 0);
    $green = imagecolorallocate($im, 0, 204, 51);
    
    imagesetthickness($im, 2);
    
    imagerectangle($im, 0, 0, 200, 15, $white);
    imagefilledrectangle($im, 0, 0, $pos, 16, $green);
    
    if ($p) {
        $text = ($pos / 2) . '%';
        $font = 'arial.ttf';
        $black = imagecolorallocate($im, 0, 0, 0);
        imagettftext($im, 8, 0, 95, 12, $black, $font, $text);
    }
    
    imagejpeg($im);  
    imagedestroy($im);
?>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 1.9.2014, 13:50
Сообщение #8
Стаж: 18 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Не разбираюсь в скиптах и понятия не имел, кривой он или нет, сколько там запросов и так далее, скинул лишь для того, чтоб вы понимали какой код собственно использую, не более. Мне будет полезная любая информация которая подскажет в каком направлении мне двигаться и я не просил кого-то делать из этого конкретного скрипта бар игроков и прочие плюшки. Спасибо за код, постараюсь разобраться что и как.

Отредактировал: Bloo, - 1.9.2014, 13:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.9.2014, 14:28
Сообщение #9


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(xxf3mzue @ 1.9.2014, 15:50) *
Не разбираюсь в скиптах и понятия не имел, кривой он или нет, сколько там запросов и так далее, скинул лишь для того, чтоб вы понимали какой код собственно использую, не более. Мне будет полезная любая информация которая подскажет в каком направлении мне двигаться и я не просил кого-то делать из этого конкретного скрипта бар игроков и прочие плюшки. Спасибо за код, постараюсь разобраться что и как.

код выше
использовать как
Код
<img src="bar.php?s=0&e=100&c=50" />


e=100 кол-во слотов
c=50 кол-во игроков

ну и авто обновление бара через аякс запилить, этого в гугле навалом
либо просто refresh 1 в html xDDD)

pss не понятно нафига тебе это нужно, самопис какой-то, гораздо проще использовать инфо с http://www.gametracker.com/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 1.9.2014, 23:01
Сообщение #10
Стаж: 18 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Вот, для наглядности сделал скрин, хочу сделать на сайте следующее (голубая полоска это то, прогресс-бар который я не могу сделать):
скрин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 1.9.2014, 23:21
Сообщение #11


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Код:

<?php
$width = 64;
?>
<div style="height: 20px; margin-bottom: 20px; overflow: hidden; background-color: #f5f5f5;">
<div style="float: left; width: <?php echo $width?>%; height: 100%; color: #fff; text-align: center; background-color: #428bca;"><?php echo $width?>%</div>
</div>


Отредактировал: onotole, - 1.9.2014, 23:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя jtiq
сообщение 2.9.2014, 0:49
Сообщение #12


Иконка группы

Стаж: 18 лет

Сообщений: 1717
Благодарностей: 767
Полезность: 979

Меценат Меценат

Код
<?php

$m = 64;  // макс кол-во игроков
$p = 47;  // текущее кол-во игроков

$w = @ceil($p / $m * 100); // высчитываем процент

?>
<div style="height: 20px; margin-bottom: 20px; overflow: hidden; background-color: #f5f5f5; position: relative;">
  <div style="position: absolute; top: 0; left: 0; right: 0; text-align: center; font: normal 20px Arial, Tahoma, Verdana, sans-serif;"><?=$w;?>%</div>
  <div style="width: <?=$w;?>%; height: 100%; color: #fff; text-align: center; background-color: #428bca;"></div>
</div>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 2.9.2014, 1:20
Сообщение #13
Стаж: 18 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Благодарю всех за помощь, особенно jtiq, просто и доходчиво, все получилось.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: