Raised This Month: $32 Target: $400
 8% 

Top 15 (Not For Current Online But For Everyone)


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 06-10-2019 , 13:58   Top 15 (Not For Current Online But For Everyone)
Reply With Quote #1

Hello, Played Time by Alka, shows /pttop15, only among those who are currently online.
can anyone edit it? so it should show /pttop15, irrespective of online.

Link to plugin:
https://forums.alliedmods.net/showthread.php?t=53126

Screenshot:


PHP Code:
/*Played Time with "Current(Total) played Time" on server.*
*                   (nVault support)                          *
*Author:Alka                                              *
*Version: 1.4                                              *
*---------------------------------------------------------*
*                                                          *
***********************************************************/
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <ColorChat>

#define PLUGIN "Played Time"
#define VERSION "1.4"
#define AUTHOR "Alka"

/*Comment this if you don't want to use nvault*/
#define NVAULT
/*Comment this line if you don't want to prune vlutdata*/
#define PRUNE
/*Prune time:ater x time of beeing inactive,remove valutdata*/
#define PRUNE_TIME 157658000 /*6 Months*/ /*Time in seconds*/

new showpt;

new 
TotalPlayedTime[33];

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR );
    
    
register_clcmd("say !ptime""handle_say");
    
register_clcmd("say_team !ptime""handle_say");
    
register_clcmd("say /ptime""handle_say");
    
register_clcmd("say_team /ptime""handle_say");
    
register_clcmd("say !playedtime""handle_say");
    
register_clcmd("say_team !playedtime""handle_say");
    
register_clcmd("say /playedtime""handle_say");
    
register_clcmd("say_team /playedtime""handle_say");
    
register_clcmd("say !playtime""handle_say");
    
register_clcmd("say_team !playtime""handle_say");
    
register_clcmd("say /playtime""handle_say");
    
register_clcmd("say_team /playtime""handle_say");
    
register_clcmd("say /pt""handle_say");
    
register_clcmd("say_team /pt""handle_say");
    
register_clcmd("say !pt""handle_say");
    
register_clcmd("say_team !pt""handle_say");
    
register_concmd("amx_playedtime""admin_showptime"ADMIN_KICK," <#Player Name> - Details about playedtime.");
    
register_concmd("amx_playtime""admin_showptime"ADMIN_KICK," <#Player Name> - Details about playedtime.");
    
register_clcmd("say /pttop15""show_top15");
    
register_clcmd("say_team /pttop15""show_top15");
    
    
showpt register_cvar("amx_pt_mod","1");
        
set_task(120.0"playtime_advert"100__"b")
        
set_task(180.0"playtimetop_advert"100__"b")    
}

