АФК система

Описание: Уроки по скриптингу
Модератор: SJplayer

Sprite M
Автор темы, Ст. сержант
Ст. сержант
Аватара
Sprite M
Автор темы, Ст. сержант
Ст. сержант
Сообщения: 83
Зарегистрирован: 5 июня 2013
С нами: 10 лет 9 месяцев

#1 Sprite » 12 ноября 2014, 14:34

над pInfo

Код: Выделить всё

enum pAFKInfo
{
     
bool:pIsAFK,
    
pAFK,
    
pDarkAFK
}
new 
pAFKSystem[MAX_PLAYERS][pAFKInfo]; 


В любой 1-секундный таймер к примеру OnPlayerUpdateTimer (Только не OnPlayerUpdate!)

Код: Выделить всё

    pAFKSystem[i][pAFK] ++;
        if(
pAFKSystem[i][pAFK] >= 3)
        {
            new 
mes[128];
            
format(mes,sizeof(mes),"Игрок на паузе: %d секунд.",Converts(pAFKSystem[i][pAFK]));
            
SetPlayerChatBubble(imes0xFFFF00FF19.01500);
            
pAFKSystem[i][pIsAFK] = true;
        }
        if(
pAFKSystem[i][pIsAFK])
        {
             
pAFKSystem[i][pIsAFK] = false;
        } 


Добавляем stock для высчитывание времени АФК:

Код: Выделить всё

stock Converts(number)
{
    new 
hours 0mins 0secs 0string[30];
    
hours floatround(number 3600);
    
mins floatround((number 60) - (hours 60));
    
secs floatround(number - ((hours 3600) + (mins 60)));
    if(
hours 0)
    {
        
format(string30"%d:%02d:%02d"hoursminssecs);
    }
    else
    {
        
format(string30"%d:%02d"minssecs);
    }
    return 
string;


А теперь в OnPlayerUpdate

Код: Выделить всё

pAFKSystem[playerid][pAFK] = 0


В OnPlayerConnect

Код: Выделить всё

pAFKSystem[playerid][pIsAFK] = false;
pAFKSystem[playerid][pAFK] = 0


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей