Ее можно часто встретить в различных плагинах, где плагин взаимодействует со всеми игроками сразу.
так же различные информеры или карт менеджеры не обходятся без этой функции.
Инфо из amxmodx.inc:
/* Returns number of players put in server.
* If flag is set then also connecting are counted. */
native get_playersnum(flag=0);
Синтаксис:
get_playersnum ( [ flag ] )
Обычно не указывается ни какой флаг (это равно флагу 0), но если поставить 1 - то в число игроков войдут и те, кто только присоединяются к серверу.
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Get Players Num"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /online","players_online")
}
public players_online(id){
new players
players = get_playersnum()
set_hudmessage(0, 255, 0, 0.05, 0.62, 0, 6.0, 12.0)
show_hudmessage(id, "Players online: %d",players)
}
Описание:
Разберемся как обращаться с функцией get_playersnum, поставим себе задачу:
Как узнать сколько людей/ботов сейчас на сервере?!
Для этого зарегистрируем команду say /online, которая вызывает функцию players_online.
В ней мы получим и запишем в массив players, количество пользователей/ботов онлайн.
Вы наверное обратили внимание, что я везде употребляю пользователь/бот, это не случайно, так как функция возвращает ( может немного грубо, или даже в корне верное определение, но зато понятно) +1 к числу игроков, за 1 занятый слот.
Если вам необходимо отфильтровать ботов, или мертвых игроков, придется делать цикл и в цикле проверять каждый id на принадлежность к игрокам/ботам/HLTV и так далее или можно воспользоваться функцией get_players
Как отфильтровать скажем ботов, от игроков, я расскажу позже.