AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   Top 15 (Not For Current Online But For Everyone) (https://forums.alliedmods.net/showthread.php?t=316794)

Alber9091 06-10-2019 13:58

Top 15 (Not For Current Online But For Everyone)
 
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:
https://i.ibb.co/VYhPsP4/New-Bitmap-Image.png

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;




All times are GMT -4. The time now is 00:50.

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