Блок мониторинга CS1.6
Категория: / Документы / Документы / Разное
$server="127.0.0.1";
$qw=chr(32);
$fp = fsockopen ("udp://".$server,"27015");
if (!$fp) {
echo "ERROR: $errno - $errstr<br>\n";
} else {
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));
$st=fread($fp,1);
$r=socket_get_status($fp);
$r=$r["unread_bytes"];
$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));
}
$show_map='';
if (file_exists('/images/'.$map.'.jpg'))
$show_map="<img src=http://".$server_name."/monitoring/images/".$map.".jpg>";
else
$show_map='<div style="padding:5px;width:100px;height:60px;background-color:black;color:white;"><br/><br/>нет изображения</div><br clear="all"/>';
$content=("
<div align='center' style='padding:6px'><b>$map</b></div>
<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" >
</tr> <td ><center>$show_map</center></td>
</table>
<table class=\"gensmall\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" >
<tr>
<td width=\"60\">
<p><b>Сервер:</b></p>
</td>
<td ><b>$name</b></td>
</tr>
<tr>
<td width=\"60\"><b>IP-адрес:</b></td>
<td ><b>$address</b></td>
</tr>
<tr>
<td width=\"60\"><b>MOD:</b></td>
<td ><b>Counter-Strike</b></td>
</tr>
<tr>
<td width=\"15\"><b>Игроков:</b></td>
<td ><b>$current</b></td>
</tr>
<tr>
<td width=\"15\"><b>Макс:</b></td>
<td ><b>$max</b></td>
</tr>
</table>
");
echo $content;
Данный код выводит информацию о текущей карте в Counter Strike и изображение карты, при ее наличии.
Для получения дополнительнрй информации по игровым серверам из скрипта для практически любых игр можно посмотреть
проект http://sourceforge.net/projects/qstat/ , при условии что сервер позволит вам выполнить бинарник неизвестного происхождения.
Для примера (шелл скрипт, результы которого с легкостью парсятся в php):
#/bin/sh
echo "Quake 3 Status\n"
/usr/local/bin/qstat -P -q3s 127.0.0.1
echo "\nCS 1.6 (freebsd) Status\n"
/usr/local/bin/qstat -P -a2s 127.0.0.1
Для того чтобы создать блок в Skillz, создаем статью с кодом php, затем в админ панели создаем блок blog::make_php_box
с параметром - идентификатором созданной статьи и цепляем блок к группе, которая отображается на нужной странице.
Автор: j4ck