Query Library GameAP

Материал из HLDM Wiki
Версия от 11:10, 19 июня 2014; Nikita (обсуждение | вклад) ($this->query->get_status();)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску


Библиотека для опроса игровых серверов. Позволяет получить данные текущего состояния сервера, список игроков, текущую карту. Библиотека служит мостом между GameAP и GameQ

Расположение файла

application/libraries/Query.php

Загрузка библиотеки

$this->load->library('query');

Примеры использования

Получение базовых кваров сразу для двух серверов

$this->load->library('query');

$query = array('id' => 1, 'type' => 'goldsource', 'host' => '31.31.202.96', 'port' => 27015);
$this->query->set_data($query);

$query = array('id' => 2, 'type' => 'goldsource', 'host' => '31.31.202.96', 'port' => 27017);
$this->query->set_data($query);

print_r($this->query->get_base_cvars());
/* 
Array
(
    [1] => Array
        (
            [hostname] => UMI7EPATOP CEPBEP - HLDM.ORG
            [map] => crater88
            [game] => 
            [game_code] => valve
            [players] => 5
            [maxplayers] => 32
            [version] => 47
            [password] => 0
            [joinlink] => steam://connect/31.31.202.96:27015/
        )

    [2] => Array
        (
            [hostname] => BECEJIbIU CEPBEP - HLDM.ORG
            [map] => boot_camp
            [game] => 
            [game_code] => valve
            [players] => 4
            [maxplayers] => 32
            [version] => 47
            [password] => 0
            [joinlink] => steam://connect/31.31.202.96:27017/
        )

*/


Задание данных

$this->query->set_data();

Задает данные сервера.

set_data( array $server_info )
Параметр Описание
id Идентификатор сервера. Параметр может быть опущен, в этом случае как id будет использован хост и порт, разделенные двоеточием.
type Query драйвер. Используется код игры либо код движка игры (goldsource, source, samp, minecraft).
host Хост сервера
port Порт сервера

Пример:

$this->load->library('query');

$query['id'] 	= 1337;
$query['type'] 	= 'goldsource';
$query['host']	= '31.31.202.96';
$query['port']	= 27015;
$this->query->set_data($query);

print_r($this->query->get_base_cvars());
/*
Вернет
Array
(
    [1337] => Array
        (
            [hostname] => UMI7EPATOP CEPBEP - HLDM.ORG
            [map] => so_4plex
            [game] => 
            [game_code] => valve
            [players] => 6
            [maxplayers] => 32
            [version] => 47
            [password] => 0
            [joinlink] => steam://connect/31.31.202.96:27015/
        )

)
*/

$this->query->set_option();

Задает данные GameQ.

set_option ( $var, $value )

Получение данных

$this->query->get_base_cvars();

Получение базовых кваров сервера -- текущая карта, количество игроков онлайн, хостнейм и пр.

array get_base_cvars ( )

Возвращает массив с основными кварами сервера.

Пример возвращаемого массива:

Array
(
    [1337] => Array
        (
            [hostname] => UMI7EPATOP CEPBEP - HLDM.ORG
            [map] => so_4plex
            [game] => 
            [game_code] => valve
            [players] => 6
            [maxplayers] => 32
            [version] => 47
            [password] => 0
            [joinlink] => steam://connect/31.31.202.96:27015/
        )

)
Название ключа Описание
hostname Название сервера
map Текущая карта на сервере
game Игра
game_code Код игры
players Текущее количество игроков на сервере
maxplayers Максимальное количество игроков на сервере
version Версия сервера
password Установлен ли пароль на сервер (0/1)
joinlink Ссылка для соединения с сервером

$this->query->get_cvars();

Получение всех кваров сервера.

array get_cvars ( )

Возвращает все доступные квары сервера. Для каждой игры набор кваров может быть уникальным. Пример возвращаемого массива:

Array
(
    [1337] => Array
        (
            [address] => 127.0.0.1:27015
            [allow_spectators] => 1
            [amx_client_languages] => 1
            [amx_language] => en
            [amx_nextmap] => frontier
            ...
        )
)

$this->query->get_players();

Получение списка игроков на сервере.

array get_players ( )

Пример возвращаемого массива:

Array
(
    [1337] => Array
        (
            [0] => Array
                (
                    [name] => (1)Player
                    [score] => 0
                )
            [1] => Array
...
Название ключа Описание
name Никнейм игрока
score Счет игрока

$this->query->get_status();

Получение статуса сервера. Вернет true, если сервер включен и ответил на query-запрос, и false, в случае если сервер выключен или не ответил на query-запрос.

bool get_status ( )