Инфо из amxmodx.inc:
/* Returns 1 or 0. */
native is_user_alive(index);
Синтаксис:
is_user_alive ( index )
Возвращает 1 если игрок живой и 0 если мертв.
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Is User Alive"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init ( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
//Регистрируем новую консольную команду
register_concmd("users_alive","list_alive_users")
}
//Функция которую вызывает наша команда
public list_alive_users(id){
//Регистрируем необходимые массивы
new Players[32]
new playerCount, i, player,name[32]
//Получаем список игроков
get_players(Players, playerCount, "h")
//Выводм в консоль заглавное сообщение для списка
client_print(id,print_console,"List Alive players")
//Цикл в котором пробегаем по всем игрока из полученного списка
for (i=0; i<playerCount; i++) {
// ID игрока = Players[i]
player = Players[i]
//Получаем имя грока
get_user_name(player,name,31)
//Улсовие: Если игрок живой то пишем в консоль сообщение с его именем.
if(is_user_alive(player)){
client_print(id,print_console,"Player: %s is alive",name)
}
}
}
Описание:
По большому счету в данном примере нечего описывать или комментировать, там и так все предельно ясно, тем более почти к каждой строке написано комментарий. Хочу сказать,вернее предупредить вот о чем:
Так как в нашем скрипте мы точно знаем что команду вызываем мы сами и мы а сервере, нам не надо проверять присоединился ли игрок к серверу.
Но и то не совсем правильно, а если ко то сейчас присоединится? то будет ошибка. По этому используйте всегда такую конструкцию:
if(is_user_connected(id) && is_user_alive(id)){
Проверяет присоединен ли юзер к серверу и живой он или мертвый.
Почему? В провреке is_user_alive уже есть проверка на законнекченность игрока.