Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: AFK Система

  1. #1
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±

    AFK Система

    Здравствуйте, подскажите AFK систему возможно она сделана плагином, но чтобы была на сворачивание окна.
    Буду благодарен.

  2. #2
    Аватар для Gressie
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    258
    Репутация:
    6 ±
    После include
    PHP код:
    #define AFK_WINDOW_TIME 1200// 1200 мс - время последнего обновления статуса с сервером.
    new AFK_window[MAX_PLAYERS]; 
    В public OnPlayerUpdate(playerid)
    PHP код:
    AFK_window[playerid] = GetTickCount(); 
    И сама проверка
    PHP код:
    if(GetTickCount() - AFK_window[playerid] > AFK_WINDOW_TIME)
    {
        
    SendClientMessage(playerid, -1"AFK");

    И удобный макрос для использования:
    PHP код:
    #define AFK(%0) (GetTickCount() - AFK_window[%0] > AFK_WINDOW_TIME) 
    Пример использования:
    PHP код:
    if(AFK(playerid))
    {
        
    SendClientMessage(playerid, -1"AFK");


  3. #3
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Это же не на сворачивание, а просто, на обновление что игрок ничего не выполняет...

  4. #4
    Аватар для NewGreen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.09.2014
    Сообщений
    61
    Репутация:
    44 ±
    Цитата Сообщение от Skyline Посмотреть сообщение
    Это же не на сворачивание, а просто, на обновление что игрок ничего не выполняет...
    public OnPlayerUpdate(playerid) перестает обновляться когда игра свернута, значит система выше будет работать

  5. #5
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Но так же и если игрок стоит на месте, он тоже не будет обновляться...

  6. #6
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Будет, но не очень часто, как при движении. Система не будет считать, что игрок находится в AFK.

  7. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А если юзнуть поиск то можно получить не плохой код от DeimoS:
    ТЫК

  8. #8
    Аватар для BaBuIIIkaDrifteR
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.03.2014
    Адрес
    Ямайка
    Сообщений
    303
    Репутация:
    8 ±
    начало мода
    PHP код:
    #define GivePVarInt(%0,%1,%2) \
    SetPVarInt(%0,%1,(GetPVarInt(%0,%1) + %2))
    #define MAX_AFK 500 // секунд до кика
    forward afk_system(); 
    ongamemodeinit
    PHP код:
    SetTimer("afk_system"10001); //Создаем таймер 
    onplayerupdate
    PHP код:
    SetPVarInt(playerid"afk_time", -2); // если игрок не в AFK переменная будет ровняться -2 
    конец мода
    PHP код:
    public afk_system()
    {
        for(new 
    iGetMaxPlayers(); i++)
         {
              if(
    IsPlayerConnected(i))
            {
                 if(
    GetPVarInt(i"afk_time") == -|| GetPVarInt(i"afk_time") == -2GivePVarInt(i"afk_time"1);
                   if(
    GetPVarInt(i"afk_time") >= 0)
                 {
                      
    GivePVarInt(i"afk_time"1);
                      new 
    str[32];
                    
    format(str,32,"[AFK]: %d сек.",GetPVarInt(i"afk_time"));
                     
    SetPlayerChatBubble(i,str,0x06A500FF,10.0,3000);
                      if(
    GetPVarInt(i"afk_time") > MAX_AFK)
                       {
                        
    SendClientMessage(i, -1"Вы были кикнуты за AFK (" #MAX_AFK " секунд)");
                         
    Kick(i);
                    }
                }
               }
        }
        return 
    1;

    ip adress: В разработке:7777
    My Skype: Skype Phone
    [В]контакте: Рома Уруру
    Разработка: EnergyDRIFT©|2015

  9. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от BaBuIIIkaDrifteR Посмотреть сообщение
    начало мода
    PHP код:
    #define GivePVarInt(%0,%1,%2) \
    SetPVarInt(%0,%1,(GetPVarInt(%0,%1) + %2))
    #define MAX_AFK 500 // секунд до кика
    forward afk_system(); 
    ongamemodeinit
    PHP код:
    SetTimer("afk_system"10001); //Создаем таймер 
    onplayerupdate
    PHP код:
    SetPVarInt(playerid"afk_time", -2); // если игрок не в AFK переменная будет ровняться -2 
    конец мода
    PHP код:
    public afk_system()
    {
        for(new 
    iGetMaxPlayers(); i++)
         {
              if(
    IsPlayerConnected(i))
            {
                 if(
    GetPVarInt(i"afk_time") == -|| GetPVarInt(i"afk_time") == -2GivePVarInt(i"afk_time"1);
                   if(
    GetPVarInt(i"afk_time") >= 0)
                 {
                      
    GivePVarInt(i"afk_time"1);
                      new 
    str[32];
                    
    format(str,32,"[AFK]: %d сек.",GetPVarInt(i"afk_time"));
                     
    SetPlayerChatBubble(i,str,0x06A500FF,10.0,3000);
                      if(
    GetPVarInt(i"afk_time") > MAX_AFK)
                       {
                        
    SendClientMessage(i, -1"Вы были кикнуты за AFK (" #MAX_AFK " секунд)");
                         
    Kick(i);
                    }
                }
               }
        }
        return 
    1;

    Столько кода, а функционал один :\

  10. #10
    Аватар для BaBuIIIkaDrifteR
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.03.2014
    Адрес
    Ямайка
    Сообщений
    303
    Репутация:
    8 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Столько кода, а функционал один :\
    Я дал готовый вариант по запросу, а оптимизацию или что еще делайте сами )
    ip adress: В разработке:7777
    My Skype: Skype Phone
    [В]контакте: Рома Уруру
    Разработка: EnergyDRIFT©|2015

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •