Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3

Тема: afk system

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

    Статус
    Оффлайн
    Регистрация
    26.11.2015
    Сообщений
    3
    Репутация:
    0 ±

    afk system

    Смотрите какая проблема. Писал афк систему и не могу понять в чем ошибка. Значит если игрок свернулся над головой у него горит текст (AFK blalalala) все прекрасно все показывает, но работа таймера меня пугает, секунды летят, в прямом смысле слова ЛЕТЯТ, одна за две и отображается это все над головой, допустим простоял человек в афк 10 секунд, над головой пишет 50:03 как будто он уже 50 минут стоит... Прошу помощи у бородатых скриптеров...

    Собственно сам функционал афк системы, система работает в секундном таймере....

    PHP код:
    foreach(new iPlayer)
        {
            if(
    PlayerAFK[i] == 0PlayerAFK[i] = -1;
            else if(
    PlayerAFK[i] == -1)
            {
                
    PlayerAFK[i] = 1;
                
    f("AFK: {FFFFFF}[%s]"Convert(PlayerAFK[i]));
                
    SetPlayerChatBubble(istringCOLOR_GREEN20.01200);
            }
            else if(
    PlayerAFK[i] > 0)
            {
                
    PlayerAFK[i]+=1;
                
    f("AFK: {FFFFFF}[%s]"Convert(PlayerAFK[i]));
                
    SetPlayerChatBubble(istringCOLOR_GREEN20.01200);
                if(
    PlayerAFK[i] > 6000)
                {
                    if(
    Pl[i][pAdmin] == 0)
                    {
                        
    SCM(iCOLOR_RED"Âû ñëèøêîì äîëãî ïðîñòîÿëè â AFK!");
                        
    SetTimerEx("kick"50false"i"i);
                    }
                }
            }
        } 
    Связано ли это с моим кодом или проблема в чем то другом? up help me

    ---------- Post added at 15:12 ---------- Previous post was at 15:08 ----------

    Небольшое вложение, это буквально спустя минуты 3.



    Вы скажите, что кидай суда свой конвертер, скажу сразу дело не в нем... Но если это кому то поможет - пожалуйста!
    PHP код:
    Convert(number)
    {
        new 
    hours 0mins 0secs 0string[100];
        
    hours floatround(number 3600);
        
    mins floatround((number 60) - (hours 60));
        
    secs floatround(number - ((hours 3600) + (mins 60)));
        if(
    hours 0) { format(string100"%i:%02d?:%02d?"hoursminssecs); }
        else { 
    format(string100"%i:%02d"minssecs); }
        return 
    string;


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

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


    PHP код:
    main()
    {
        new 
    result[18];
        
    ConvertTimeForAFK(86000result);

    PHP код:
    stock ConvertTimeForAFK(numberoutput[] = EOSlength sizeof(output))
    {
        new 
    string[18];
        if(
    number 3599format(stringsizeof(string), "На паузе %d:%02d:%02d"number 3600number 3600/60number 3600 60);
        else if(
    number 59format(stringsizeof(string), "На паузе %d:%02d"number 60number 60);
        else 
    format(stringsizeof(string), "На паузе %d сек."number);
        
    strins(outputstring0length);

    Последний раз редактировалось $continue$; 26.11.2015 в 17:18.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    PHP код:
    new afk_time[MAX_PLAYERS]; 
    PHP код:
    afk_time[playerid] = -1
    PHP код:
        for(new GetMaxPlayers() - 1!= -1i--)
        {
            if(!
    IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
            if(++
    afk_time[i] > 0)
            {
                new 
    string[18];
                if(
    afk_time[i] > 3599format(stringsizeof(string), "На паузе %d:%02d:%02d"afk_time[i] / 3600afk_time[i] % 3600/60afk_time[i] % 3600 60);
                else if(
    afk_time[i] > 59format(stringsizeof(string), "На паузе %d:%02d"afk_time[i] / 60afk_time[i] % 60);
                else 
    format(stringsizeof(string), "На паузе %d сек."afk_time[i]);
                
    SetPlayerChatBubble(istring0xFF0000FF10.01500);
            }
       } 

 

 

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

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

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

Ваши права

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