Quantcast
Channel: Сообщество PHP DevelStudio - среда разработки программ
Viewing all articles
Browse latest Browse all 6336

[Урок] SampQueryAPI и SampRconAPI

$
0
0
Приветствую всех! Сегодня я бы хотел рассказать как можно взаимодействовать с серверами и клиентом SA:MP.

И так, качаем эти 2 файла:
Скрытый текст:
1. SampQueryAPI: http://rghost.ru/6tDSKbXsC
2. SampRconAPI: http://rghost.ru/7MQ9clF6G
Пароль для скачивания: develstudio.ru

Скачали? Хорошо, двигаемся дальше. Открываем "студию", создаём новый проект. Добавляем наши скрипты (Проект->Скрипты проекта->Добавить). Отлично, мы добавили оба скрипта. Давайте попробуем вывести информацию о сервере через SampQueryAPI.

1. Создаём одну "spButton" и восемь "label".
2. На кнопку ставим этот код:
PHP код:

$ip '188.127.238.57';
$port '7776';
$query = new SampQueryAPI($ip$port);
$aInformation $query->getInfo();
$aServerRules $query->getRules();
$aInformation['hostname'];
$aInformation['players'];
$aInformation['maxplayers'];
$aInformation['gamemode'];
$aInformation['mapname'];
$aServerRules['weather'];
$aServerRules['worldtime'];
$aServerRules['version'] ;
c("label1")->caption = ('IP Сервера: '$ip':'$port);
c("label2")->caption = ('Название: '$aInformation['hostname']);
c("label3")->caption = ('Игроки: '$aInformation['players']. ' / '$aInformation['maxplayers']);
c("label4")->caption = ('Мод: '$aInformation['gamemode']);
c("label5")->caption = ('Карта: '$aInformation['mapname']);
c("label6")->caption = ('Погода: '$aServerRules['weather'];);
c("label7")->caption = ('Время: '$aServerRules['worldtime'];);
c("label8")->caption = ('Версия: '$aServerRules['version']); 

Объяснять? Ну конечно же, да! :)

Создаём две переменные $ip и $port, естественно они содержат наш ип и порт.

В этой строке, мы конектимся к серверу.
Скрытый текст:
PHP код:

$query = new SampQueryAPI($ip$port); 

Кстати, если порт стандартный (7777), то переменную $port использовать не надо, то есть вовсе убрать!

Потом получаем информацию и небольшую конфигурацию сервера.
Скрытый текст:
PHP код:

$aInformation $query->getInfo();
$aServerRules $query->getRules(); 



Тут мы просто указываем, что будем использовать.
Скрытый текст:
PHP код:

$aInformation['hostname']; 
$aInformation['players']; 
$aInformation['maxplayers']; 
$aInformation['gamemode']; 
$aInformation['mapname'];
$aServerRules['weather'];
$aServerRules['worldtime'];
$aServerRules['version'] ; 



А далее используем наши тексты, чтобы вывести в них информацию...
Скрытый текст:
PHP код:

c("label1")->caption = ('IP Сервера: '$ip':'$port);
c("label2")->caption = ('Название: '$aInformation['hostname']);
c("label3")->caption = ('Игроки: '$aInformation['players']. ' / '$aInformation['maxplayers']);
c("label4")->caption = ('Мод: '$aInformation['gamemode']);
c("label5")->caption = ('Карта: '$aInformation['mapname']);
c("label6")->caption = ('Погода: '$aServerRules['weather'];);
c("label7")->caption = ('Время: '$aServerRules['worldtime'];);
c("label8")->caption = ('Версия: '$aServerRules['version']); 



Фух, ну что же, с SampQueryAPI мы закончили. (В самом файле, есть ещё функции, посмотрите)

Теперь переходим к SampRconAPI. Тут всё немного сложнее, нам понадобиться свой сервер. Ах да, если вы надеетесь, что сможете управлять чужим сервером, то вы ошибаетесь, ведь "rcon" вводить всё равно надо :)

1. Создаём всего одну "spButton".
2. На кнопку данный код:
PHP код:

$ip '188.127.238.57';
$port 7776;
$pas 'rconPassword';
$rcon = new SampRconAPI($ip$port$pas);
$rcon->addressBan('192.168.199.1'); 

Тут всё тоже самое, только теперь ещё вводим пароль (rcon) от нашего сервера. А так же заметьте, что мы благодаря этому API можем управлять сервером с помощью "rcon" команд. В данном случае, мы просто баним игрока.
Скрытый текст:
PHP код:

$rcon->addressBan('192.168.199.1'); 



Естественно писать все функции я не буду, но оставлю их список:
Скрытый текст:
PHP код:

$rcon->addressBan('')// Баним игрока, в ковычках его IP
$rcon->addressUnban('')// Разбаниваем игрока, в ковычках его IP
$rcon->adminSay('')// Говорим от лица администратора, в ковычках сообщение
$rcon->gameChangeMode('')// Выбор мода для сервера, в ковычках название мода
$rcon->gameExec('')// Открываем файл конфигурации сервера, в ковычках имя файла
$rcon->gameExit()// Выключаем сервер (без проверок)
$rcon->gameLoadFilterscript()// Загружает FilterScript, в ковычках название
$rcon->gameNextMode()// Посылает вызов 'GMX'
$rcon->gameReloadFilterscript('')// Перезагружает FilterScript, в ковычках название
$rcon->gameUnloadFilterscript('')// Выгружает FilterScript, в ковычках название
$rcon->getCommandList()// Выводит список команд 'rcon'
$rcon->getServerVariables()// Получает и обрабатывает переменные сервера
$rcon->isOnline()// Не совсем понял смысл данной команды
$rcon->playerBan('')// Баним игрока, в ковычках его ник
$rcon->playerKick('')// Кикаем игрока, в ковычках его ник
$rcon->reloadBans()// Перезагрузить список с банами
$rcon->reloadLogs()// Перезагрузить лог
$rcon->setGravity('')// Установить гравитацию на сервере, в ковычках уровень гравитации
$rcon->setWeather('')// Установить погоду на сервере, в ковычках ID погоды 


Попытался описать наиболее понятней, надеюсь сможете разобраться :)

Несколько советов новичкам:
1. Просмотрите обязательно все описания.
2. Попробуйте протестировать, чтобы вникнуть в код.
3. Это всё так же работает на сайтах.
4. Можете попробовать сделать свою консоль для управления сервером.

Кстати, если вдруг скопипастите тему, то укажите автора, пожалуйста! :a18:

Viewing all articles
Browse latest Browse all 6336

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>