Ключевые изменения:
- Архитектура разделена на два уровня: OnPlayerRunCmd занимается только сбором сырых сигналов, вся тяжёлая логика вынесена в таймер. Нагрузка на сервер минимальна даже при 64 игроках.
- Внедрён edge-детектор кнопок: активностью считается только момент нажатия или отпускания кнопки. Удержание одной кнопки без других действий перестаёт продлевать таймер после sm_afk_hold_max секунд.
- Система накопления угла камеры: дельта pitch и yaw суммируется за скользящее окно. Медленный поворот засчитывается корректно. Микро-дрожание мыши в пределах 1-2 градусов не считается активностью.
- Добавлены режимы действия: 0 - только сообщение, 1 - перевод в Spectator, 2 - кик, 3 - Spectator с последующим киком через sm_afk_kick_time секунд.
- Добавлен grace period: игрок не проверяется в течение sm_afk_grace_period секунд после подключения или спавна.
- Добавлена поддержка исключений для администраторов через sm_afk_ignore_admins.
- Добавлен режим отладки sm_afk_debug с уровнями 0, 1, 2.
- Исправлен баг мгновенного AFK при заходе на сервер.
- Исправлена потеря таймера после смены карты.
- Исправлен некорректный расчёт дельты угла при переходе через 180/-180 градусов.
Совместимость: CS:S v34, SourceMod 1.10+