public 
playtime_advert(id

    
client_print_color(0print_chat"^4[PSL] ^3Type ^4/ptime ^3in chat or team_chat to see ^4Current ^3And ^4Total Time Played!")
}
public 
playtimetop_advert(id
{  
    
client_print_color(0print_chat"^4[PSL] ^x03Type ^x04/pttop15 ^x03in chat or team_chat to see ^4Top 15 Total Time Played!"


public 
handle_say(id
{
    
set_task(0.1"PrintTime"id);
}
public 
PrintTime(id
{
        static 
timep;
        
        
timep get_user_time(id1) / 60;
            new 
szName[32], szAuthId[35], szDateAndTime[22]
            
get_user_name(idszNamecharsmax(szName))
            
get_user_authid(idszAuthIdcharsmax(szAuthId))
        
get_time("%H:%M:%S - %d/%m/%Y"szDateAndTimecharsmax(szDateAndTime))
        
        switch(
get_pcvar_num(showpt))
        {
            case 
0: return PLUGIN_HANDLED;
                
            case 
:
            {
                
client_print_color(idprint_chat"^4[PSL] ^3%s ^4[%s] ^3you have been playing on the server for:^4 %d minute%s."szNameszAuthIdtimeptimep == "" "s");
                
#if defined NVAULT 
                
client_print_color(idprint_chat"^4[PSL] ^3%s ^4[%s] ^3your total played time on the server:^4 %d minute%s."szNameszAuthIdtimep+TotalPlayedTime[id], timep+TotalPlayedTime[id] == "" "s");
                
#endif
                
client_print_color(idprint_chat"^4[PSL] ^3Current time and date:^4 %s"szDateAndTime);
            }
            case 
:
            {
                
set_hudmessage(25550500.340.5006.04.00.10.2, -1);
                
show_hudmessage(id"[PSL] You have been playing on the server for: %d minute%s.^n[PSL] Current time: %s"timeptimep == "" "s"szDateAndTime);
            }
        }
        return 
PLUGIN_HANDLED;
    }

public 
admin_showptime(id,level,cid
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED;
    
    static 
arg[32];
    
read_argv(1arg31);
    
    new 
player cmd_target(idarg2);
    
    if(!
player)
        return 
PLUGIN_HANDLED;
    
    static 
name[32];
    
get_user_name(playername31);
    
    static 
timep;
    
    
timep get_user_time(player1) / 60;
    new 
szDateAndTime[22]
    
get_time("%H:%M:%S - %d/%m/%Y"szDateAndTimecharsmax(szDateAndTime))
    
    
console_print(id"-----------------------(# [PSL] PlayedTime #)-----------------------");
    
console_print(id"[PSL] %s have been playing on the server for %d minute%s.",nametimeptimep == "" "s");
    
#if defined NVAULT
    
console_print(id"[PSL] %s's total played time on the server %d minute%s.",nametimep+TotalPlayedTime[player], timep == "" "s"); // new
    #endif
    
console_print(id"[PSL] Current time and date: %s"szDateAndTime);
    
console_print(id"-----------------------------------------------------------------");
    
    return 
PLUGIN_HANDLED;
}

#if defined NVAULT
public client_disconnect(id)
{
    
TotalPlayedTime[id] = TotalPlayedTime[id] + (get_user_time(id)/60);
    
SaveTime(idTotalPlayedTime[id]);
}
#endif

#if defined NVAULT
public client_putinserver(id)
{
    
TotalPlayedTime[id] = LoadTime(id);
}
#endif

#if defined NVAULT
public LoadTimeid 
{
    new 
valut nvault_open("Time_played")
    
    new 
authid[33];
    new 
vaultkey[64], vaultdata[64];
    
    
get_user_authid(idauthid32);
    
    
format(vaultkey63"TIMEPLAYED%s"authid);
    
    
nvault_get(valutvaultkeyvaultdata63);
    
nvault_close(valut);
    
    return 
str_to_num(vaultdata);
}
#endif

#if defined NVAULT
public SaveTime(id,PlayedTime)
{
    new 
valut nvault_open("Time_played")
    
    if(
valut == INVALID_HANDLE)
        
set_fail_state("nValut returned invalid handle")
    
    new 
authid[33];
    new 
vaultkey[64], vaultdata[64];
    
    
get_user_authid(idauthid32);
    
    
format(vaultkey63"TIMEPLAYED%s"authid); 
    
format(vaultdata63"%d"PlayedTime); 
    
    
nvault_set(valutvaultkeyvaultdata);
    
nvault_close(valut);
}
#endif

#if defined PRUNE
public prune()
{
    new 
valut nvault_open("Time_played");
    
    if(
valut == INVALID_HANDLE)
        
set_fail_state("nValut returned invalid handle");
    
    
nvault_prune(valut0get_systime() - PRUNE_TIME);
    
nvault_close(valut);
}
#endif

#if defined PRUNE
public plugin_end()
{
    
prune()
}
#endif

#if defined NVAULT
public show_top15(id)
{
    new 
icount;
    static 
sort[33][2], maxPlayers;
    
    if(!
maxPlayersmaxPlayers get_maxplayers();
    
    for(
i=1;i<=maxPlayers;i++)
    {
        
sort[count][0] = i;
        
sort[count][1] = TotalPlayedTime[i] + (get_user_time(i1) / 60);
        
count++;
    }
    
    
SortCustom2D(sort,count,"stats_custom_compare");
    
    new 
motd[1024], len    
    
    len 
format(motd1023,"<body bgcolor=#000000><font color=#FFB000><pre>")
    
len += format(motd[len], 1023-len,"%s %-22.22s %3s^n""#""Name""Time")
    
    new 
players[32], num
    get_players
(playersnum)
    
    new 
clamp(count,0,15)
    
    new 
name[32], player
    
    
for(new 0ba++)
    {
        
player sort[a][0]
        
        
get_user_name(playername31)        
        
len += format(motd[len], 1023-len,"%d %-22.22s %d^n"a+1namesort[a][1])
    }
    
    
len += format(motd[len], 1023-len,"</body></font></pre>")
    
show_motd(idmotd"Played-Time Top 15")
    
    return 
PLUGIN_CONTINUE
}
#endif

public stats_custom_compare(elem1[],elem2[])
{
    if(
elem1[1] > elem2[1]) return -1;
    else if(
elem1[1] < elem2[1]) return 1;
        
    return 
0;


Last edited by Alber9091; 06-10-2019 at 14:11.
Alber9091 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 23:17.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode