Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Kick за AFK

Статус
В этой теме нельзя размещать новые ответы.

ARTIST26

Изучающий
Пользователь
Регистрация
19 Фев 2012
Сообщения
101
Лучшие ответы
0
Репутация
16
Добрый вечер уважаемые пользователи. Возникает проблемма на моём сервере,где стоит мод RLS.Кикает игроков которые онлайн,то-есть не AFK.Они в игре но всё равно время AFK над головами едёт. После 5-и минут получают kick. Прошу помоть отрегулировать кое-как эту систему AFK.(для тех кто хорошо знаком с RLS модом).Заранее вам всем спасибо.


PHP:
forward AFKProcessor();
enum afker
{
TickEx,
ChekEx,
VarEx,
bool:pSpawnEx,
bool:AFKEx,
}
new PlayerEx[MAX_PLAYERS][afker];
new afkto[MAX_PLAYERS];
PlayerEx[playerid][pSpawnEx] = false;
PlayerEx[playerid][AFKEx] = false;
afkto[playerid] = 2;  //public OnPlayerConnect
afkto[playerid] = 0; // public OnPlayerDisconnect
afkto[playerid] = 0; //public OnPlayerDeath
PlayerEx[playerid][pSpawnEx] = false; //public OnPlayerDeath
PlayerEx[playerid][pSpawnEx] = true; //public OnPlayerLogin
afkto[playerid] = 0; // public OnPlayerDeath
AFKProcessor();  //public Fresh()

Convert(number)
{
        new hours = 0, mins = 0, secs = 0, string[100];
        hours = floatround(number / 3600);
        mins = floatround((number / 60) - (hours * 60));
        secs = floatround(number - ((hours * 3600) + (mins * 60)));
        if(hours > 0)
        {
        format(string, 100, "%d:%02dm:%02ds", hours, mins, secs);
        }
        else
        {
        format(string, 100, "%d:%02d", mins, secs);
        }
        return string;
}

forward CountEx();
public CountEx()
{
OtherTimer();
for(new x = 0; x < MAX_PLAYERS; x++)
{
 if(IsPlayerConnected(x))
  {
  if(PlayerEx[x][ChekEx] == PlayerEx[x][TickEx])
  {
  if(PlayerEx[x][pSpawnEx] == true)
  {
  PlayerEx[x][AFKEx] = true;
  }
  }
  PlayerEx[x][ChekEx] = PlayerEx[x][TickEx];
  }
}
return 1;
}
public AFKProcessor()
{
        for(new x = 0; x < MAX_PLAYERS; x++)
        {
                if(IsPlayerConnected(x))
                {
                if(PlayerEx[x][ChekEx] < PlayerEx[x][TickEx])
                {
                        if(PlayerEx[x][AFKEx] == true)
                        {
                                PlayerEx[x][VarEx] = 0;
                                PlayerEx[x][AFKEx] = false;
                        }
                }
                if(PlayerEx[x][AFKEx] == true)
                {
                                PlayerEx[x][VarEx]++;
                }
                if(PlayerInfo[x][pAdmin] <= 0)
                {
                        if(PlayerEx[x][VarEx] > 300)
                        {
                                OnPlayerUpdateRL(x);
                                        SendClientMessage(x,COLOR_REDD,"[AFK]: Вы были отсоедены от сервера!");
                                Kick(x);
                                PlayerEx[x][VarEx] = 0;
                                }
                        }
                if(PlayerEx[x][VarEx] > 1)
                {
                        new stringF[50];
                        format(stringF,sizeof(stringF),"[AFK] [%s secunde]",Convert(PlayerEx[x][VarEx]));
                                SetPlayerChatBubble(x, stringF, COLOR_GREEN, 30.0, 1200);
                        }
                }
        }
        return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу