Raised This Month: $ Target: $400
 0% 

block a command for a certain time


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Elusive138
Senior Member
Join Date: Dec 2010
Old 01-06-2011 , 09:20   Re: block a command for a certain time
Reply With Quote #7

You know, it would really help if you put those examples of how to use a cooldown into your actual code

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "Respawn"
#define VERSION "1.0"
#define AUTHOR "fR4gn0tiX!"

new Float:gCooldown[33], cvarCooldown

stock register_saycmd
(saycommand[], function[], flags = -1info[])
{
    static 
sTemp[64]
    
formatex(sTempsizeof sTemp 1"say /%s"saycommand)
    
register_clcmd(sTemp, function, flagsinfo)
    
formatex(sTempsizeof sTemp 1"say .%s"saycommand)
    
register_clcmd(sTemp, function, flagsinfo)
    
formatex(sTempsizeof sTemp 1"say_team /%s"saycommand)
    
register_clcmd(sTemp, function, flagsinfo)
    
formatex(sTempsizeof sTemp 1"say_team .%s"saycommand)
    
register_clcmd(sTemp, function, flagsinfo)
}


public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_cvar("gacocxleba""v1.0 by fR4gn0tiX!"FCVAR_SERVER|FCVAR_SPONLY)
    
    
register_concmd("amx_respawn""cmd_gacocxleba"ADMIN_SLAY"< saxeli | #userid > - Respawn player")    
    
register_saycmd("respawn""cl_gacocxleba"ADMIN_SLAY"Respawn yourself")            

    
cvarCooldown register_cvar("revive_cooldown""5.0"FCVAR_SPONLY)
}

public 
cmd_gacocxleba(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
       return 
PLUGIN_HANDLED
       
    
new Argument[32
    
    
read_argv(1Argument31
    
    new 
Target cmd_target(idArgumentCMDTARGET_ALLOW_SELF CMDTARGET_OBEY_IMMUNITY
    
    if (
Target
    {    
        if (
is_user_alive(Target)) 
        {
            new 
saxeli[32]            
            
get_user_name(Targetsaxeli31)    
            
            
console_print(id"%s is already alive!"saxeli
            return 
PLUGIN_HANDLED
        
}
    
        new 
Float:cooldownTime get_pcvar_float(cvarCooldown)
        new 
Float:currentTime get_gametime()
        if (
gCooldown[Target] > currentTime)
        {
            
client_print(idprint_console"Please wait another %i seconds before attempting to revive this player."floatround(gCooldown[Target] - currentTime))
            return 
PLUGIN_HANDLED
        
}
        
gCooldown[Target] = currentTime cooldownTime
    
        ExecuteHamB
(Ham_CS_RoundRespawnTarget)
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_HANDLED
}

public 
cl_gacocxleba(id)
{
    if (
is_user_alive(id)) 
    {
        
client_print(idprint_chat"You are already alive!"
        return 
PLUGIN_HANDLED
    
}
    
    new 
Float:cooldownTime get_pcvar_float(cvarCooldown)
    new 
Float:currentTime get_gametime()
    if (
gCooldown[id] > currentTime)
    {
        
client_print(idprint_chat"Please wait another %i seconds before attempting to revive yourself."floatround(gCooldown[id] - currentTime))
        return 
PLUGIN_HANDLED
    
}
    
gCooldown[id] = currentTime cooldownTime
    
    ExecuteHamB
(Ham_CS_RoundRespawnid
    return 
PLUGIN_HANDLED

Untested. Cooldown is on target (i.e. player can only be revived once per cooldown). Change cooldown time with cvar revive_cooldown.

Last edited by Elusive138; 01-06-2011 at 09:23.
Elusive138 is offline
 



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 02:10.


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