Иконка ресурса

amxx AFK Control 2.1.0

Нет прав для скачивания
Установка
  1. Скомпилируйте плагин (инструкция)
  2. Скопируйте скомпилированный .amxx в директорию /amxmodx/plugins/
  3. Пропишите этот плагин в файле ../amxmodx/configs/plugins.ini
  4. Поместите словарь в директорию ../amxmodx/data/lang/
  5. Поместите инклюд файл API в директорию ../scripting/include/
  6. Поместите конфигурационный файл в директорию ../amxmodx/configs/ (настройте его по вкусу)
  7. Смените карту или перезапустите сервер.
Настройки
Код:
;
; КОНФИГУРАЦИОННЫЙ ФАЙЛ afk_control.ini
;

;
; НАСТРОЙКИ ПЛАГИНА
;


; Сохранять время бедействия игрока при его смерти, чтобы получить его при следующем спавне
SAVE_TIME = 0

; Игроки с этим флагом(ами) не подлежат действиям плагина за AFK (0 - для всех работает)
IMMUNITY = 0

; Минимальное кол-во игроков на сервере, чтобы плагин начал учитывать AFK игроков
MIN_PLAYERS = 10

; Максимальное пройденное время которое игрок может быть AFK (в секундах)
MAX_TIME = 30

; При достижении определенного процента бездействия игрока, плагин пометит его как AFK
; Значение указывается в процентном соотношении
AFK_PERCENT = 40

; Количество предупреждений которое игрок будет получать на протяжении всего времени бездействия
WARNINGS = 3

; Время бездействия сбрасывается от действий игрока
; Основные
; a - Прожата любая кнопка управления (см. cssdk_const.inc)
; b - Сдвинулся с места (сбросится в новом раунде если есть плагины или действия которые толкают/перемещают игроков)
; c - Сдвинулся прицел (сбросится в новом раунде если есть плагины или действия которые толкают/перемещают игроков)
; Вспомогательные:
; d - Написал сообщение в чат
; e - Использование кнопок меню
; ВНИМАНИЕ: Буквы можно использовать совместно!
RESET_TIME = a

; При достижении максимального времени бездействия, плагин будет сразу кикать игрока с сервера без перевода в зрители!
; При значении 1 будет кикать всех, за исключением игроков с флагом (из настройки IMMUNITY)
; При значении 2 будет кикать всех без исключения!
KICK = 0

; Предупреждения за простой игрок получит уведомления
; a - в чат
; b - в худ
; c - звуковое оповещение
NOTIFICATION = ac

; Путь к звуку предупреждения за простой
; Поддерживается как WAV так и MP3 формат
SAMPLE_NOTIFY = events/tutor_msg.wav

; Звуковое оповещение за простой в MP3 формате
; Дело в том что MP3 формат проигрывается даже если свернута игра,
;    так можно намекнуть игрокам что нужно играть либо выйти!
; Доступен только MP3 формат!!
ALERT_NOTIFY = media/Half-Life01.mp3
; При достижении определенного процента простоя будет проигран данный файл.
ALERT_PERCENT = 80

; Что делать если бомба у AFK!
; 0 - Ничего
; 1 - Выкинуть как оружие
; 2 - Передать ближайшему тиммейту (если невозможно то используется 1 вариант)
BOMB_TRANSFER = 0

; Не сбрасывать деньги при переведении в наблюдение за простой
; Игра должна выставлять mp_startmoney денег если игрок перешел в наблюдение
MONEY_SAVE = 0

; Если оставшийся живые игроки в команде AFK:
; 0 - Ничего не делать!
; 1 - Сообщить об этом в чат!
; 2 - Принудительно завершить раунд победой противоположенной команды!
SCENARIO_MODE = 0

; Если онлайн сервера выше этого квара то зрителей начнет кикать за длительное нахождение в наблюдении
SPEC_MIN_PLAYERS = 30

; Интервал времени (в секундах) между каждой проверкой игрока в его наблюдении
SPEC_CHECK = 5

; Игроки с этим флагом(ами) учитываются плагином отдельно (см. ниже)
SPEC_ACCESS = d

; Максимальное время провождения игрока в наблюдении (в секундах)
; Время начинается при подключении игрока к серверу, либо при переходе в режим наблюдения
SPEC_MAX_TIME = 300
; Для привилигированных игроков с указанным доступом
; 0 - Без лимита времени.
SPEC_MAX_TIME_VIP = 0

; Сколько должно остаться секунд чтобы игроку показало меню о его подтверждении что он в игре
; Используйте 0 чтобы отключить эту функцию!
SPEC_MENU_TIME_LEFT = 60

; Какое действие выполнит плагин после того как игрок подтвердил что он в игре
; 0 - Обновляет метку времени игрока и счетчик начнется с начала
; 1 - Достаточно одного подтверждения, дальше плагин не будет трогать игрока он будет всегда в игре
; 2 - От 2 и более указанных секунд добавочного времени к основому след. проверки игрока (см. SPEC_MAX_TIME)
SPEC_MENU_FUNCTION = 0

; Причина кика за простой
AFK_REASON = AFK

; Причина кика за длительное нахождение в наблюдении
SPEC_REASON = Большой онлайн
API
Код:
#if defined _afk_control_included
  #endinput
#endif
#define _afk_control_included

/**
* Check if player is afk
*
* @param id            Player index
*
* @return              true on success, false otherwise
*/
native afkc_is_user_afk(const id);

/**
* Gets the current afk player status stage
*
* @param id            Player index
*
* @return              AFC stage as a percentage (from 0 to 100)
*/
native afkc_get_stage(id);

/**
* Instant update of the player's last activity time
*
* @note The second parameter should include local game time (func: get_gametime())
*       Use 0 to reset activity time
*
* @note The activity time is calculated for each new frame of the player
*
* @param id            Player index
* @param time          New time
*
* @return              true on success, false otherwise
*/
native afkc_update_activity(const id, Float:time = 0.0);

/**
* Сalled every new stage of the player's AFK
*
* @param id            Player index
* @param lastActivity  The last time of the player's activity
* @param stage         Current afk stage (can be overwritten)
*
* @noreturn
*/
forward afkc_stage(id, Float:lastActivity, &stage);

/**
* Called before the plugin punishes the player for AFK
*
* @note The plugin doesn't update the time of the player's last activity,
*       in case the event is blocked
*
* @param id            Player index
*
* @return      PLUGIN_CONTINUE to allow the action to happen
*              PLUGIN_HANDLED or higher to prevent this action
*/
forward afkc_action(id);

/**
* Called when the player's AFK status is switched
*
* @param id            Player index
* @param status        If true the player is AFK, false otherwise
*
* @noreturn
*/
forward afkc_toggle(id, bool:status);
Сверху Снизу