Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Мониторинг сервера
GAMEINATOR forums > S.T.A.L.K.E.R. > S.T.A.L.K.E.R. Архив > S.T.A.L.K.E.R.: Общий раздел (архивные темы 2007-2014)
Страницы: 1, 2
segal
сделал основную работу, а вы уж дизайн сами мастерите...

Код
<?php
$address="localhost";
$port="5447";

$socket = fsockopen(("udp://" . $address),$port,$errno,$errdesc,$maxwait);
$query = "\xFE\xFD\x00\xE5\xA9\x2A\x02\xFF\xFF\xFF\x01";

fwrite($socket,$query);
@socket_set_timeout($socket, 2);
$reply = @fread($socket, 2048);
fclose($socket);
/*
$Infoarray = explode(chr(0), $reply);
echo "<pre>";
print_r($Infoarray);
echo "</pre>";
*/
if($reply != '')
{
    $Infoarray = explode(chr(0), $reply);
    $querysuccess = true;
    $servername = $Infoarray[4];
    $serverversion = $Infoarray[8];
    $numplayers = $Infoarray[10];
    $maxplayers = $Infoarray[12];
    $gametype = $Infoarray[14];
    $players = "
    <td wight=100% nowrap align=center>$Infoarray[74]</td>\n
    <td wight=100% nowrap align=center>$Infoarray[78]</td>\n
    <td wight=100% nowrap align=center>$Infoarray[82]</td>\n
    <td wight=100% nowrap align=center>$Infoarray[86]</td>\n
    <td wight=100% nowrap align=center>$Infoarray[90]</td>\n
    ";
};

echo "
Сервер: $servername<br>
Версия: $serverversion<br>
Сейчас на сервере: $numplayers/$maxplayers<br>
Режим: $gametype<br>
Список игроков:<br>

<table border=0 wight=100 width=100% bgcolor=000000 cellpadding=1 cellspacing=1>\n
    <tr bgcolor=white align=center>\n
 <td wight=100% nowrap>player_</td>\n
 <td wight=100% nowrap>score_</td>\n
 <td wight=100% nowrap>deaths_</td>\n
 <td wight=100% nowrap>skill_</td>\n
 <td wight=100% nowrap>team_</td>\n
    </tr>\n
    <tr bgcolor=white>\n
 $players
    </tr>\n
</table>";
?>
Mechanic
Гмм...на основе этого можно сделать прожку-пингер спокойно..)
В некоторых мп-играх подобные пакеты сжимаются в бинарку или еще хуже, энкрипт.

+1 в репу.
segal
подходим, не стесняемся, ставим плюсы biggrin.gif
Mechanic
segal, можеш повторить этотже трюк, но на делфи?
Я с байтами не возился, незнаю как объеденить в строку их...
AlexIT
Респект!! Сейчас потестим, сделаю страничку со списком серверов и буду ее пополнять, если кому нужно - дам ссылку.. wink.gif

Was added in 6 minutes 39 seconds:

