GoldSRC RCON Query Include [
SVN ]
Версия: 0.1
С помощью данного инклюда Вы сможете отправлять RCON команды серверу и получать ответ на них.
Используется метод "Thread Socket"
lal, который не приводит к лагу на сервере во время запроса.
Есть также возможность задать таймаут запроса.
Функции:
rcon_send( ip[] , port , szPass[] , szCommand[] , szForward[] , Float:timeout = 5.0 ) -
отправка RCON команды на сервер.
- ip[] - IP адрес сервера, куда отсылать команду.
- port - порт сервера.
- szPass[] - RCON пароль.
- szCommand[] - RCON команда.
- szForward[] - имя форварда, на который прийдет результат выполнения команды.
- Float:timeout - максимальное время ожидания выполнения, по истечению которого закрывается соединение.
- @return - в случае успешной отправки, вернет RCON_OK, иначе код ошибки.
Форвард:public your_forward( iRconStatus , szResult[] ) -
форвард принимает результат выполнения RCON команды.
- iRconStatus - статус выполнения.
- szResult[] - результат выполнения.
Коды ошибок:- RCON_CONNECTION_FAILED - ошибка установления соединения с сервером.
- RCON_GET_CHALLENGE_FAILED - ошибка получения номера challenge (соединение установлено, но что-то пошло не так).
- RCON_CREATE_FWD_FAIL - ошибка создания форварда.
- RCON_TIMEOUT - таймаут запроса.
- RCON_OK - успешное выполнение.
Пример:
Код:
#include <amxmodx>
#include <rcon>
#define SRV_IP "localhost"
#define SRV_PORT 27015
#define SRV_PASS "1337"
public plugin_init() {
register_plugin("RCON Test","test","serfreeman1337")
register_clcmd("amx_rcon_send","Try_Rcon_Send")
}
public Try_Rcon_Send(){
new cmd[128]
read_args(cmd,127)
trim(cmd)
remove_quotes(cmd)
new st = rcon_send(SRV_IP,SRV_PORT,SRV_PASS,cmd,"rcon_handler")
switch(st){
case RCON_CONNECTION_FAILED: server_print("[ RCON ] Connection to %s:%d failed successfully",
SRV_IP,SRV_PORT)
case RCON_CREATE_FWD_FAIL: server_print("[ RCON ] Forward create failed")
}
}
public rcon_handler(status,result[]){
switch(status){
case RCON_GET_CHALLENGE_FAILED:
server_print("[ RCON ] Get RCON challenge failed",status)
case RCON_TIMEOUT:
server_print("[ RCON ] Query timeout on %s",result)
case RCON_OK:
server_print("[ RCON ] Response: ^n%s",result)
}
}