Half-Life и Adrenaline Gamer форум
http://www.aghl.ru/forum/

[INC] GoldSRC RCON Query
http://www.aghl.ru/forum/viewtopic.php?f=39&t=1478
Страница 1 из 1

Автор:  GordonFreeman [ 28 окт 2013, 23:25 ]
Заголовок сообщения:  [INC] GoldSRC RCON Query

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


Вложения:
rcon.inc [4.6 КБ]
Скачиваний: 427

Автор:  Unreal [ 02 янв 2016, 06:54 ]
Заголовок сообщения:  Re: [INC] GoldSRC RCON Query

вещь конечно хорошая, но я не могу понять что именно является причиной лага использования rcon?

Автор:  Lev [ 02 янв 2016, 18:18 ]
Заголовок сообщения:  Re: [INC] GoldSRC RCON Query

Не является, а являлось бы, если бы инклюд не использовал отложенный прием ответа от сервера.

Автор:  Unreal [ 03 янв 2016, 03:09 ]
Заголовок сообщения:  Re: [INC] GoldSRC RCON Query

понятно :)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/