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

AntiAfk 2.1

Нет прав для скачивания
Убивает, кикает или переводит в наблюдатели афк игроков.

hirowatch

Взгляните на мир будущего...
Сообщения
1,323
Реакции
29
  • Автор темы
  • Команда форума
  • #1
  • Автор темы
  • Команда форума
  • #2
Код:
#include <sdktools_functions>

float fCP[MAXPLAYERS +1][3], fCI[MAXPLAYERS +1][3];
bool bStop; // Надо, иначе игроков может в один момент убить. Поэтому - запрещаем, а потом разрешаем и уже только потом снова проверяем.

public Plugin myinfo = {name = "AntiAfkLite", author = "Drumanid", version = "1.0", url = "http://vk.com/drumanid"}

public void OnPluginStart()
{
    HookEvent("round_freeze_end", RoundFreezeEnd);
}

public void OnMapStart()
{
    CreateTimer(15.0, CheckPlayers, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); // меняйте под себя(время)
}

public Action RoundFreezeEnd(Event event, const char[] name, bool dbc)
{
    bStop = false;

    for (int i = 1; i <= MaxClients; i++)
    {
        if(IsClientInGame(i) && IsPlayerAlive(i) && !IsFakeClient(i))
        {
            GetClientAbsOrigin(i, fCP[i]);
        }
    }
}

public Action CheckPlayers(Handle timer)
{
    if(bStop)
    {
        for (int i = 1; i <= MaxClients; i++)
        {
            if(IsClientInGame(i) && IsPlayerAlive(i) && !IsFakeClient(i))
            {
                GetClientAbsOrigin(i, fCI[i]);
                if(fCP[i][0] == fCI[i][0] && fCP[i][1] == fCI[i][1])
                {
                    ForcePlayerSuicide(i);
                    PrintToChat(i, " \x02Не стойте в афк и вы не будете убиты!");
                    //LogToFile("addons/sourcemod/logs/afklog.txt", "%N - был убит, т.к долго находился в афк", i);
                }
            }
        }
    }
 
    bStop = true;
}
 

Вложения

  • AntiAfkLite.smx
    4.5 KB · Просмотры: 0
  • AntiAfkLite.sp
    1.7 KB · Просмотры: 0
Сверху