Просмотр полной версии : sa:mp query mechanism
Receiver
16.06.2021, 11:32
Описание: Получает инфу о сервере сампа. это мой вариант реализации. предлагайте свои идеи по улучшению и ругайте мой код!!
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
Пакеты:
https://forum.antichat.xyz/attachments/27768219/
Враперры можно найти в wrappers.hpp
RomanBZK
16.06.2021, 11:33
Ники с Arizona RP сможет получать?
Ники с Arizona RP сможет получать?
C++:
// Now srv_info contains: is_locked, players, max_players, host_name, game_mode, language
Закрытый ли сервер
Количество игроков
Максимальное количество игроков
Имя хоста
Гейммод
Язык
Значит не может, логично?
Receiver
16.06.2021, 11:59
C++:
// Now srv_info contains: is_locked, players, max_players, host_name, game_mode, language
Закрытый ли сервер
Количество игроков
Максимальное количество игроков
Имя хоста
Гейммод
Язык
Значит не может, логично?
для получения списка игроков другой пакет есть: QUERYTYPE_PLAYERLIST, - но сервер не вернёт ничего, если игроков больше 100
legendabrn
22.08.2021, 09:38
С поддержкой Linux: https://github.com/legendabrn/re_samp_query_mechanism
Компиляция: gcc main.cpp -lstdc++ -o query
Запустить: ./query
https://forum.antichat.xyz/attachments/27825935/
gaZmanoV
24.04.2022, 10:59
Форк этого же проекта, но с реализацией через 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
Вывод:
https://forum.antichat.xyz/attachments/28024070/
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot