Инфо из amxmodx.inc:
/* Returns 1 or 0. */
native is_user_connected(index);
Синтаксис:
is_user_connected ( index )
- index - id игрока
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Is user connected"
#define VERSION "1.0"
#define AUTHOR "Admin"
new g_sekundomer
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
}
public client_connect(id){
set_task(1.0,"sekundomer",1,_,_,"b")
}
public sekundomer(){
g_sekundomer++
server_print("[Time %d]User connecting",g_sekundomer)
new players[32],playersnum,player
get_players(players,playersnum,"h")
for(new i=0;i < playersnum;i++){
player = players[i]
if(is_user_connected(player)){
server_print("[Time %d]User connected",g_sekundomer)
remove_task(1)
}
}
}
Описание:
Результат данного примера будет виден в консоле сервера.
Для наглядности, результат будет выводиться каждую секунду.
В момент когда игрок присоединяется к серверу,всегда вызывается функция client_connect. В ней мы вызываем функцию sekundomer, с помощью функции set_task, с интервалом в 1 секунду, пока не наступит нужный нам момент и не выключим это повторение с помощью функции remove_task.
В функции
public sekundomer()
Мы прибавляем к глобальной переменной 1, это наши секунды.
И выводим сообщение с временем в секундах и что игрок еще присоединяется.
Далее регистрируем необходимые массивы для цикла, так как в данной функции нет id игроков, придется проверять всех.
И внутри цикла мы создаем условие:
if(is_user_connected(player))Если игрок присоединился то.
Когда условие будет верным, то мы увидим сообщение в консоли, с помощью функции server_print, что игрок присоединился и выполним функцию remove_task, что бы удалить задачу установленную с помощью set_task