Статус темы:
Закрыта.
  1. TauJIeP Пользователь

    Регистрация:
    04.04.16
    Сообщения:
    389
    Симпатии:
    42
    Пол:
    Мужской
    Skype:
    hohlachev-s
    Добавьте ктонибудь сюда цветной чат). Немного перевел на русский плагин от serfreeman1337 (Played Time v2)
    PHP:
    #include <amxmodx>
    #include <nvault>

    #define S_MINUTE 60
    #define S_HOUR 3600
    #define S_DAY 86400
    #define S_WEEK 604800
    #define S_MONTH 2592000
    #define S_YEAR 31536000 // To long
    #define BU    1536

    new vault
    new cv_prune

    public plugin_init(){
        
    register_plugin("Played Time v2","0.1","[LF] | Dr.Freeman")

        
    cv_prune register_cvar("amx_pt_prune""30")    // in days

        
    register_clcmd("say /time","cmdptime")
        
    register_clcmd("say /timetop","cmdalltime")
        
    register_clcmd("say /timeall","cmdalltime")

        
    vault nvault_open("played_time")
    }

    public 
    plugin_cfg(){
        new 
    prune_time=(get_systime()-(get_pcvar_num(cv_prune)*86400))
        
    nvault_prune(vault0prune_time)
    }

    public 
    plugin_end(){
        
    nvault_close(vault)
    }

    public 
    client_putinserver(id){
        new 
    name[32],key[64],data[128],sday[5]

        
    get_user_name(id,name,31)
        
    get_time("%d",sday,4)

        
    formatex(key,63,"ALLTIME#%s",name)
        
    nvault_touch(vault,key)
        
    formatex(key,63,"TODAYTIME#%s",name)
        
    nvault_touch(vault,key)
        
    nvault_get(vault,key,data,127)

        new 
    today[5], todaytime[128]
        
    parse(data,today,4,todaytime,127)
     
        if(
    str_to_num(today)!=str_to_num(sday)){
            
    formatex(data127"%d 0",str_to_num(sday))
            
    nvault_set(vault,key,data)
        }
    }

    public 
    client_disconnect(id){
        new 
    key[64],data[128]
        new 
    name[32]
        new 
    sday[5]
        
    get_time("%d",sday,4)
        new 
    day str_to_num(sday)
     
        
    get_user_name(id,name,31)
        
    formatex(key,63,"ALLTIME#%s",name)
     
        
    nvault_get(vault,key,data,127)
     
        new 
    alltime str_to_num(data)
     
        
    formatex(data,127,"%d",alltime+(get_user_time(id)))
     
        
    nvault_set(vaultkeydata)
     
        
    formatex(key,63,"TODAYTIME#%s",name)
        
    nvault_get(vault,key,data,127)
     
        new 
    today[5], todaytime[128]
        
    parse(data,today,4,todaytime,127)
     
        if(
    str_to_num(today)!=day){
            
    formatex(data127"%d 0"day)
            
    nvault_set(vaultkeydata)
        }
        else{
            
    formatex(data127,"%d %d",day,str_to_num(todaytime)+get_user_time(id))
            
    nvault_set(vault,key,data)
        }
    }

    public 
    cmdptime(id){
        new 
    name[32],key[64],data[128],thetime[65]
        new 
    sday[5],todayplay[128]
        
    get_user_name(id,name,31)
             
        
    formatex(key,63,"TODAYTIME#%s"name)
             
        
    nvault_get(vault,key,data,127)
        
    parse(data,sday,4,todayplay,4)
     
        new 
    todaytime=get_user_time(id)+str_to_num(todayplay)
        
    get_human_time(todaytime,thetime,63)

        
    client_print(id,print_chat,"|Time| Сегодня вы провели на сервере: %s",thetime)

        
    formatex(key,63,"ALLTIME#%s",name)

        
    nvault_get(vault,key,data,127)

        new 
    alltime=get_user_time(id)+str_to_num(data)
        
    get_human_time(alltime,thetime,63)

        
    client_print(id,print_chat,"|Time| Общее проведенное время на сервере: %s",thetime)

        return 
    PLUGIN_HANDLED             
    }

    public 
    cmdalltime(id){
        new 
    buffer[BU],title[32]

        
    format_pt(id,buffer)
        
    formatex(title,charsmax(title),"Played Time")
        
    show_motd(id,buffer,title)

        return 
    PLUGIN_CONTINUE
    }

    format_pt(id,motd[BU]){
        new 
    len
        
    new name[33], templar[32]
        new 
    pls[32],iwant_iphone,key[64],data[128]
     
        
    len format(motdBU-len,"%s %-22.22s %3s^n""#""Name""Time")

        
    get_players(pls,iwant_iphone// sff)
        
    for(new i=0;i<iwant_iphone;i++)
        {
            new 
    thetime[64]
         
            
    get_user_name(pls[i],name,sizeof(name)-1)
            
    get_user_name(id,templar,sizeof(templar)-1)

            
    formatex(key,63"ALLTIME#%s",name)
                 
            
    nvault_get(vault,key,data,sizeof(data)-1)
         
            new 
    iwant_iscreem=str_to_num(data)+get_user_time(pls[i]) // scripting for fun :D
         
            
    get_human_time(iwant_iscreem,thetime,sizeof(thetime)-1)

            if(
    equal(templar,name))
            {
                
    len+=format(motd[len],BU-len,"%d %-22.22s %s^n",i+1,name,thetime// First will be user =)
            
    }
            else
            {
                
    len+=format(motd[len],BU-len,"%d %-22.22s %s^n",i+1,name,thetime)
            }
        }

        return 
    PLUGIN_CONTINUE 
    }

    // Get time in 'human' like format (not a 'you played 529 minutes')
    get_human_time(time,output[],len){
        new 
    m,h,d,w,mo,y
        
    if(time)formatex(output,len,"%d сек",time// gg
        
    if(time/S_MINUTE){
            
    m=time/S_MINUTE
            formatex
    (output,len,"%d мин",m)
        }

        if(
    time/S_HOUR){
            
    h=time/S_HOUR
            m
    =(time-(h*S_HOUR))/S_MINUTE
            formatex
    (output,len,"Часы: %d Минуты: %d",h,m)
        }
         
        if(
    time/S_DAY){
            
    d=time/S_DAY
            h
    =(time-(d*S_DAY))/S_HOUR
            formatex
    (output,len,"Дни: %d Часы: %d Минуты: %d"d,h,m)
        }
         
        if(
    time/(S_WEEK)){
            
    w=time/(S_WEEK)
            
    d=(time-(w*(S_WEEK)))/S_DAY
            formatex
    (output,len,"Дни: %d Часы: %d Минуты: %d ",d,h,m)
        }
         
        if(
    time/S_MONTH){
            
    mo=time/S_MONTH
            w
    =(time-(mo*S_MONTH))/S_WEEK
            formatex
    (output,len,"Месяц: %d Неделя: %d Дни: %d Часы: %d Минуты: %d",mo,w,d,h,m)
        }
        if((
    time/S_YEAR)>1){
            
    y=time/S_YEAR
            mo
    =(time-(y*S_YEAR))/S_MONTH
            formatex
    (output,len,"Год: %d Месяц %d Неделя: %d Дни: %d Часы: %d Минуты: %d",y,mo,w,d,h,m// If you played to long let me know
        
    }
    }

    /* [LF] | GordonFreeman */
     
  2. TauJIeP Пользователь

    Регистрация:
    04.04.16
    Сообщения:
    389
    Симпатии:
    42
    Пол:
    Мужской
    Skype:
    hohlachev-s
    Вопросы решен! тему можно закрыть.

    Решение:
    Добавлен цветной чат, убрана команда отображение motd.

    PHP:
    #include <amxmodx>
    #include <nvault>
    #include <colorchat>

    #define S_MINUTE 60
    #define S_HOUR 3600
    #define S_DAY 86400
    #define S_WEEK 604800
    #define S_MONTH 2592000
    #define S_YEAR 31536000 // To long
    #define BU    1536

    new vault
    new cv_prune

    public plugin_init(){
        
    register_plugin("Played Time v2","0.1","Dr.Freeman")

        
    cv_prune register_cvar("amx_pt_prune""30")    // in days

        
    register_clcmd("say /time","cmdptime")

        
    vault nvault_open("played_time")
    }

    public 
    plugin_cfg(){
        new 
    prune_time=(get_systime()-(get_pcvar_num(cv_prune)*86400))
        
    nvault_prune(vault0prune_time)
    }

    public 
    plugin_end(){
        
    nvault_close(vault)
    }

    public 
    client_putinserver(id){
        new 
    name[32],key[64],data[128],sday[5]

        
    get_user_name(id,name,31)
        
    get_time("%d",sday,4)

        
    formatex(key,63,"ALLTIME#%s",name)
        
    nvault_touch(vault,key)
        
    formatex(key,63,"TODAYTIME#%s",name)
        
    nvault_touch(vault,key)
        
    nvault_get(vault,key,data,127)

        new 
    today[5], todaytime[128]
        
    parse(data,today,4,todaytime,127)
     
        if(
    str_to_num(today)!=str_to_num(sday)){
            
    formatex(data127"%d 0",str_to_num(sday))
            
    nvault_set(vault,key,data)
        }
    }

    public 
    client_disconnect(id){
        new 
    key[64],data[128]
        new 
    name[32]
        new 
    sday[5]
        
    get_time("%d",sday,4)
        new 
    day str_to_num(sday)
     
        
    get_user_name(id,name,31)
        
    formatex(key,63,"ALLTIME#%s",name)
     
        
    nvault_get(vault,key,data,127)
     
        new 
    alltime str_to_num(data)
     
        
    formatex(data,127,"%d",alltime+(get_user_time(id)))
     
        
    nvault_set(vaultkeydata)
     
        
    formatex(key,63,"TODAYTIME#%s",name)
        
    nvault_get(vault,key,data,127)
     
        new 
    today[5], todaytime[128]
        
    parse(data,today,4,todaytime,127)
     
        if(
    str_to_num(today)!=day){
            
    formatex(data127"%d 0"day)
            
    nvault_set(vaultkeydata)
        }
        else{
            
    formatex(data127,"%d %d",day,str_to_num(todaytime)+get_user_time(id))
            
    nvault_set(vault,key,data)
        }
    }

    public 
    cmdptime(id){
        new 
    name[32],key[64],data[128],thetime[65]
        new 
    sday[5],todayplay[128]
        
    get_user_name(id,name,31)
             
        
    formatex(key,63,"TODAYTIME#%s"name)
             
        
    nvault_get(vault,key,data,127)
        
    parse(data,sday,4,todayplay,4)
     
        new 
    todaytime=get_user_time(id)+str_to_num(todayplay)
        
    get_human_time(todaytime,thetime,63)

        
    client_print_color(id,print_team_default,"^4|Time| ^1Сегодня вы провели на сервере: ^3%s",thetime)

        
    formatex(key,63,"ALLTIME#%s",name)

        
    nvault_get(vault,key,data,127)

        new 
    alltime=get_user_time(id)+str_to_num(data)
        
    get_human_time(alltime,thetime,63)

        
    client_print_color(id,print_team_default,"^4|Time| ^1Общее проведенное время на сервере: ^3%s",thetime)

        return 
    PLUGIN_HANDLED             
    }

    public 
    cmdalltime(id){
        new 
    buffer[BU],title[32]

        
    format_pt(id,buffer)
        
    formatex(title,charsmax(title),"Played Time")
        
    show_motd(id,buffer,title)

        return 
    PLUGIN_CONTINUE
    }

    format_pt(id,motd[BU]){
        new 
    len
        
    new name[33], templar[32]
        new 
    pls[32],iwant_iphone,key[64],data[128]
     
        
    len format(motdBU-len,"%s %-22.22s %3s^n""#""Name""Time")

        
    get_players(pls,iwant_iphone// sff)
        
    for(new i=0;i<iwant_iphone;i++)
        {
            new 
    thetime[64]
         
            
    get_user_name(pls[i],name,sizeof(name)-1)
            
    get_user_name(id,templar,sizeof(templar)-1)

            
    formatex(key,63"ALLTIME#%s",name)
                 
            
    nvault_get(vault,key,data,sizeof(data)-1)
         
            new 
    iwant_iscreem=str_to_num(data)+get_user_time(pls[i]) // scripting for fun :D
         
            
    get_human_time(iwant_iscreem,thetime,sizeof(thetime)-1)

            if(
    equal(templar,name))
            {
                
    len+=format(motd[len],BU-len,"%d %-22.22s %s^n",i+1,name,thetime// First will be user =)
            
    }
            else
            {
                
    len+=format(motd[len],BU-len,"%d %-22.22s %s^n",i+1,name,thetime)
            }
        }

        return 
    PLUGIN_CONTINUE 
    }

    // Get time in 'human' like format (not a 'you played 529 minutes')
    get_human_time(time,output[],len){
        new 
    m,h,d,w,mo,y
        
    if(time)formatex(output,len,"%d сек",time// gg
        
    if(time/S_MINUTE){
            
    m=time/S_MINUTE
            formatex
    (output,len,"%d мин",m)
        }

        if(
    time/S_HOUR){
            
    h=time/S_HOUR
            m
    =(time-(h*S_HOUR))/S_MINUTE
            formatex
    (output,len,"Часы: %d Минуты: %d",h,m)
        }
         
        if(
    time/S_DAY){
            
    d=time/S_DAY
            h
    =(time-(d*S_DAY))/S_HOUR
            formatex
    (output,len,"Дни: %d Часы: %d Минуты: %d"d,h,m)
        }
         
        if(
    time/(S_WEEK)){
            
    w=time/(S_WEEK)
            
    d=(time-(w*(S_WEEK)))/S_DAY
            formatex
    (output,len,"Дни: %d Часы: %d Минуты: %d ",d,h,m)
        }
         
        if(
    time/S_MONTH){
            
    mo=time/S_MONTH
            w
    =(time-(mo*S_MONTH))/S_WEEK
            formatex
    (output,len,"Месяц: %d Неделя: %d Дни: %d Часы: %d Минуты: %d",mo,w,d,h,m)
        }
        if((
    time/S_YEAR)>1){
            
    y=time/S_YEAR
            mo
    =(time-(y*S_YEAR))/S_MONTH
            formatex
    (output,len,"Год: %d Месяц %d Неделя: %d Дни: %d Часы: %d Минуты: %d",y,mo,w,d,h,m// If you played to long let me know
        
    }
    }

    /* [LF] | GordonFreeman */
     
    Последнее редактирование: 23.04.16
Статус темы:
Закрыта.