Мм, что то не пашет ]]>http://stalker.sanfm.ru/]]>
Ты на какой версии PHP его тестил? smile.gif
segal
php 5.1.6
к дельфи близко неподходил, только msvc++
AlexIT
На 5.1.4 и 4.4.2 не пашет, странно, ошибок никаких не выводит вообще..
Mechanic
segal, Если можно, буду благодарен за примерчик и на msvc, я с ним тоже работал немного.
KoMMyHuCT
могу на дельфи забацать
Mechanic
KoMMyHuCT, Отлично, попробуй. smile.gif
_777_
спасибо за инфу
]]>вот]]> наваял прогу проверки сервера и подключения по лану
Mechanic
Хотелось-бы увидеть кишки, и метод работы с пакетами.
destiny
Код
<?php
//settings
define("STSERVER","83.172.18.162");
define("STPORT","5447");
?>
<html>
<head>
<title>Stalker Server Monitor v0.6b</title>
</head>
<body>
<h1 align=center>Stalker Server Monitor</h1>
<h3 align=center><?=STSERVER.':'.STPORT ?></h3>
<table width=40% align=center>
<tr><td aling=center><b>Players</b></td><td align=center><b>Map</b></td><td align=center><b>Gametype</b></td></tr>
<?php
/*
here will be cash check
*/
//
$fp = @fsockopen("udp://".STSERVER, STPORT, $errno, $errstr, 1);
if (!$fp) {
echo"Can't connect to server (".STSERVER.":".STPORT.")";die;
}
fputs($fp,"\xFE\xFD\x00\xFB\xD8\x07\x01\xFF\xFF\xFF");
@socket_set_timeout($socket, 2);
$buffer = trim(fread($fp, 2048));
fclose($fp);
//
$ssquery = explode("\x00",$buffer);
$mpl=$ssquery[9]; $npl=$ssquery[7];
$mapn=$ssquery[3]; $hostn=$ssquery[1];
$gtype=$ssquery[11];
$ssquery=str_replace("\x00","|",$buffer);
$ssquery=explode("artefacts_",$ssquery);
$scores=$ssquery[1]; $ssquery=explode("||",$scores);
$teamscores=$ssquery[count($ssquery)-1];
unset($ssquery[count($ssquery)-1]); unset($ssquery[count($ssquery)-1]);
//
echo'<tr><td aling=center>'.$npl.'/'.$mpl.'</td><td align=center>'.$mapn.'</td><td align=center>'.$gtype.'</td></tr>';
echo'</table><table width=60% align=center>';
#echo'<tr><td colspan=4 align=center><h5>PLAYERS LIST</h5></td></tr>';
echo'<tr><td align=center><b>Name</b></td><td align=center><b>Score</b></td><td align=center><b>Deaths</b></td><td align=center><b>Skill</b></td><td align=center><b>Team</b></td></tr>';
foreach ($ssquery as $keys=>$player) {
if($keys=="0"){
continue;
}
$player = explode('|',$player);
if($player[4]=="1"){$player[4]="Freedom";}
if($player[4]=="2"){$player[4]="Mercs";}
if($player[5]=="1"){$player[4]="Spectator";}
?>
<tr><td align=center><?=$player[0]?></td><td align=center><?=$player[1]?></td><td align=center><?=$player[2]?></td><td align=center><?=$player[3]?></td><td align=center><?=$player[4]?></td></tr>
<?php } ?>
</table>
<h5 align=center>by Drake 2007 Tomsk</h5>
</body>
</html>

Мой вариант. Идея с разбиением по нулевому символу взята у segala, остальное все свое. Работает без сбоев при teamdeathmatch. На остальных не тестировалась.
Shot
Молодцы, а текущию карту он не показывает?
destiny
Показывает. Счас работаю над новой версией с поддержкой дезматча и кеширования.
BoGuS
Вот моя версия программки на делфи... ]]>http://www.filekeeper.org/download/a188-bo...ogus/st_mon.exe]]> это пока только наброски, планирую сделать что-то наподобие HLSW, ноб разумееться многих фич там небудет т.к. в сталкере много чего нету...
BoGuS
Вот немного доделал программку... ]]>http://www.filekeeper.org/download/a188-bo...ogus/st_mon.rar]]> но есть 2 недоработки:
1) Нельзя получить инфу 2й раз или инфу с другого сервера
2) Нельзя подключиться к серверу с программы, он просто запускает игру...
AlexIT
Народ, а кто то php скрипт тестил, как у вас - работает?
BoGuS
Я тестил, работает нормально.
BoGuS
Жаль что тут нельзя редактировать свои посты sad.gif программа теперь нормально запускает сталкера + нету начальных заставок при запуске. ]]>http://www.filekeeper.org/download/a188-bo...ogus/st_mon.rar]]>
SayMyName
Цитата
Жаль что тут нельзя редактировать свои посты

Есть возможность редактирования и удаления постов втечении 15 минут.
BoGuS
Ну я, к сожалению, в течении 15 минут не успеваю новые версии делать. smile.gif
AlexIT
А у меня пхп скрипт никак не хочет работать.. dry.gif
BoGuS
У меня работают оба отлично. А программа моя работает?
segal
BoGuS, маладец. поставил бы плюсик, нда незнаю как (под аватаркой репутация: [-] [+] отражается как текст). наверное опера во всём виновата.

добавь ещё выподающий список серверов (можно сохранять в ТХТ файл).
BoGuS
Спсб. smile.gif
segal, насколько я знаю, репутацию добавлять можно только достигнув 150 постов. smile.gif

