GameQ, GameQ - библиотека для опроса серверов |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
GameQ, GameQ - библиотека для опроса серверов |
Maquire
|
18.12.2012, 13:35
Сообщение
|
|
|
Всем салют! Недавно открыл для себя GameQ - готовое решение для опроса серверов. Решил поделится т.к. уверен, многим пригодится.
Описание: GameQ представляет собой библиотеку для запроса данных с одного или нескольких игровых серверов используя UDP протокол и возвращает результаты в массиве. Скрипт объектно-ориентированный (не знаю как правильно высловится), и Вам не составит труда изменить его под свои нужды. GameQ недавно был полностью переписан, и все еще находится в альфа-стадии, так что будем Вам признательны за любые замечание и / или сообщения об ошибках. Вы можете связаться со мной по E-Mail tombuskens@users.sourceforge.net. Скрипт поддерживает 170 игр. Требования: Вам нужен PHP 5, чтобы использовать библиотеку. Также должна быть возможность использовать UDP протокол (некоторые хостинги его блокируют), так как он используются для опроса игровых серверов. Установка: Убедитесь, что у вас последняя версия, взять её можете здесь. После того как вы загрузили файл, просто распакуйте его. Также Вы можете получить рабочую версию из CVS репозитория. Использование: Скрытый текст Опрос серверов довольно прост. Сначала вы определяете сервер(ы) которые Вы хотите опросить. Например, предположим, что мы хотим запросить quake и battlefield сервера. Код $servers['quakeserver'] = array('quake3', '192.168.0.1', '27962'); $servers['a bf server'] = array('bf', 'localhost'); Как Вы видите, каждый элемент состоит из названия игры, адрес сервера и, по желанию (если не указан, будет использовать port указанный по умолчанию, например, 27015 для cs), порт. Чтобы узнать, какая имя у нужной вам игры, смотрите в файле конфигурации, который находится по адресу patch/to/GameQ/games.ini. Во-вторых, мы инициализируем основной класс и добавляем серверы. Код require_once 'path/to/GameQ.php'; // инициализируем класс $gq = new GameQ; // Добавляем серверы указанные чуть выше $gq->addServers($servers); Теперь мы готовы запрашиваем данные с серверов и обрабатываем их. Код //Запрос и отображение данных try { $data = $gq->requestData(); print_r($data); } // Поймать любые ошибки, которые могли возникнуть catch (GameQ_Exception $e) { echo 'Произошла ошибка.'; } Данные, которые вернет нам скрипт, будут выглядеть вот так: Код Array ( [quakeserver] => Array ( [version] => Q3 1.32 linux-i386 Oct 7 2002 [dmflags] => 0 [fraglimit] => 35 [timelimit] => 20 [ggametype] => 4 [protocol] => 68 [mapname] => q3tourney6_ctf [svprivateClients] => 1 [svhostname] => My local quakeserver [svmaxclients] => 17 [svpunkbuster] => 0 [svmaxRate] => 15000 [svminPing] => 0 [svmaxPing] => 0 [svfloodProtect] => 1 [svallowDownload] => 0 [botminplayers] => 2 [capturelimit] => 8 [gamename] => baseq3 [gmaxGameClients] => 0 [gneedpass] => 0 [players] => Array ( [0] => Array ( [frags] => 20 [ping] => 0 [nick] => Bitterman ) [1] => Array ( [frags] => 28 [ping] => 0 [nick] => Razor ) [2] => Array ( [frags] => 5 [ping] => 0 [nick] => Patriot ) [3] => Array ( [frags] => 17 [ping] => 0 [nick] => Uriel ) ) [game] => baseq3 [punkbuster] => 0 [pure] => 1 [gametype] => 4 [clients] => 4 [address] => 192.168.0.1 [port] => 27960 ) [a bf server] => Array ( [hostname] => My local battlefield server [gamename] => battlefield2 [gamever] => 1.1.2965-797.0 [mapname] => Road To Jalalabad [gametype] => gpm_cq [gamevariant] => bf2 [numplayers] => 2 [maxplayers] => 32 [gamemode] => openplaying [password] => 0 [timelimit] => 3600 [roundtime] => 2 [hostport] => 16567 [bf2dedicated] => 1 [bf2ranked] => 1 [bf2anticheat] => 1 [bf2os] => linux [bf2autorec] => 0 [bf2didx] => [bf2ddl] => [bf2voip] => 1 [bf2autobalanced] => 1 [bf2friendlyfire] => 1 [bf2tkmode] => Punish [bf2startdelay] => 15 [bf2spawntime] => 15.000000 [bf2sponsortext] => Howdy [bf2scorelimit] => 0 [bf2ticketratio] => 100 [bf2teamratio] => 100.000000 [bf2team1] => MEC [bf2team2] => US [bf2bots] => 0 [bf2pure] => 1 [bf2mapsize] => 64 [bf2globalunlocks] => 1 [bf2fps] => 33.000000 [bf2plasma] => 0 [bf2reservedslots] => 0 [bf2coopbotratio] => [bf2coopbotcount] => [bf2coopbotdiff] => [bf2novehicles] => 0 [players] => Array ( [0] => Array ( [player] => Bob [score] => 36 [ping] => 30 [team] => 2 [deaths] => 6 [pid] => 47837808 [skill] => 11 [AIBot] => 0 ) [1] => Array ( [player] => Jimmy [score] => 36 [ping] => 28 [team] => 2 [deaths] => 7 [pid] => 68243063 [skill] => 9 [AIBot] => 0 ) ) [teams] => Array ( [0] => Array ( [teamt] => MEC [scoret] => 0 ) [1] => Array ( [teamt] => US [scoret] => 0 ) ) [address] => 192.168.0.1 [port] => 29900 ) ) Все нужные данные я указал, за дополнительной информацией идите сюда. Скачать МОЖНО ТУТ
Отредактировал: Maquire, - 18.12.2012, 13:36
|
Поблагодарили 2 раз
|
|
Surf
|
18.12.2012, 17:07
Сообщение
|
![]() |
|
|
|
|
Maquire
|
18.12.2012, 19:53
Сообщение
|
|
|
|
|
|
|
![]() ![]() |