• Гость, перед открытием темы прочитай описание раздела, чтобы не ошибиться. Любые вопросы по настройке сервера создаются в разделе Технической Поддержки.

Помощь Как получить список игроков? [ PAWN ]

darksoul

Участник
Сообщения
12
Симпатии
1
Баллы
14
#1
Хотелось-бы узнать как получить в коде список игроков. Тому же пример kick menu в котором выводиться список, я бы мог чекнуть исходы но там настолько легаси код что лучше спросить тут. Скиньте пример если не трудно.
 

ko1dun

Модератор
Сообщения
137
Симпатии
29
Баллы
104
#2
Для начала создаем массив с количеством элементов 32 и переменную с количеством найденных игроков
new players[32], p_count
далее используя функцию get_players заносим в массив id игроков и получаем их количество игнорируя HLTV
get_players(players, p_count, "h")
C++:
/* Sets indexes of players.
* Flags:
* "a" - don't collect dead players.
* "b" - don't collect alive players.
* "c" - skip bots.
* "d" - skip real players.
* "e" - match with team.
* "f" - match with part of name.
* "g" - ignore case sensitivity.
* "h" - skip HLTV.
* Example: Get all alive CTs: get_players(players,num,"ae","CT") */

далее с помощью цикла for можно перебрать полученный массив
for (i=0; i<num; i++)
тем самым в цикле получаем id игрока так players[i]
 

AkeYlake

Участник
Сообщения
81
Симпатии
14
Баллы
64
#3
ko1dun,
На мой взгляд этот способ не много усложнен и есть другой метод.

Делаем очень простенькую заготовку.
C++:
new g_iMaxPlayers;

public plugin_init()
{
    g_iMaxPlayers = get_maxplayers();
}
И далее в нужных местах мы просто делаем простенький цикл
C++:
for(new i = 1; i <= g_iMaxPlayers; i++)
{
    if(!is_user_alive(i)) continue;
    random_function(i);
}
Единственный минус, что нужно делать проверку что игрок ли это.
Но чаще всего в таких циклах происходят еще дополнительные проверки, и проверка на игрока(присоединился ли он, или все еще коннктится) вообще бывает не нужна.

Например:
C++:
new bool:g_bUserZombi[33];

for(new i = 1; i <= g_iMaxPlayers; i++)
{
    if(g_bUserZombi[i]) random_function(i);
}
В любом случае дело вкуса, просто предлагаю как альтернативу которая может более полюбиться и быть более удобной.
 
Сверху