Список серверов пока делать небуду т.к. есть глюк: если уже подключился к одному серверу и мониторишь его, то к другому подключиться не выйдет. Как только исправлю это будет список серверов + попробую сделать поиск серверов в локальной сети.
segal
ха smile.gif 14 месяцев уже как загеран, а всего лищь 24-й пост пишу biggrin.gif

на games.cnews.ru я вообще только недавно первый пост написал, хотя регался ещё в далёком 2005-м весной biggrin.gif

p.s. поставте мне ещё плюсов за то, что я такой крутой формумчанен smile.gif
SayMyName
segal,
Пиши по теме и не флуди.
segal
не мешай, мне ещё 125 постов осталось, потом плюсы раздавать буду smile.gif

p.s/ bogus, ты на дельфях писал своё творение?
BoGuS
Новая версия программы по той же ссылке. Теперь можно просматривать список игроков онлайн.

segal, да, на делфи.
Neo][
Цитата
не мешай, мне ещё 125 постов осталось, потом плюсы раздавать буду smile.gif

segal, если это была шутка, то неудачная и не к месту. Предупреждение за нарушение правил.
segal
оффтоп №2: Neo][ вот ты действительно оффтопишь.
Модеры: стерите этот пост и 30-й (чтобы глаза немазолили), парень юмора непонимает(причём 28-й пост сам по себе небыл оффтопом, а со смыслом) и предупреждениями расскидывается.
Neo][
тест
helloween
а можно штобы вся статистика сохранялась а ? былоб круто biggrin.gif

<?php
$address="localhost";
$port="5447";

$socket = fsockopen(("udp://" . $address),$port,$errno,$errdesc,$maxwait);
$query = "\xFE\xFD\x00\xE5\xA9\x2A\x02\xFF\xFF\xFF\x01";

fwrite($socket,$query);
@socket_set_timeout($socket, 2);
$reply = @fread($socket, 2048);
fclose($socket);
/*
$Infoarray = explode(chr(0), $reply);
echo "<pre>";
print_r($Infoarray);
echo "</pre>";
*/
if($reply != '')
{
$Infoarray = explode(chr(0), $reply);
$querysuccess = true;
$servername = $Infoarray[4];
$serverversion = $Infoarray[8];
$numplayers = $Infoarray[10];
$maxplayers = $Infoarray[12];
$gametype = $Infoarray[14];
$players = "
<td wight=100% nowrap align=center>$Infoarray[74]</td>\n
<td wight=100% nowrap align=center>$Infoarray[78]</td>\n
<td wight=100% nowrap align=center>$Infoarray[82]</td>\n
<td wight=100% nowrap align=center>$Infoarray[86]</td>\n
<td wight=100% nowrap align=center>$Infoarray[90]</td>\n
";
};

echo "
Сервер: $servername<br>
Версия: $serverversion<br>
Сейчас на сервере: $numplayers/$maxplayers<br>
Режим: $gametype<br>
Список игроков:<br>

<table border=0 wight=100 width=100% bgcolor=000000 cellpadding=1 cellspacing=1>\n
<tr bgcolor=white align=center>\n
<td wight=100% nowrap>player_</td>\n
<td wight=100% nowrap>score_</td>\n
<td wight=100% nowrap>deaths_</td>\n
<td wight=100% nowrap>skill_</td>\n
<td wight=100% nowrap>team_</td>\n
</tr>\n
<tr bgcolor=white>\n
$players
</tr>\n
</table>";
?>
helloween
и статистику немного криво кажет допустим на серве 4 человека а показывает што 1
BoGuS
А программой моей попробуй, моей программой должно нормально отображаться. (у меня просто в сети нету сервера сталкера, а в инете сервера я невижу)
helloween
не прогой ненадо нужна WEB статистика

Was added in 1 minute 6 seconds:

хорошая WEB
helloween
плиз зделайте ктонить WEB статистику sad.gif
BoGuS
Там же 2 варианта веб-статистики, обе отлично работают... как говориться, необходимы только драйвера hands.sys и brain.dll. biggrin.gif
helloween
1вая php 2я html мне в php кактолутше ну аниже не сохраняют буду благодарен если будут еще какии идеи
segal
helloween. статистику вообще-то по логам делают.
сервер пишет лог, там кто кого и из чего убил, и сколько раз.
для этого надо парсер делать, только кто его умеет делать?!
а тут мы монитор обсуждаем/разрабатываем.

p.s. хотел написать на msvc++ монитор, да виснет ПО при выводе инфы в таблицу smile.gif
BoGuS
segal, а ты делфи знаешь? Можем доработать мою программу-монитор серверов и сделать парсер логов...
gangsta
Поцы, помогите по локалке не могу играть!
кто знает чё зделать надо??

купил с.т.а.л.к.а. (лицензию, (патч поставил 1.001))Дал поцанам по локалке скопировать (с no cd)!
А по сети не можем поиграть!!
вот лого:

Клиент: Соединение с 10.0.0.26...
- IPureClient : created on port 5446!
* HOST #1: testers_mp_pool

! client : connection rejected - <Data verification failed. Cheater?>
cl_netADR_Server 1
cl_netADR_Device 1
cl_netCORE 1
* phase time: 14212 ms
* phase cmem: 86505 K
* [win32]: free[1739824 K], reserved[26836 K], committed[330428 K]
* [ D3D ]: textures[5958 K]
* [x-ray]: crt heap[86505 K], process heap[7947 K], game lua[2185 K], engine lua[214 K], render[0 K]
* [x-ray]: economy: strings[720 K], smem[0 K]
! Failed to start client. Check the connection or level existance.
- Destroying level
BoGuS
ЕХЕ файлы отличаюсться. Чтобы ты смог с ними играть, тебе тоже надо пропатчить игру или же ставте выделенный сервер.
segal
Модераторы(в часности "Киану Ривс") фас на gangsta, он оффтопит biggrin.gif

BoGuS, ты не поверишь. дельфи для меня сложнее, чем виси++, да и парсить не умею пока ещё.

to ALL: порт для снятия инфы должен быть "порт игры + 2", то есть порт 5445 для коннекта людей к игре, добавляем 2 и получаем порт 5447 для снятия статы. А то многие незнают и ставят порт 5445.
SayMyName
gangsta,
Тебе сюда.
Неужели нельзя внимательно посмотреть название темы?
BoGuS
S.T.A.L.K.E.R. Monitor v.2.0
Программа вредназначена для мониторинга списка серверов S.T.A.L.K.E.R.



По вопросам добаваления ваших серверов в списки серверов от www.bogus.org.ua ICQ# 195430357.

В данной версии реализовано:
- загрузка списков серверов с www.bogus.org.ua и www.stalkerin.gameru.net
- возможность добавления серверов в свой список
- возможность просмотра информации о серверах
- возможность просмотра списка игроков на серверах
- возможность подключения прямо к серверам из программы

В следующей версии будет:
- мультиязычная поддержка
- получение списка серверов в локальной сети
- поулчение оффициального списка серверов

Возможно будет в одной из следующих версий:
- возможность читать сообщения чата в игре
- возможность писать сообщения чата в игры
- определение вашей версии игры и сравнение с версией сервера, если они отличаються, программа скажет Вам об этом
- если сервер переполнен программа скажет Вам об этом
- появиться пинг с серверами
- появиться определение, в какой стране находиться сервер

Спасибо сайту www.gameru.net за поддержку.

]]>Скачать]]>
BoGuS
У кого-нибудь есть список рангов в СТАЛКЕРе в сетевой игре? (Новичок, Опытный...). Это необходимо для новой версии программы smile.gif
HAMANN
Цитата(BoGuS @ Apr 16 2007, 14:15)
У кого-нибудь есть список рангов в СТАЛКЕРе в сетевой игре? (Новичок, Опытный...). Это необходимо для новой версии программы smile.gif

новичок, опытный, профессиональный, ветеран, легендарный.
Neo][
Цитата
У кого-нибудь есть список рангов в СТАЛКЕРе в сетевой игре? (Новичок, Опытный...). Это необходимо для новой версии программы smile.gif

BoGuS, держи:
Цитата
новичок
опытный
профессионал
ветеран
легендарный сталкер

Файл STALKER\gamedata\config\mp\mp_ranks.ltx, вдруг пригодится.

Was added in 46 seconds:

HAMANN, опередил +
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.