Query Library GameAP: различия между версиями

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
Строка 7: Строка 7:
  
 
== Расположение файла ==
 
== Расположение файла ==
  application/helpers/ds_helper.php
+
  application/libraries/Query.php
  
 
== Загрузка библиотеки ==
 
== Загрузка библиотеки ==
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
$this->load->helper('ds');
+
$this->load->library('query');
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
== Примеры использования ==
 +
 +
=== Получение базовых кваров сразу для двух серверов  ===
 +
<syntaxhighlight lang="php">
 +
$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/
 +
        )
 +
 +
*/
 +
</syntaxhighlight>
 +
 +
  
 
== Задание данных ==
 
== Задание данных ==
Строка 19: Строка 66:
 
Задает данные сервера.
 
Задает данные сервера.
 
  set_data( $server_info )
 
  set_data( $server_info )
 +
 +
{| class="wikitable"
 +
|-
 +
! Параметр !! Описание
 +
|-
 +
| id || Идентификатор сервера.
 +
|-
 +
| type || Query драйвер. Используется код игры либо код движка игры (goldsource, source, samp, minecraft).
 +
|-
 +
| host || Хост сервера
 +
|-
 +
| port || Порт сервера
 +
|}
  
 
'''Пример:'''
 
'''Пример:'''

Версия 14:12, 15 мая 2014


Библиотека для опроса игровых серверов. Позволяет получить данные текущего состояния сервера, список игроков, текущую карту. Библиотека служит мостом между 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/
        )

*/


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

set_data

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

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

Пример:

$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/
        )

)
*/

set_option

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

set_option ( $var, $value )

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

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 Ссылка для соединения с сервером

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
            ...
        )
)

get_players

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

array get_players ( )

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

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

get_status

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

bool get_status ( )