AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [HELP] Hours , Minutes (https://forums.alliedmods.net/showthread.php?t=223148)

thekiller123 08-10-2013 07:54

[HELP] Hours , Minutes
 
...

ConnorMcLeod 08-10-2013 08:49

Re: [HELP] Hours , Minutes
 
You have to consider 2 cases, when happy hours are crossing midnight and when they are not.

Try this :

PHP Code:

#include < amxmodx >

#pragma semicolon 1

#define PLUGIN ""
#define VERSION "0.0.1"

new g_pCvarHappyHourStartHour;
new 
g_pCvarHappyHourStopHour;

new 
bool:g_bHappyHour;

public 
plugin_init()
{
    
register_pluginPLUGINVERSION"ConnorMcLeod" );

    
g_pCvarHappyHourStartHour register_cvar("amx_happyhour_start""22");
    
g_pCvarHappyHourStopHour register_cvar("amx_happyhour_stop""8");

    
register_event("HLTV""Event_HLTV_New_Round""a""1=0""2=0");
    
register_logevent("Event_Round_End"2"1=Round_End");
}

public 
plugin_cfg()
{
    
server_cmd("amx_cvar add %s""amx_happyhour_start");
    
server_cmd("amx_cvar add %s""amx_happyhour_stop");
}

public 
Event_HLTV_New_Round()
{
    if( !
g_bHappyHour )
    {
        new 
hmstartHour max(get_pcvar_num(g_pCvarHappyHourStartHour), 0), stopHour max(get_pcvar_num(g_pCvarHappyHourStopHour), 0);
        if( 
startHour 24 )
        {
            
startHour 0;
        }
        if( 
stopHour 24 )
        {
            
stopHour 0;
        }

        if( 
stopHour == startHour )
        {
            
set_fail_state("Start and Stop hours are equal");
            return;
        }

        
time(hm);

        if( 
startHour stopHour )
        {
            if( 
startHour <= stopHour )
            {
                
StartHappyHour(stopHour);
            }
            else
            {
                
HappyHourWaitTime(hmstartHour);
            }
        }
        else
        {
            if( 
startHour <= || stopHour )
            {
                
StartHappyHour(stopHour);
            }
            else
            {
                
HappyHourWaitTime(hmstartHour);
            }
        }
    }
}

public 
Event_Round_End()
{
    if( 
g_bHappyHour )
    {
        new 
hmstartHour max(get_pcvar_num(g_pCvarHappyHourStartHour), 0), stopHour max(get_pcvar_num(g_pCvarHappyHourStopHour), 0);
        if( 
startHour 24 )
        {
            
startHour 0;
        }
        if( 
stopHour 24 )
        {
            
stopHour 0;
        }
        
        if( 
stopHour == startHour )
        {
            
set_fail_state("Start and Stop hours are equal");
            return;
        }
        
        
time(hm);
        
        if( 
startHour stopHour )
        {
            if( 
startHour || >= stopHour )
            {
                
StopHappyHour();
                
HappyHourWaitTime(hmstartHour);
            }
        }
        else
        {
            if( 
stopHour <= startHour)
            {
                
StopHappyHour();
                
HappyHourWaitTime(hmstartHour);
            }
        }
    }
}

StartHappyHourstopHour )
{
    
g_bHappyHour true;
    
client_print(0print_chat"Happy Hour started, gonna end at %s%d:00"stopHour "0" ""stopHour); 
}

StopHappyHour()
{
    
g_bHappyHour false;
    
client_print(0print_chat"Happy Hour has ended");
}

HappyHourWaitTime(hmstartHour)
{
    if( 
startHour )
    {
        
-= 24;
    }
    if( 
)
    {
        
+= 1;
        
60 m;
    }

    
startHour h;

    
client_print(0print_chat"Happy Hour gonna start in %d hour%s and %d minute%s at %s%d:00"h"s" ""m"s" ""startHour "0" ""startHour); 



thekiller123 08-10-2013 09:11

Re: [HELP] Hours , Minutes
 
thanks.


All times are GMT -4. The time now is 15:57.

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