Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 3.10.2010, 0:42 | Lgsl с рейтингом | xtrimal lgsl_block для lgsl простой ,но он не идет мона сказать вот я переделал под redacid lgsl могу и рабочий под простую дать Код <style> body { background-color:#000000; } </style> <?php //------------------------------------------------------------------------------------------------------------+ // TELL THE STUPID BROWSER THAT IT IS AN IMAGE & TURN OFF ERROR REPORTING error_reporting("0"); //------------------------------------------------------------------------------------------------------------+ // OVERTAKEN FROM PERRY FOR THE EASE {START} //------------------------------------------------------------------------------------------------------------+ // GET THE CORE require "lgsl_class.php"; //------------------------------------------------------------------------------------------------------------+ // GET THE SERVER DETAILS AND PREPARE IT FOR DISPLAY $lookup = lgsl_lookup_id($_GET['s']); if (!$lookup) { $output .= "<div style='text-align:center'> {$lgsl_config['text']['mid']} </div>"; return; } $server = lgsl_query_cached($lookup['ip'], $lookup['q_port'], $lookup['c_port'], $lookup['s_port'], $lookup['type'], "sep"); $server = lgsl_sort_players($server); $server = lgsl_sort_extras($server); $misc = lgsl_server_misc($server); $server = lgsl_server_html($server); //------------------------------------------------------------------------------------------------------------+ // OVERTAKEN FROM PERRY FOR THE EASE {END} //------------------------------------------------------------------------------------------------------------+ // PREPARE THE IMAGE INFOS // WHAT BACKGROUND IMAGE WE USE. THE LAYOUT IS "image/<TYPE>/<GAME>.png" echo " <table cellpadding='0' cellspacing='2' style='width:170;color:#ffffff'> <tr> <td title='{$server['s']['name']}'> <marquee onmouseover=this.stop(); onmouseout=this.start();><a href='".lgsl_link($server['o']['id'])."' target='_blank'><font color=white>{$misc['name_filtered']}</font></a></marquee> </div> </td> </tr> <tr><div align=center> <td style='background-image:url({$misc['image_map']}); background-repeat:no-repeat'> <img alt='' src='{$misc['image_map_password']}' title='{$lgsl_config['text']['vsd']}' style='border:none; width:{$zone_width}; background:url({$misc['icon_game']}); background-repeat:no-repeat; background-position:4px 4px' /></div> </td> </tr> <tr> <td title='{$misc['text_type_game']}'> <div style='width:{$zone_width}; white-space:nowrap; overflow:hidden;'> Карта - {$server['s']['map']} </div> </td> </tr> <tr> <td title='{$lgsl_config['text']['slk']}'> <div style='width:{$zone_width}; white-space:nowrap; overflow:hidden'> Игроки - {$server['s']['players']} / {$server['s']['playersmax']} </div> </td> </tr></table> <tr> <td title='In-game Monitor'> <div style='width:{$zone_width}; white-space:nowrap; overflow:hidden'> <a href=http://".$_SERVER['HTTP_HOST']."><font color=white>Имя компании</font></a> </div> </td> </tr></table> "; //------------------------------------------------------------------------------------------------------------+ ?> Вот небольшой скрипт как у меня в рипе 3 вип сервера! на главной!! заходим в index.php и пишем после title Код <table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center> <?php $lgsl_zone_number = 1; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; ?> </td><td align=center> <?php $lgsl_zone_number = 2; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; ?> <td align=center> <?php $lgsl_zone_number = 3; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; echo '</tr></td></table>'; ?> Предлагаю скрипт как на фото 3 вип сервера на главной ! Установка : Перед <?php отступаем место и вводим Код <table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center> <?php $lgsl_zone_number = 1; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; ?> </td><td align=center> <?php $lgsl_zone_number = 2; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; ?> <td align=center> <?php $lgsl_zone_number = 3; $output = ""; require "lgsl_files/lgsl_zone.php"; echo $output; echo '</tr></td></table>'; ?> скрин - https://c-s.net.ua/forum/ipb.html?act=attac...st&id=12591 |
vkontakte | ||
| 1.2.2010, 18:30 | Нормальный Скрипт Мониторинга | Отличный скрипт мониторинга! советую Вид мониторинга такой создаём файл например Monitoring.php туда вставляем код и Затем получается мониторинг типа monitoring.php?ip=Айпи&port=ПОРТ Картинки кидать в maps с форматом jpg Код для Source(Я переделал) Раскрывающийся текст Код <? echo "<title>Мониторинг сервера</title> "; /*---------------------------------------------------+ | Released under the terms & conditions of v2 of the | GNU General Public License. For details refer to | the included gpl.txt file or visit http://gnu.org +----------------------------------------------------+ | CS Stat Panel v.1.0-панель вывода статистики КС | Copyright © 2006 Pashtet ака Berezkin Pavel | Mail: pashtetHK@gmail.com +----------------------------------------------------+ | Скачали с w1rtel.blogspot.com +----------------------------------------------------*/ $sock = NULL; $errno = 0; $errstr = ''; $raw = ''; // raw data string $data = array(); // array of parsed data from a query $ping = 0; // response time from last command sent/recv $plrstr = 'U'; $halflife_version = 1; // 0 = unknown version $infostr = 'TSource Engine Query'.chr(0); $rulestr = 'V'; $pingstr = 'i'; $challenge = 'W'; function query_info($ip, $port) { global $infostr; if (!$ip) return FALSE; $start = _getmicrotime(); $raw = _sendquery($ip, $port, $infostr); $end = _getmicrotime(); if (!$raw) return FALSE; $data = array(); // query_info always resets the data array (so call this before other queries) if ($raw != '') { $data['ping'] = ceil(($end - $start) * 1000); // return the time (ms) it took for the packet to return (ping) $data['ip']=$ip; $data['port']=$port; $data=_parse_info_halflife1($raw); return $data; } return FALSE; } function _parse_info_halflife1($raw) { $raw = substr($raw, 5); // strip off response header bytes $data['int_ipport']=_getnullstr($raw); list($data['int_ip'], $data['int_port'])= explode(':', $data['int_ipport']); $data['name']= _getnullstr($raw); $data['map']= _getnullstr($raw); $data['gamedir']= _getnullstr($raw); $data['gamename']= _getnullstr($raw); $data['totalplayers']= _getbyte($raw); $data['maxplayers']= _getbyte($raw); $data['protocol']= _getbyte($raw); // 47 $data['servertype']= _getchar($raw); $data['serveros']= _getchar($raw); $data['serverlocked']= _getbyte($raw); $data['modrunning']= _getbyte($raw); $data['modurl']= $data['modrunning'] ? _getnullstr($raw) : ''; $data['modftp']= $data['modrunning'] ? _getnullstr($raw) : ''; _getnullstr($raw); $data['modver']= _getshort($raw) . '.' . _getshort($raw); $data['modsize']= _getlong($raw); $data['modserveronly']= _getbyte($raw); $data['modclientdll']= _getbyte($raw); return $data; } // The sub-class must always contain this method to query the active players list function query_players($ip, $port) { global $plrstr; $raw =_sendquery($ip, $port, $plrstr.query_challenge($ip, $port)); if (!$raw) return FALSE; if (!empty($raw)) { $raw = substr($raw, 5); // strip off response header bytes $data['activeplayers']= _getbyte($raw); $data['players']= array(); for ($i=1; $i <= $data['activeplayers']; $i++) { if ($raw == '') break; $data['players'][] = array('id'=> _getbyte($raw), 'name'=> _getnullstr($raw), 'kills'=> _getlong($raw), 'onlinetime'=> (int)_getfloat($raw)); } $data['activeplayers'] = count($data['players']); return $data; } return FALSE; } function query_ping($ip, $port) { global $pingstr; if (!$ip) return FALSE; $start = _getmicrotime(); $raw=_sendquery($ip, $port, $pingstr); $end = _getmicrotime(); if ($raw == '') { return FALSE; } else { return ($end - $start) * 1000; } } function _sendquery($ip, $port, $cmd) { global $DEBUG; if (!$port) $port = '27015'; $retry = 0; $oldmqr = get_magic_quotes_runtime(); $sock=_connectsocket($ip, $port); if (!$sock) { trigger_error("Failed to connect to socket on $ip:$port", E_USER_WARNING); return FALSE; } $packets = array(); // stores each packet seperately, so we can combine them afterwards $command = pack("N", 0xFFFFFFFF) . $cmd; # . pack('x'); $raw = ""; if ($oldmqr) set_magic_quotes_runtime(0); if ($DEBUG) print "DEBUG: Sending query to $ip:$port:\n" . hexdump($command) . "<br>"; fwrite($sock, $command, strlen($command)); $expected = 0; do { $packet = fread($sock, 1500); if (strlen($packet) == 0) { $retry++; if ($DEBUG) print "DEBUG: Resending query $ip:$port:\n" . hexdump($command) . "<br>"; fwrite($sock, $command, strlen($command)); $expected = 1; continue; } if ($DEBUG) print "DEBUG: Received " . strlen($packet) . " bytes from $ip:$port:\n" . hexdump($packet) . "<br>"; $header = substr($packet, 0, 4); // get the 4 byte header $ack = @unpack("N1split", $header); $split = sprintf("%u", $ack['split']); if ($DEBUG) print "DEBUG: ACK = " . sprintf("0x%X", $ack['split']) . "\n"; if ($split == 0xFeFFFFFF) { // we need to deal with multiple packets $packet = substr($packet, 4); // strip off the leading 4 bytes $header = substr($packet, 0, 5); // get the 'sub-header ack' $packet = substr($packet, 5); // strip off 32bit int ID, seq# and total packet# $info = @unpack("N1id/C1byte", $header); // we don't really care about the ID if ($DEBUG) printf("DEBUG: Sub ACK: %X (%08b)\n", $info['byte'], $info['byte']); if (!$expected) $expected = $info['byte'] & 0x0F; // now we know how many packets to receive $seq = (int)($info['byte'] >> 4); // get the sequence number of this packet $packets[$seq] = $packet; // store the packet $expected--; } elseif ($split == 0xFFFFFFFF) { $packets[0] = $packet; $expected = 0; } } while ($expected and $retry < maxretries()); fclose($sock); if ($oldmqr) set_magic_quotes_runtime(1); ksort($packets, SORT_NUMERIC); $raw = implode('', $packets); // glue the packets together to make our final data string return $raw; } function query_challenge($ip, $port) { global $challenge; if (!$ip) return FALSE; $raw = _sendquery($ip, $port, $challenge); if (!$raw) return FALSE; if (!empty($raw)) { return substr($raw,5,5); } return ""; } function maxretries() { return $retries >= 0 ? $conf['retries'] : 0; } function _connectsocket($ip, $port, $proto='udp') { global $DEBUG, $timeout, $errno, $errstr; if ($DEBUG) print "DEBUG: Opening socket to $ip:$port >>><br>"; $sock = @fsockopen("$proto://$ip", $port, $errno, $errstr); _set_timeout($timeout); return $sock; } function _set_timeout($seconds=5, $sock=NULL) { if (!$sock) $sock =& $sock; if (!$sock) return; if (function_exists('stream_set_timeout')) { // PHP >= 4.3.0 stream_set_timeout($sock, $seconds); } elseif (function_exists('socket_set_timeout')) { // this function is deprecated socket_set_timeout($sock, $seconds); } } // reads a null terminated string from the raw input function _getnullstr(&$raw) { if (empty($raw)) return ''; $end = strpos($raw, "\0"); // find position of first null byte $str = substr($raw, 0, $end); // extract the string (excluding null byte) $raw = substr($raw, $end+1); // remove the extracted string (including null byte) return $str; // return our str (no null byte) } // reads a character from the raw input function _getchar(&$raw) { return sprintf("%c", _getbyte($raw)); } // reads a byte from the raw input function _getbyte(&$raw) { if (empty($raw)) return ''; $byte = substr($raw, 0, 1); $raw = substr($raw, 1); return ord($byte); } // reads a short integer/word (2 bytes) from the raw input function _getshort(&$raw) { if (empty($raw)) return ''; $lo = _getbyte($raw); $hi = _getbyte($raw); $short = ($hi << 8) | $lo; return $short; } // reads a long integer (4 bytes) from the raw input function _getlong(&$raw) { if (empty($raw)) return ''; $lo = _getshort($raw); $hi = _getshort($raw); $long = ($hi << 16) | $lo; return $long; } function _getfloat(&$raw) { if (empty($raw)) return ''; $f = @unpack("f1float", $raw); $raw = substr($raw, 4); return $f['float']; } function _getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function _unpack($type, $data) { $ary = @unpack($type . '1value', $data); return $ary['value']; } function hexdump($string, $maxwidth=16) { $output = ""; $curwidth = 1; $bytes = array(); for ($i=0; $i<strlen($string); $i++) { $byte = ord($string[$i]); $bytes[] = $byte; $output .= sprintf("%02X ", $byte); if ($i+1 == strlen($string) and $curwidth != $maxwidth) { $padlen = ($maxwidth * 3) - (count($bytes) * 3); $output .= sprintf("%-{$padlen}s", " "); $curwidth = $maxwidth; } if ($curwidth >= $maxwidth) { $output .= " "; foreach ($bytes as $b) { if ($b <= 32 or $b >= 127) { $output .= "."; } else { $output .= chr($b); } } $bytes = array(); $output .= "\n"; $curwidth = 1; } else { $curwidth++; } } return $output; } $server= $_GET['ip']; $port= $_GET['port']; $data=query_info($server, $port); $players=query_players($server, $port); if ($data['serveros']=="l") { $data['serveros']="Linux"; } else { $data['serveros']="Windows"; } if ($data['serverlocked']=="0") { $data['serverlocked']="Нет"; } else { $data['serverlocked']="Да"; } if ($data['modrunning']=="0") { $data['modrunning']="Незагружен"; } else { $data['modrunning']="Загружен"; } //if ($data['modserveronly']){ if (file_exists("./maps/".$data['name'].".jpg")){ $show_map="<img src=\"maps/".$data['name'].".jpg\" width=\"150\" alt=\"Карта ".$data['map']."\" title=\"Карта ".$data['map']."\" />"; } else $show_map="<img src=\"maps/map_not_dir.jpg\" width=\"150\" alt=\"Карта не найдена\" title=\"Карта не найдена\" />"; //} else $show_map="<img src=\"/images/map/cs/map_not.jpg\" width=\"150\" alt=\"Нет соединения\" title=\"Нет соединения\" />"; $content .= " <table width=\"99%\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\"> <tr><td align=\"right\"><b>Имя сервера</b></td><td align=\"center\">".$data['int_ipport']."</td><td align=\"center\" rowspan=\"8\">".$show_map."</td></tr> <tr><td align=\"right\"><b>Карта</b></b></td><td align=\"center\">".$data['name']."</td></tr> <tr><td align=\"right\"><b>Игра</b></td><td align=\"center\">".$data['map']."</td></tr> <tr><td align=\"right\"><b>Адрес</b></td><td align=\"center\">".$server.":".$port."</td></tr> <tr><td align=\"right\"><b>Игроков / Макс</b></td><td align=\"center\">".$data['totalplayers']." / ".$data['maxplayers']."</td></tr> <tr><td align=\"right\"><b>Пинг</b></td><td align=\"center\">".round(query_ping($server, $port))."</td></tr> <tr><td align=\"right\"><b>Общий</b></td><td align=\"center\">".$data['serverlocked']."</td></tr> <tr><td align=\"right\"><b>MOD</b></td><td align=\"center\">".$data['modrunning']."</td></tr> </table><br /> "; $content .= "<table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center>№</td><td align=center>Имя</td><td align=center>Фрагов</td><td align=center>В игре</td></tr> "; if ($players['activeplayers'] > '0') { for ($i=0; $i<$players['activeplayers']; $i++) { $timeonline=date("i:s",$players['players'][$i]['onlinetime']); $content .= "<tr><td align=center>".$players['players'][$i]['id']."</td><td align=center>".$players['players'][$i]['name']."</td><td align=center>".$players['players'][$i]['kills']."</td><td align=center>".$timeonline."</td></tr>"; } } else { $content .= "<td colspan='4' align='center'><b>Сервер в данный момент пуст!</b></td></tr>"; } $content .= "</table>"; print $content; ?> Для 1.6 Код <? /*---------------------------------------------------+ | Released under the terms & conditions of v2 of the | GNU General Public License. For details refer to | the included gpl.txt file or visit http://gnu.org +----------------------------------------------------+ | CS Stat Panel v.1.0-панель вывода статистики КС | Copyright © 2006 Pashtet ака Berezkin Pavel | Mail: pashtetHK@gmail.com +----------------------------------------------------+ | Скачали с w1rtel.blogspot.com +----------------------------------------------------*/ $sock = NULL; $errno = 0; $errstr = ''; $raw = ''; // raw data string $data = array(); // array of parsed data from a query $ping = 0; // response time from last command sent/recv $plrstr = 'U'; $halflife_version = 1; // 0 = unknown version $infostr = 'TSource Engine Query'.chr(0); $rulestr = 'V'; $pingstr = 'i'; $challenge = 'W'; function query_info($ip, $port) { global $infostr; if (!$ip) return FALSE; $start = _getmicrotime(); $raw = _sendquery($ip, $port, $infostr); $end = _getmicrotime(); if (!$raw) return FALSE; $data = array(); // query_info always resets the data array (so call this before other queries) if ($raw != '') { $data['ping'] = ceil(($end - $start) * 1000); // return the time (ms) it took for the packet to return (ping) $data['ip']=$ip; $data['port']=$port; $data=_parse_info_halflife1($raw); return $data; } return FALSE; } function _parse_info_halflife1($raw) { $raw = substr($raw, 5); // strip off response header bytes $data['int_ipport']=_getnullstr($raw); list($data['int_ip'], $data['int_port'])= explode(':', $data['int_ipport']); $data['name']= _getnullstr($raw); $data['map']= _getnullstr($raw); $data['gamedir']= _getnullstr($raw); $data['gamename']= _getnullstr($raw); $data['totalplayers']= _getbyte($raw); $data['maxplayers']= _getbyte($raw); $data['protocol']= _getbyte($raw); // 47 $data['servertype']= _getchar($raw); $data['serveros']= _getchar($raw); $data['serverlocked']= _getbyte($raw); $data['modrunning']= _getbyte($raw); $data['modurl']= $data['modrunning'] ? _getnullstr($raw) : ''; $data['modftp']= $data['modrunning'] ? _getnullstr($raw) : ''; _getnullstr($raw); $data['modver']= _getshort($raw) . '.' . _getshort($raw); $data['modsize']= _getlong($raw); $data['modserveronly']= _getbyte($raw); $data['modclientdll']= _getbyte($raw); return $data; } // The sub-class must always contain this method to query the active players list function query_players($ip, $port) { global $plrstr; $raw =_sendquery($ip, $port, $plrstr.query_challenge($ip, $port)); if (!$raw) return FALSE; if (!empty($raw)) { $raw = substr($raw, 5); // strip off response header bytes $data['activeplayers']= _getbyte($raw); $data['players']= array(); for ($i=1; $i <= $data['activeplayers']; $i++) { if ($raw == '') break; $data['players'][] = array('id'=> _getbyte($raw), 'name'=> _getnullstr($raw), 'kills'=> _getlong($raw), 'onlinetime'=> (int)_getfloat($raw)); } $data['activeplayers'] = count($data['players']); return $data; } return FALSE; } function query_ping($ip, $port) { global $pingstr; if (!$ip) return FALSE; $start = _getmicrotime(); $raw=_sendquery($ip, $port, $pingstr); $end = _getmicrotime(); if ($raw == '') { return FALSE; } else { return ($end - $start) * 1000; } } function _sendquery($ip, $port, $cmd) { global $DEBUG; if (!$port) $port = '27015'; $retry = 0; $oldmqr = get_magic_quotes_runtime(); $sock=_connectsocket($ip, $port); if (!$sock) { trigger_error("Failed to connect to socket on $ip:$port", E_USER_WARNING); return FALSE; } $packets = array(); // stores each packet seperately, so we can combine them afterwards $command = pack("N", 0xFFFFFFFF) . $cmd; # . pack('x'); $raw = ""; if ($oldmqr) set_magic_quotes_runtime(0); if ($DEBUG) print "DEBUG: Sending query to $ip:$port:\n" . hexdump($command) . "<br>"; fwrite($sock, $command, strlen($command)); $expected = 0; do { $packet = fread($sock, 1500); if (strlen($packet) == 0) { $retry++; if ($DEBUG) print "DEBUG: Resending query $ip:$port:\n" . hexdump($command) . "<br>"; fwrite($sock, $command, strlen($command)); $expected = 1; continue; } if ($DEBUG) print "DEBUG: Received " . strlen($packet) . " bytes from $ip:$port:\n" . hexdump($packet) . "<br>"; $header = substr($packet, 0, 4); // get the 4 byte header $ack = @unpack("N1split", $header); $split = sprintf("%u", $ack['split']); if ($DEBUG) print "DEBUG: ACK = " . sprintf("0x%X", $ack['split']) . "\n"; if ($split == 0xFeFFFFFF) { // we need to deal with multiple packets $packet = substr($packet, 4); // strip off the leading 4 bytes $header = substr($packet, 0, 5); // get the 'sub-header ack' $packet = substr($packet, 5); // strip off 32bit int ID, seq# and total packet# $info = @unpack("N1id/C1byte", $header); // we don't really care about the ID if ($DEBUG) printf("DEBUG: Sub ACK: %X (%08b)\n", $info['byte'], $info['byte']); if (!$expected) $expected = $info['byte'] & 0x0F; // now we know how many packets to receive $seq = (int)($info['byte'] >> 4); // get the sequence number of this packet $packets[$seq] = $packet; // store the packet $expected--; } elseif ($split == 0xFFFFFFFF) { $packets[0] = $packet; $expected = 0; } } while ($expected and $retry < maxretries()); fclose($sock); if ($oldmqr) set_magic_quotes_runtime(1); ksort($packets, SORT_NUMERIC); $raw = implode('', $packets); // glue the packets together to make our final data string return $raw; } function query_challenge($ip, $port) { global $challenge; if (!$ip) return FALSE; $raw = _sendquery($ip, $port, $challenge); if (!$raw) return FALSE; if (!empty($raw)) { return substr($raw,5,5); } return ""; } function maxretries() { return $retries >= 0 ? $conf['retries'] : 0; } function _connectsocket($ip, $port, $proto='udp') { global $DEBUG, $timeout, $errno, $errstr; if ($DEBUG) print "DEBUG: Opening socket to $ip:$port >>><br>"; $sock = @fsockopen("$proto://$ip", $port, $errno, $errstr); _set_timeout($timeout); return $sock; } function _set_timeout($seconds=5, $sock=NULL) { if (!$sock) $sock =& $sock; if (!$sock) return; if (function_exists('stream_set_timeout')) { // PHP >= 4.3.0 stream_set_timeout($sock, $seconds); } elseif (function_exists('socket_set_timeout')) { // this function is deprecated socket_set_timeout($sock, $seconds); } } // reads a null terminated string from the raw input function _getnullstr(&$raw) { if (empty($raw)) return ''; $end = strpos($raw, "\0"); // find position of first null byte $str = substr($raw, 0, $end); // extract the string (excluding null byte) $raw = substr($raw, $end+1); // remove the extracted string (including null byte) return $str; // return our str (no null byte) } // reads a character from the raw input function _getchar(&$raw) { return sprintf("%c", _getbyte($raw)); } // reads a byte from the raw input function _getbyte(&$raw) { if (empty($raw)) return ''; $byte = substr($raw, 0, 1); $raw = substr($raw, 1); return ord($byte); } // reads a short integer/word (2 bytes) from the raw input function _getshort(&$raw) { if (empty($raw)) return ''; $lo = _getbyte($raw); $hi = _getbyte($raw); $short = ($hi << 8) | $lo; return $short; } // reads a long integer (4 bytes) from the raw input function _getlong(&$raw) { if (empty($raw)) return ''; $lo = _getshort($raw); $hi = _getshort($raw); $long = ($hi << 16) | $lo; return $long; } function _getfloat(&$raw) { if (empty($raw)) return ''; $f = @unpack("f1float", $raw); $raw = substr($raw, 4); return $f['float']; } function _getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function _unpack($type, $data) { $ary = @unpack($type . '1value', $data); return $ary['value']; } function hexdump($string, $maxwidth=16) { $output = ""; $curwidth = 1; $bytes = array(); for ($i=0; $i<strlen($string); $i++) { $byte = ord($string[$i]); $bytes[] = $byte; $output .= sprintf("%02X ", $byte); if ($i+1 == strlen($string) and $curwidth != $maxwidth) { $padlen = ($maxwidth * 3) - (count($bytes) * 3); $output .= sprintf("%-{$padlen}s", " "); $curwidth = $maxwidth; } if ($curwidth >= $maxwidth) { $output .= " "; foreach ($bytes as $b) { if ($b <= 32 or $b >= 127) { $output .= "."; } else { $output .= chr($b); } } $bytes = array(); $output .= "\n"; $curwidth = 1; } else { $curwidth++; } } return $output; } $server= $_GET['ip']; $port= $_GET['port']; $data=query_info($server, $port); $players=query_players($server, $port); if ($data['serveros']=="l") { $data['serveros']="Linux"; } else { $data['serveros']="Windows"; } if ($data['serverlocked']=="0") { $data['serverlocked']="Нет"; } else { $data['serverlocked']="Да"; } if ($data['modrunning']=="0") { $data['modrunning']="Незагружен"; } else { $data['modrunning']="Загружен"; } //if ($data['modserveronly']){ if (file_exists("./maps/".$data['map'].".jpg")){ $show_map="<img src=\"maps/".$data['map'].".jpg\" width=\"150\" alt=\"Карта ".$data['map']."\" title=\"Карта ".$data['map']."\" />"; } else $show_map="<img src=\"maps/map_not_dir.jpg\" width=\"150\" alt=\"Карта не найдена\" title=\"Карта не найдена\" />"; //} else $show_map="<img src=\"/images/map/cs/map_not.jpg\" width=\"150\" alt=\"Нет соединения\" title=\"Нет соединения\" />"; $content .= " <table width=\"99%\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\"> <tr><td align=\"right\"><b>Имя сервера</b></td><td align=\"center\">".$data['name']."</td><td align=\"center\" rowspan=\"8\">".$show_map."</td></tr> <tr><td align=\"right\"><b>Карта</b></b></td><td align=\"center\">".$data['map']."</td></tr> <tr><td align=\"right\"><b>Игра</b></td><td align=\"center\">".$data['gamename']."</td></tr> <tr><td align=\"right\"><b>Адрес</b></td><td align=\"center\">".$data['int_ipport']."</td></tr> <tr><td align=\"right\"><b>Игроков / Макс</b></td><td align=\"center\">".$data['totalplayers']." / ".$data['maxplayers']."</td></tr> <tr><td align=\"right\"><b>Пинг</b></td><td align=\"center\">".round(query_ping($server, $port))."</td></tr> <tr><td align=\"right\"><b>Общий</b></td><td align=\"center\">".$data['serverlocked']."</td></tr> <tr><td align=\"right\"><b>MOD</b></td><td align=\"center\">".$data['modrunning']."</td></tr> </table><br /> "; $content .= "<table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center>№</td><td align=center>Имя</td><td align=center>Фрагов</td><td align=center>В игре</td></tr> "; if ($players['activeplayers'] > '0') { for ($i=0; $i<$players['activeplayers']; $i++) { $timeonline=date("i:s",$players['players'][$i]['onlinetime']); $content .= "<tr><td align=center>".$players['players'][$i]['id']."</td><td align=center>".$players['players'][$i]['name']."</td><td align=center>".$players['players'][$i]['kills']."</td><td align=center>".$timeonline."</td></tr>"; } } else { $content .= "<td colspan='4' align='center'><b>Сервер в данный момент пуст!</b></td></tr>"; } $content .= "</table>"; print $content; ?> |
The_Razer | ||
| 14.1.2010, 14:05 | Lgsl 5.6 + Клон Cs-onitoring.ru + Модуль ,веб Модуль, | LGSL 5,6 И дизайн от CS-monitoring.ru Еще добавлен модуль ЧТобы можно было мониторинг на свой сайт делать Установка Заходим в lgsl_files / lgsl_details.php И меняем папки где усербары на свои иначе их показывать не будет Далее импортируем файл SQL в базу данных и в lgsl_config прописываем Скрин + Файл НИже |
-=Bagum=-, Tr1sT | ||
| 11.11.2009, 11:26 | клон сайта cs-monitor.ru | Просто так выложил, че я его продавать буду шоле как некоторые дураки))) |
ziumer | ||
| 10.11.2009, 21:32 | клон сайта cs-monitor.ru | Выкладываю бесплатно для вас клон сайта cs-monitor.ru поддерживает тока cs 1.6 Установка 1.уопируем на главную страницу(в других случаяъ не пойдет адинка) 2.Экспортируем sql.sql файл в базу данных 3.Далее заходим в папку admin/md5_lib/ и выбираем mysql.php 4.меняем ходы до вашей базы Пароль для админки Monitor кто хочет можно в config.php поменять Мне спасибчики всее |
BIGDOG, Flesh, GODZILLA, Lavrik, S.R., SHLAKBAUM, Tr1sT, ziumer | ||
| 26.10.2009, 17:48 | Lgsl с рейтингом | Дай мне пожалуйста ссылочку в ЛС на LGSL by redacid сейчас дам!! Все я нашел что искал спс redacid! Вот полный модуль для lgsl от редасида где картинка как на My-cs.ru и html код) Заодим в файл lgsl_details.php,Все удаляем и вписываем Код <?php /*----------------------------------------------------------------------------------------------------------\ | | | [ LIVE GAME SERVER LIST ] [ © RICHARD PERRY FROM GREYCUBE.COM ] | | | | Released under the terms and conditions of the GNU General Public License Version 3 (http://gnu.org) | | | |------------------------------------------------------------------------------------------------------------- | [ EDITOR STYLE SETTINGS: LUCIDA CONSOLE, SIZE 10, TAB = 2 SPACES, BOLD GLOBALLY TURNED OFF ] | \-----------------------------------------------------------------------------------------------------------*/ //------------------------------------------------------------------------------------------------------------+ require "lgsl_class.php"; require "lgsl_files/lgsl_menu.php"; //------------------------------------------------------------------------------------------------------------+ $lookup = lgsl_lookup_id($_GET['s']); if (!$lookup) { $output .= "<div style='text-align:center'> {$lgsl_config['text']['mid']} </div>"; return; } $server = lgsl_query_cached($lookup['ip'], $lookup['q_port'], $lookup['c_port'], $lookup['s_port'], $lookup['type'], "sep"); $server = lgsl_sort_players($server); $server = lgsl_sort_extras($server); $misc = lgsl_server_misc($server); $server = lgsl_server_html($server); //------------------------------------------------------------------------------------------------------------+ // COLUMN NAMING AND ORDER TO SHOW ON THE PLAYER LIST $player_field_list = array ( "name" => "Name", "score" => "Score", "deaths" => "Deaths", "ping" => "Ping", "team" => "Team", "time" => "Time", "bot" => "Bot", "xp" => "XP", "enemy" => "Enemy", "goal" => "Goal", "honor" => "Honor", "kia" => "K.I.A.", "leader" => "Leader", "roe" => "R.O.E.", "skill" => "Skill", "skin" => "Skin", "stats" => "Stats", "cps" => "CPs", "heropoints" => "Hero Points", "rate" => "Rate", "uid" => "U-ID", "keyhash" => "Key Hash", //"pid" => "Player ID", //"pbguid" => "PB GUID", "" => "" ); //------------------------------------------------------------------------------------------------------------+ $output .= " <div style='text-align:center'>"; // $output .= " // <div style='".lgsl_bg(TRUE)."; width:90%; height:6px; overflow:hidden; text-align:center; margin:auto; border:1px solid'><br /></div> // <div style='height:20px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // STANDARD INFO $output .= " <table class='list_table' cellpadding='4' cellspacing='0' style='margin:auto'> <tr> <td colspan='3' class='list_row'> <b> {$server['s']['name']} </b> <br /><br /> <img src=lgsl_files/sig_".$_GET['s']."_1.png> <br> <textarea style='width: 500px; height: 40px;'> <a href='http://".$_SERVER['SERVER_NAME']."/index.php?s=".$_GET['s']."'><img src='http://".$_SERVER['SERVER_NAME']."/lgsl_files/sig_".$_GET['s']."_1.png'></a> </textarea> </td> </tr> <tr> <td class='list_row' style='text-align:center'> <table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['sts']} </b> </td> <td class='list_row''> {$misc['text_status']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['adr']} </b> </td> <td class='list_row'> {$server['b']['ip']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['cpt']} </b> </td> <td class='list_row'> {$server['b']['c_port']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['qpt']} </b> </td> <td class='list_row'> {$server['b']['q_port']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> Rating: </b> </td> <td class='list_row'> {$lookup['rating']} </td> </tr> </table> </td> <td class='list_row'> <table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['typ']} </b> </td> <td class='list_row'> {$server['b']['type']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['gme']} </b> </td> <td class='list_row'> {$server['s']['game']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['map']} </b> </td> <td class='list_row'> {$server['s']['map']} </td> </tr> <tr style='".lgsl_bg()."'> <td class='list_row'> <b> {$lgsl_config['text']['plr']} </b> </td> <td class='list_row'> {$server['s']['players']} / {$server['s']['playersmax']} </td> </tr> </table> </td> <td class='list_row' style='text-align:center'> <div style='background-image:url({$misc['image_map']}); background-repeat:no-repeat; background-position:center'> <img alt='' style='border:none' src='{$misc['image_map_password']}' title='{$misc['text_type_game']}' /> </div> </td> </tr> </table> <div style='height:20px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // $output .= " // <div style='".lgsl_bg(TRUE)."; width:90%; height:6px; overflow:hidden; text-align:center; margin:auto; border:1px solid'><br /></div> // <div style='height:20px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // PLAYER INFO if (!$server['p']) { $output .= " <table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'> <tr style='".lgsl_bg(FALSE)."'> <td class='list_row'> {$lgsl_config['text']['npi']} </td> </tr> </table> <div style='height:20px'><br /></div>"; } else { $used_field_list = array(); foreach ($player_field_list as $field => $title) { foreach ($server['p'] as $player) { if (isset($player[$field])) { $used_field_list[$field] = $title; } } } $output .= " <table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'> <tr style='".lgsl_bg(FALSE)."'>"; foreach ($used_field_list as $field => $title) { $output .= " <td class='list_row'> <b>{$title}</b> </td>"; } $output .= " </tr>"; foreach ($server['p'] as $player_key => $player) { $output .= " <tr style='".lgsl_bg()."'>"; foreach ($used_field_list as $field => $title) { $output .= "<td class='list_row'> {$player[$field]} </td>"; } $output .= " </tr>"; } $output .= " </table> <div style='height:20px'><br /></div>"; } //------------------------------------------------------------------------------------------------------------+ //$output .= " //<div style='".lgsl_bg(TRUE)."; width:90%; height:6px; overflow:hidden; text-align:center; margin:auto; border:1px solid'><br /></div> // <div style='height:20px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // EXTRA INFO /* if (!$server['e']) { $output .= " <table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'> <tr style='".lgsl_bg(FALSE)."'> <td class='list_row'> {$lgsl_config['text']['nei']} </td> </tr> </table> <div style='height:20px'><br /></div>"; } else { $output .= " <table class='list_table' cellpadding='4' cellspacing='2' style='margin-left:auto; margin-right:auto;'> <tr style='".lgsl_bg(TRUE)."'> <td class='list_row'> <b>Setting</b> </td> <td class='list_row'> <b>Value </b> </td> </tr>"; foreach ($server['e'] as $field => $value) { $color = lgsl_bg(); $output .= " <tr> <td class='list_row'> {$field} </td> <td class='list_row'> {$value} </td> </tr>"; } $output .= " </table> <div style='height:20px'><br /></div>"; } */ //------------------------------------------------------------------------------------------------------------+ //$output .= " //<div style='".lgsl_bg(TRUE)."; width:90%; height:6px; overflow:hidden; text-align:center; margin:auto; border:1px solid'><br /></div> //<div style='height:20px'><br /></div>"; $output .= " </div>"; //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //------ PLEASE MAKE A DONATION OR SIGN THE GUESTBOOK AT GREYCUBE.COM IF YOU REMOVE THIS CREDIT ---------------------------------------------------------------------------------------------------+ //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ?> Далее идем в lgsl_sig.php,Все удоляем и пишем Код <?php require "lgsl_class.php"; //------------------------------------------------------------------------------------------------------------+ $lookup = lgsl_lookup_id($_GET['s']); if (!$lookup) { $output .= "<div style='text-align:center'> {$lgsl_config['text']['mid']} </div>"; return; } $server = lgsl_query_cached($lookup['ip'], $lookup['q_port'], $lookup['c_port'], $lookup['s_port'], $lookup['type'], "sep"); $server = lgsl_sort_players($server); $server = lgsl_sort_extras($server); $misc = lgsl_server_misc($server); $server = lgsl_server_html($server); //------------------------------------------------------------------------------------------------------------+ // COLUMN NAMING AND ORDER TO SHOW ON THE PLAYER LIST $player_field_list = array ( "name" => "Name", "score" => "Score", "deaths" => "Deaths", "ping" => "Ping", "team" => "Team", "time" => "Time", "bot" => "Bot", "xp" => "XP", "enemy" => "Enemy", "goal" => "Goal", "honor" => "Honor", "kia" => "K.I.A.", "leader" => "Leader", "roe" => "R.O.E.", "skill" => "Skill", "skin" => "Skin", "stats" => "Stats", "cps" => "CPs", "heropoints" => "Hero Points", "rate" => "Rate", "uid" => "U-ID", "keyhash" => "Key Hash", //"pid" => "Player ID", //"pbguid" => "PB GUID", "" => "" ); // Set the content-type header('Content-type: image/png'); // The text to draw $server_name = strtoupper($server['s']['name']); $server_status = $misc['text_status']; $server_ip = strtoupper($server['b']['ip']); $server_port = $server['b']['c_port']; $server_type = $server['b']['type']; $server_game = $server['s']['game']; $server_map = $server['s']['map']; $server_players = $server['s']['players']; $server_max = $server['s']['playersmax']; $server_rate = $lookup['rating']; $server_icongame = imagecreatefromgif($misc['icon_game']); if (($pos = strrpos($misc['image_map'], ".")) === FALSE) echo "Error - file doesn't have a dot."; else { $extension = substr($misc['image_map'], $pos + 1); //echo $extension; } if ($extension == 'gif') { $server_imagemap = imagecreatefromgif($misc['image_map']); } if ($extension == 'jpg') { $server_imagemap = imagecreatefromjpeg($misc['image_map']); } list($map_width, $map_height) = getimagesize($misc['image_map']); // Create the image $im_h = 300; $im_w = 300; $im = imagecreatetruecolor($im_w, $im_h); // Create some colors $white = imagecolorallocate($im, 700, 255, 255); $grey = imagecolorallocate($im, 200, 223, 231); $ramka_cl = imagecolorallocate($im, 200, 1, 0); $text_cl = imagecolorallocate($im, 20, 77, 0); imagefilledrectangle($im, 0, 0, 300, 300, $grey); // Replace path by your own font path $font = 'comic.ttf'; // Add some shadow to the text //imagettftext($im, 142, 0, 11, 21, $grey, $font, $server_name); // Add the text //imagelayereffect($im, IMG_EFFECT_REPLACE); //imagelayereffect($im, IMG_EFFECT_OVERLAY); $i= -300; while ($i <= 300) { //imageline($im, $i+300,0,$i,300,$white); imageline($im, $i,300,$i+300,300,$white); $i=$i+5; } imagecopyresampled($im, $server_imagemap, 50, 40, 0, 0, 200, 200, $map_width, $map_height); imagecopyresampled($im, $server_icongame, 50, 35, 0, 0, 16, 16, 16, 16); //imagettftext($im, 8, 30, 80, 60, $grey, $font, $server_name); imagettftext($im, 10, 0, 20, 260, $text_cl, $font, $server_name); imagettftext($im, 10, 0, 20, 290, $text_cl, $font, $server_ip.':'.$server_port); //imagettftext($im, 20, 0, 190, 290, $black, $font, $server_game); imagettftext($im, 10, 0, 70, 50, $text_cl, $font, 'Rating: '.$server_rate); imagettftext($im, 10, 1, 190, 230, $text_cl, $font, $server_map); imagettftext($im, 10, 1, 200, 290, $text_cl, $font, 'Players: '.$server_players.'/'.$server_max); //imagecopyresampled($im, $server_imagemap, 662, 2, 0, 0, 16, 16, $map_width, $map_height); //Ramka imageline($im, 0,0,$im_w-0,0,$ramka_cl); imageline($im, 0,$im_h-1,$im_w-0,$im_h-1,$ramka_cl); imageline($im, 0,0,0,$im_h,$black); imageline($im, $im_w-1,0,$im_w-1,$im_h,$ramka_cl); // Using imagepng() results in clearer text compared with imagejpeg() imagepng($im); imagedestroy($im); ?> |
Flesh | ||
| 11.10.2009, 16:38 | Lgsl с рейтингом | redacid скажи как поставить чтобы было типо как у тебя написано На картинке сервера имя народ и тп и ниже html ссылка !!! Я скачал lgsl redacid но тама нету этого вот вам новая версия lgsl))) |
Flesh | ||