View Single Post
alasfourom
Senior Member
Join Date: Feb 2022
Location: Saudi Arabia
Old 11-21-2022 , 18:19   Re: Stop Timer before Callback
Reply With Quote #3

I dont know what you want to do.

Based on what you provided, you can do something like this:

Use: !start/!stop > to activate/delete timer respectively.

PHP Code:
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>

Handle g_hTimer;
bool g_bTimer;
int g_iTimer;

public 
void OnPluginStart()
{
    
RegConsoleCmd("sm_start"Command_StartTimer"Start Timer"); // !start > will start timer
    
RegConsoleCmd("sm_stop"Command_StopTimer"Stop Timer"); // !stop > will delete timer
}

public 
void OnMapStart()
{
    
g_bTimer false;
    
g_iTimer 0;
}

Action Command_StartTimer(int clientint args)
{
    if(!
g_bTimer)
    {
        
PrintToChatAll("Timer: >>>>> Started <<<<<");
        
g_hTimer CreateTimer(1.0Timer_Cooldown_TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
        
g_bTimer true;
    }
    else 
PrintToChat(client"Error: Timer already activated!!");
    return 
Plugin_Handled;
}

Action Timer_Cooldown(Handle timer)
{
    if (
g_iTimer == 60 1//60 = seconds
    
{
        
PrintHintTextToAll("Time: Ready!"g_iTimer);
        
        
// When cooldown is ready, do stuff...
        
        
g_bTimer false;
        
g_iTimer 0;
        return 
Plugin_Stop;
    }
    ++ 
g_iTimer;
    
PrintHintTextToAll("Time: %d / 60"g_iTimer);
    return 
Plugin_Continue;
}

Action Command_StopTimer(int clientint args)
{
    if(
g_bTimer)
    {
        
PrintHintTextToAll("Timer Stopped");
        
PrintToChatAll("Timer: >>>>> Stopped <<<<<");
        
delete g_hTimer;
        
g_bTimer false;
        
g_iTimer 0;
    }
    else 
PrintToChat(client"Error: Timer is not activated");
    return 
Plugin_Handled;

__________________

Last edited by alasfourom; 11-21-2022 at 18:34.
alasfourom is offline