View Single Post
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 03-15-2020 , 21:10   Re: is_user_admin(id) , does not check after map change
Reply With Quote #9

Here's a rough copy, I did no testing at all. Try it and see what else is needed.

PHP Code:

#include <amxmodx>
#include <nvault>

new const Version[] = "0.3";

const 
DaySeconds 86400;

enum VeteranLevels
{
    
Player,
    
Veteran,
    
Pro
}
enum VeteranLevelData
{
    
SecondsNeeded,
    
VeteranFlags26 ],
    
VeteranBits
}
new 
VeteranInfoVeteranLevels ][ VeteranLevelData ] = 
{
    { 
"" },
    { 
1800 "fghji" },
    { 
3600 "fghjijklmnopqrstu" }
};

enum VeteranData
{
    
SteamID34 ],
    
SecondsPlayed,
    
VeteranLevels:VeteranLevel
}
new 
PlayerDataMAX_PLAYERS ][ VeteranData ];

new 
g_Vault;

public 
plugin_init() 
{
    
register_plugin"Veterans" Version "bugsy" );

    
register_event"HLTV" "NewRound" "a" "1=0" "2=0" );
    
    
register_clcmd"say !veteran" "VeteranSay" );
    
register_clcmd"say_team !veteran" "VeteranSay" );
    
    
register_clcmd"say !pro" "ProSay" );
    
register_clcmd"say_team !pro" "ProSay" );

    
register_clcmd"say !skill" "SkillSay" );
    
register_clcmd"say_team !skill" "SkillSay" );
}

public 
plugin_cfg()
{
    
nvault_prune( ( g_Vault nvault_open"veteran_data" ) ) , get_systime() - ( DaySeconds ) );
    
    for ( new 
VeteranLevels:Veteran VeteranLevels i++ )
    {
        
VeteranInfo][ VeteranBits ] = read_flagsVeteranInfo][ VeteranFlags ] );
    }
}

public 
plugin_end()
{
    
nvault_closeg_Vault );
}

public 
client_authorizedid )
{
    new 
szData13 ] , iTS;
    
    
get_user_authidid PlayerDataid ][ SteamID ] , charsmaxPlayerData[][ SteamID ] ) );
    
    if ( 
nvault_lookupg_Vault PlayerDataid ][ SteamID ] , szData charsmaxszData ) , iTS ) )
    {
        
PlayerDataid ][ SecondsPlayed ] = str_to_numszData );
        
SetVeteranLevelid );
    }
}

#if AMXX_VERSION_NUM >= 190 
public client_disconnectedid )
#else
public client_disconnectid )
#endif
{
    new 
szSeconds13 ];
    
    
num_to_strPlayerDataid ][ SecondsPlayed ] + get_user_timeid ) , szSeconds charsmaxszSeconds ) )
    
nvault_setg_Vault PlayerDataid ][ SteamID ] , szSeconds );
    
    
PlayerDataid ][ SecondsPlayed ] = 0;
    
PlayerDataid ][ VeteranLevel ] = Player;
}

public 
VeteranSayid )
{
    
show_motdid "veteran_motd.txt" );
}

public 
ProSayid )
{
    
show_motdid "pro_motd.txt" );
}

public 
SkillSayid )
{
    if ( 
PlayerDataid  ][ VeteranLevel ] < Pro )
    {
        
set_dhudmessage255 , -1.0 , -1.0 0.0 5.0 0.0 0.0 );
        
        switch ( 
PlayerDataid  ][ VeteranLevel ] )
        {
            case 
Player:
            {
                
show_dhudmessageid  "To become veteran play %d minutes. Type !veteran" VeteranInfoVeteran ][ SecondsNeeded ] / 60 );
            }
            case 
Veteran:
            {
                
show_dhudmessageid  "You are a Veteran. To become Pro play for %d minutes. Type !pro" VeteranInfoPro ][ SecondsNeeded ] / 60 );
            }
        }
    }
    else
    {
        
client_printid  print_chat "* You are a Pro player" );
    }
}

public 
NewRound()
{
    new 
iPlayers32 ] , iNum iPlayer;
    
    
get_playersiPlayers iNum "ch" );
    
    for ( new 
iNum i++ )
    {
        
iPlayer iPlayers];
        
        
SetVeteranLeveliPlayer );
        
SkillSayiPlayer );
    }
}

SetVeteranLevelid )
{
    new 
VeteranLevels:vlLevel Player;
    
    if ( 
PlayerDataid ][ VeteranLevel ] < Pro )
    {
        for ( new 
VeteranLevels:Pro >= Veteran i-- )
        {
            if ( 
PlayerDataid ][ SecondsPlayed ] >= VeteranInfo][ SecondsNeeded ] )
            {
                
vlLevel i;
                
remove_user_flagsid ADMIN_USER );
                
set_user_flagsid , ( get_user_flagsid ) | VeteranInfo][ VeteranBits ] ) );
                break;
            }
        }
    
        
PlayerDataid ][ VeteranLevel ] = vlLevel;
    }

__________________

Last edited by Bugsy; 03-17-2020 at 21:56.
Bugsy is offline