HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 16.06.2021, 11:32
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Описание: Получает инфу о сервере сампа. это мой вариант реализации. предлагайте свои идеи по улучшению и ругайте мой код!!

GitHub: https://github.com/Receiver1/re_samp_query_mechanism

Использование:

C++:





Код:
auto
sqm
=
c_sqm
::
singleton
(
)
;
sqm
->
initialize
(
"176.32.37.93"
,
7777
)
;
auto
srv_info
=
sqm
->
handle

(
sqm
->
query
(
QUERYTYPE_SERVERINFO
,
1
)
)
;
// Now srv_info contains: is_locked, players, max_players, host_name, game_mode, language


Пакеты:



Враперры можно найти в wrappers.hpp
 
Ответить с цитированием

  #2  
Старый 16.06.2021, 11:33
RomanBZK
Участник форума
Регистрация: 26.09.2020
Сообщений: 137
С нами: 2963755

Репутация: 33
По умолчанию

Ники с Arizona RP сможет получать?
 
Ответить с цитированием

  #3  
Старый 16.06.2021, 11:54
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

Цитата:
Сообщение от RomanBZK  

Ники с Arizona RP сможет получать?
C++:





Код:
// Now srv_info contains: is_locked, players, max_players, host_name, game_mode, language

  • Закрытый ли сервер
  • Количество игроков
  • Максимальное количество игроков
  • Имя хоста
  • Гейммод
  • Язык
Значит не может, логично?
 
Ответить с цитированием

  #4  
Старый 16.06.2021, 11:59
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от Vintik  

C++:





Код:
// Now srv_info contains: is_locked, players, max_players, host_name, game_mode, language

  • Закрытый ли сервер
  • Количество игроков
  • Максимальное количество игроков
  • Имя хоста
  • Гейммод
  • Язык
Значит не может, логично?
для получения списка игроков другой пакет есть: QUERYTYPE_PLAYERLIST, - но сервер не вернёт ничего, если игроков больше 100
 
Ответить с цитированием

  #5  
Старый 22.08.2021, 09:38
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

С поддержкой Linux: https://github.com/legendabrn/re_samp_query_mechanism

Компиляция: gcc main.cpp -lstdc++ -o query

Запустить: ./query

 
Ответить с цитированием

  #6  
Старый 24.04.2022, 10:59
gaZmanoV
Познающий
Регистрация: 18.09.2019
Сообщений: 31
С нами: 3502227

Репутация: 63
По умолчанию

Форк этого же проекта, но с реализацией через boost::asio: https://github.com/Tim4ukys/re_samp_query_mechanism

+ не обязательно вводить IP (80.66.82.249 и 01.gtarp.ru одно и тоже выйдет в итоге)

Сорьки, что аппую тему. Зря старался чтоль?=((

Цитата:
Сообщение от Спойлер  


example.cpp:





[CODE]
#include
#include
#include "SQM.h"
// https://www.blast.hk/threads/781/post-128505
int
randomInteger
(
int
min
,
int
max
)
{
static
std
::
random_device rd
;
static
std
::
default_random_engine
e1
(
rd
(
)
)
;
std
::
uniform_int_distribution

uniform_dist
(
min
,
max
)
;
return
uniform_dist
(
e1
)
;
}
int
main
(
int
argc
,
char
*
argv
[
]
)
{
SQM sm
{
"01.gtarp.ru"
,
"7777"
}
;
std
::
cout

(
)
;
std
::
cout

(
)
;
for
(
const
auto
&
[
rkey
,
rr
]
:
rul
.
m_arrRules
)
{
std
::
cout

(
)
;
size_t i_player
{
}
;
for
(
const
auto
&
pl
:
players
.
m_arrPlayer
)
{
std
::
cout

5
)
{
std
::
cout

(
)
;
tick
=
GetTickCount64
(
)
-
tick
;
std
::
cout



Вывод:



 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.