Мониторинг для кс 1.6
|
GReshH1k |
Опубликовано 04.01.2014 17:19
|
Новичок
Сообщений: 7
Зарегистрирован: 04.01.2014 15:51
|
Ребята подскажите какой плагин поставить что бы была панель сервера как в php fusion 6 cs_monitoring_panel, только мне надо для 7 версии
|
|
|
|
Vova |
Опубликовано 04.01.2014 18:29
|
Ветеран
Сообщений: 877
Зарегистрирован: 05.08.2011 11:53
|
GReshH1k,
GeSHi: PHP function cs_online($ip, $port, $request) { $fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1); if (!$fp) { return FALSE; } if (($request == "settings" || $request == "players")) { $challenge_code = "\xFF\xFF\xFF\xFF\x57"; $buffer = fread($fp, 4096); if (!trim($buffer)) { fclose($fp); return FALSE; } $challenge_code = substr($buffer, 5, 4); } if ($request == "info") { $challenge = "\xFF\xFF\xFF\xFFdetails\x00"; } if ($request == "players") { $challenge = "\xFF\xFF\xFF\xFFplayers\x00"; } if ($request == "settings") { $challenge = "\xFF\xFF\xFF\xFFrules\x00"; } $buffer = fread($fp, 4096); if (!$buffer) { fclose($fp); return FALSE; } if ($request == "settings") { $second_packet = fread($fp, 4096); if (strlen($second_packet) > 0) { if ($reverse_check[0] == "1") { $tmp = $buffer; $buffer = $second_packet; $second_packet = $tmp; } $buffer = substr($buffer, 13); $second_packet = substr($second_packet, 9); $buffer = trim($buffer.$second_packet); } else { } } else { } if (!trim($buffer)) { return FALSE; } if ($request == "info") { $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5; $data['gamemod'] = $tmp[3]; $data['hostname'] = $tmp[1]; $data['mapname'] = $tmp[2]; $data['players'] = ord($buffer[$place]); $data['maxplayers'] = ord($buffer[$place + 1]); $data['password'] = ord($buffer[$place + 5]); $data['datatype'] = $buffer[0]; $data['version'] = ord($buffer[$place + 2]); $data['description'] = $tmp[4]; $data['server_type'] = $buffer[$place + 3]; $data['server_os'] = $buffer[$place + 4]; $data['server_secure'] = ord($tmp[14]); $data['server_bots'] = ord($tmp[15]); $data['botplayers'] = 0; if ($data['datatype'] != "m") { return FALSE; } return $data; } if ($request == "players") { $player_number = 0; $position = 2; do { $player_number++; $player[$player_number]['id'] = ord($buffer[$position]); $position ++; while($buffer[$position] != "\x00" && $position < 4000) { $player[$player_number]['name'] .= $buffer[$position]; $position ++; } $player[$player_number]['score'] = (ord($buffer[$position + 1])) + (ord($buffer[$position + 2]) * 256) + (ord($buffer[$position + 3]) * 65536) + (ord($buffer[$position + 4]) * 16777216); if ($player[$player_number]['score'] > 2147483648) { $player[$player_number]['score'] -= 4294967296; } $time = substr($buffer, $position + 5, 4); if (strlen($time) < 4) { return FALSE; } $player[$player_number]['time'] = date("H:i:s", $time); $position += 9; } while ($position < strlen($buffer)); return $player; } if ($request == "settings") { for ($i=1; $i<count($rawdata); $i=$i+2) { $setting[$rawdata[$i]] = $rawdata[$i+1]; } return $setting; } }} $data = cs_online("93.171.173.73", "27015", "info"); $players += $data['players']-$data['botplayers']; $maxplayers += $data['maxplayers']-$data['botplayers']; echo "<b>IP:Port:</b> ".$data['hostname']; echo "<br><b>Игроков:</b> ".($data['players']-$data['botplayers'])."/".($data['maxplayers']-$data['botplayers']); echo "<br><b>Карта:</b> ".$data['mapname']; //echo "<br><img src='/uploads/images/css/".$data['mapname'].".jpg'>"; $datap = cs_online("93.171.173.73", "27015", "players"); echo "<br><br>"; foreach ($datap as $value) { echo $value['id']." - <b>".$value['name']."</b> - ".$value['score']."<br>"; } $data = cs_online("93.171.173.73", "27025", "info"); $players += $data['players']-$data['botplayers']; $maxplayers += $data['maxplayers']-$data['botplayers']; echo "<br><br><b>IP:Port:</b> ".$data['hostname']; echo "<br><b>Игроков:</b> ".($data['players']-$data['botplayers'])."/".($data['maxplayers']-$data['botplayers']); echo "<br><b>Карта:</b> ".$data['mapname']; //echo "<br><img src='/uploads/images/css/".$data['mapname'].".jpg'>"; $datap = cs_online("93.171.173.73", "27025", "players"); echo "<br><br>"; foreach ($datap as $value) { echo $value['id']." - <b>".$value['name']."</b> - ".$value['score']."<br>"; } $data = cs_online("93.171.173.73", "27050", "info"); $players += $data['players']-$data['botplayers']; $maxplayers += $data['maxplayers']-$data['botplayers']; echo "<br><br><b>IP:Port:</b> ".$data['hostname']; echo "<br><b>Игроков:</b> ".($data['players']-$data['botplayers'])."/".($data['maxplayers']-$data['botplayers']); echo "<br><b>Карта:</b> ".$data['mapname']; //echo "<br><img src='/uploads/images/css/".$data['mapname'].".jpg'>"; $datap = cs_online("93.171.173.73", "27050", "players"); echo "<br><br>"; foreach ($datap as $value) { echo $value['id']." - <b>".$value['name']."</b> - ".$value['score']."<br>"; } echo "<br><br><b>Общий онлайн:</b> ".$players."/".$maxplayers;
Добавлено за 0.048 секунд, используя GeSHi 1.0.8.10
Панель для 7 протокола 1.6.
Вместо 93.171.173.73 используеш свой айпи. И порт.
Фото карт залить в папку /uploads/images/css/. И забрать комменты строчек. И добавить file_exists.
Пишеш как код в панель и все.
|
|
|
|
GReshH1k |
Опубликовано 05.01.2014 09:38
|
Новичок
Сообщений: 7
Зарегистрирован: 04.01.2014 15:51
|
А как сделать что бы эта понель обновлялась а то пишет что 0 игроков
Объединено 05.01.2014 09:47:
Ребята помогите у меня вообще что то не работает вот сайт [url]GoldenServer.ru [/url] там в левой панели посмотрите в чем ощибка
Изменил(а) GReshH1k, 05.01.2014 09:47
|
|
|
|
Vova |
Опубликовано 05.01.2014 12:44
|
Ветеран
Сообщений: 877
Зарегистрирован: 05.08.2011 11:53
|
GReshH1k, GeSHi: PHP $data = cs_online("93.171.173.73", "27015", "info"); $players += $data['players']-$data['botplayers']; $maxplayers += $data['maxplayers']-$data['botplayers']; echo "<b>IP:Port:</b> ".$data['hostname']; echo "<br><b>Игроков:</b> ".($data['players']-$data['botplayers'])."/".($data['maxplayers']-$data['botplayers']); echo "<br><b>Карта:</b> ".$data['mapname']; //echo "<br><img src='/uploads/images/css/".$data['mapname'].".jpg'>";
Добавлено за 0.019 секунд, используя GeSHi 1.0.8.10
замени 93.171.173.73 на 46.174.49.21, и порт 27015 на 27242.
|
|
|
|
GReshH1k |
Опубликовано 05.01.2014 13:27
|
Новичок
Сообщений: 7
Зарегистрирован: 04.01.2014 15:51
|
С этим кодом у меня вообще панель не работает.
|
|
|
|
Vova |
Опубликовано 05.01.2014 13:39
|
Ветеран
Сообщений: 877
Зарегистрирован: 05.08.2011 11:53
|
GReshH1k, ты издеваешся.
GeSHi: PHP function cs_online($ip, $port, $request) { $fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1); if (!$fp) { return FALSE; } if (($request == "settings" || $request == "players")) { $challenge_code = "\xFF\xFF\xFF\xFF\x57"; $buffer = fread($fp, 4096); if (!trim($buffer)) { fclose($fp); return FALSE; } $challenge_code = substr($buffer, 5, 4); } if ($request == "info") { $challenge = "\xFF\xFF\xFF\xFFdetails\x00"; } if ($request == "players") { $challenge = "\xFF\xFF\xFF\xFFplayers\x00"; } if ($request == "settings") { $challenge = "\xFF\xFF\xFF\xFFrules\x00"; } $buffer = fread($fp, 4096); if (!$buffer) { fclose($fp); return FALSE; } if ($request == "settings") { $second_packet = fread($fp, 4096); if (strlen($second_packet) > 0) { if ($reverse_check[0] == "1") { $tmp = $buffer; $buffer = $second_packet; $second_packet = $tmp; } $buffer = substr($buffer, 13); $second_packet = substr($second_packet, 9); $buffer = trim($buffer.$second_packet); } else { } } else { } if (!trim($buffer)) { return FALSE; } if ($request == "info") { $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5; $data['gamemod'] = $tmp[3]; $data['hostname'] = $tmp[1]; $data['mapname'] = $tmp[2]; $data['players'] = ord($buffer[$place]); $data['maxplayers'] = ord($buffer[$place + 1]); $data['password'] = ord($buffer[$place + 5]); $data['datatype'] = $buffer[0]; $data['version'] = ord($buffer[$place + 2]); $data['description'] = $tmp[4]; $data['server_type'] = $buffer[$place + 3]; $data['server_os'] = $buffer[$place + 4]; $data['server_secure'] = ord($tmp[14]); $data['server_bots'] = ord($tmp[15]); $data['botplayers'] = 0; if ($data['datatype'] != "m") { return FALSE; } return $data; } if ($request == "players") { $player_number = 0; $position = 2; do { $player_number++; $player[$player_number]['id'] = ord($buffer[$position]); $position ++; while($buffer[$position] != "\x00" && $position < 4000) { $player[$player_number]['name'] .= $buffer[$position]; $position ++; } $player[$player_number]['score'] = (ord($buffer[$position + 1])) + (ord($buffer[$position + 2]) * 256) + (ord($buffer[$position + 3]) * 65536) + (ord($buffer[$position + 4]) * 16777216); if ($player[$player_number]['score'] > 2147483648) { $player[$player_number]['score'] -= 4294967296; } $time = substr($buffer, $position + 5, 4); if (strlen($time) < 4) { return FALSE; } $player[$player_number]['time'] = date("H:i:s", $time); $position += 9; } while ($position < strlen($buffer)); return $player; } if ($request == "settings") { for ($i=1; $i<count($rawdata); $i=$i+2) { $setting[$rawdata[$i]] = $rawdata[$i+1]; } return $setting; } }} $data = cs_online("46.174.49.21", "27242", "info"); $players += $data['players']-$data['botplayers']; $maxplayers += $data['maxplayers']-$data['botplayers']; echo "<b>IP:Port:</b> ".$data['hostname']; echo "<br><b>Игроков:</b> ".($data['players']-$data['botplayers'])."/".($data['maxplayers']-$data['botplayers']); echo "<br><b>Карта:</b> ".$data['mapname']; //echo "<br><img src='/uploads/images/css/".$data['mapname'].".jpg'>"; echo "<br><br><b>Общий онлайн:</b> ".$players."/".$maxplayers;
Добавлено за 0.035 секунд, используя GeSHi 1.0.8.10
Все работает.
|
|
|
|
GReshH1k |
Опубликовано 05.01.2014 13:58
|
Новичок
Сообщений: 7
Зарегистрирован: 04.01.2014 15:51
|
Все равно пишет что 0 игроков хотя на сервере есть игроки
|
|
|
|
Vova |
Опубликовано 05.01.2014 14:18
|
Ветеран
Сообщений: 877
Зарегистрирован: 05.08.2011 11:53
|
GReshH1k, В ЛС. Отписал.
|
|
|