ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Получение данных о сервере (https://forum.antichat.xyz/showthread.php?t=1468003)

oplis 13.02.2023 16:48

можно ли получить список игроков на сервере в текущий момент?

используя ответ из данной темы - https://www.blast.hk/threads/91174/ получал вместо списка игроков пустой массив

TastyBread123 17.02.2023 02:02

Код:





Код:

from
samp_client
.
client
import
SampClient
#pip install samp_client
def
getsamp
(
ip
:
str
,
port
:
int
)
:
with
SampClient
(
address
=
ip
,
port
=
7777
)
as
client
:
info
=
client
.
get_server_info
(
)
#инфа о сервере
clients
=
client
.
get_server_clients_detailed
(
)
#инфа о игроках
print
(
f'Онлайн:{info.players}/{info.max_players}\n\n'
)
for
i
in
clients
:
#перебираем и рассматриваем данные игроков
print
(
f"Игрок:{i.name}\nУровень:{i.score}\nТекущий пинг:{i.ping}"
,
end
=
'\n\n'
)



https://forum.antichat.xyz/attachmen...4f63a0cae8.png

Некоторые сервера(аризона, евольв и др) отключают список игроков, и поэтому в ответ ты получаешь пустой массив

yung milonov 17.02.2023 02:22

Цитата:

Сообщение от Vtylochka

Некоторые сервера(аризона, евольв и др) отключают список игроков, и поэтому в ответ ты получаешь пустой массив

список игроков показывается на всех серверах, если онлайн ниже 100

TastyBread123 17.02.2023 02:26

Цитата:

Сообщение от yung milonov

список игроков показывается на всех серверах, если онлайн ниже 100

https://forum.antichat.xyz/attachmen...9cccda8f9d.png

Какая то копия арз вынуждена не согласится

https://forum.antichat.xyz/attachmen...54c521f04d.png

P.S. Не реклама

oplis 19.02.2023 11:54

Цитата:

Сообщение от Vtylochka

Код:





Код:

from
samp_client
.
client
import
SampClient
#pip install samp_client
def
getsamp
(
ip
:
str
,
port
:
int
)
:
with
SampClient
(
address
=
ip
,
port
=
7777
)
as
client
:
info
=
client
.
get_server_info
(
)
#инфа о сервере
clients
=
client
.
get_server_clients_detailed
(
)
#инфа о игроках
print
(
f'Онлайн:{info.players}/{info.max_players}\n\n'
)
for
i
in
clients
:
#перебираем и рассматриваем данные игроков
print
(
f"Игрок:{i.name}\nУровень:{i.score}\nТекущий пинг:{i.ping}"
,
end
=
'\n\n'
)



Некоторые сервера(аризона, евольв и др) отключают список игроков, и поэтому в ответ ты получаешь пустой массив

то есть чтобы получить список игроков например аризоны/родины нужен программный заход на сервер, и через json/xml передать список игроков?

либо есть более простые способы?

TastyBread123 19.02.2023 12:02

Цитата:

Сообщение от oplis

то есть чтобы получить список игроков например аризоны/родины нужен программный заход на сервер, и через json/xml передать список игроков?

Может быть и можно, таким вопросом я еще не занимался)

kru_tin 19.02.2023 15:13

Цитата:

Сообщение от oplis

то есть чтобы получить список игроков например аризоны/родины нужен программный заход на сервер, и через json/xml передать список игроков?
либо есть более простые способы?

парси сайт аризоны

fedos 20.02.2023 11:04

Цитата:

Сообщение от kru_tin

парси сайт аризоны

подскажи, а где на сайте аризоны найти фулл список игроков, которые сейчас на серваке?

я вижу лишь списки фракций, рейтинги и тп..

oplis 20.02.2023 18:31

Цитата:

Сообщение от kru_tin

парси сайт аризоны

списка игроков нету же там

kru_tin 21.02.2023 06:11

Цитата:

Сообщение от fedos

подскажи, а где на сайте аризоны найти фулл список игроков, которые сейчас на серваке?
я вижу лишь списки фракций, рейтинги и тп..

Цитата:

Сообщение от oplis

списка игроков нету же там

а, да, сорян, перепутал с фракциями

тогда скорее всего остается лишь один вариант получить список игроков:

1) Пишешь скриптик на раксамп (lua), обрабатываешь всех игроков (вход, выход, и т.д, упор лишь в твою логику) >> отправляешь на сервер этот список​2) Пишешь сервер(протокол выбери под твои нужды), который будет принимать этот список >> делаешь с этим список шо хочешь​

p.s чисто в теории можно будет обойтись и без сервера, если это все будет (раксамп и твой основной скрипт) на одной виртуалке, например работать с файлами, либо в память все это записывать, это даже будет наверное правильнее


Время: 20:56