View Single Post
eyal282
Veteran Member
Join Date: Aug 2011
Old 12-27-2018 , 11:24   Re: Random Code Archive
Reply With Quote #24

Code:
#include <sourcemod>
#include <sdkhooks>
#include <sdktools>
#include <cstrike>
#include <clientprefs>

#define SECONDS_IN_DAY 86400

new const String:TimesToFind[][7] = 
{
	"00:00", "03:00"
}
public Plugin:myinfo = 
{
	name = "Clock Events",
	author = "Eyal282",
	description = "",
	version = "1.0",
	url = ""
}

public OnMapStart()
{
	new secondsSinceMidnight, currentTimeSecondsSinceMidnight;
	new String:Hours[7], String:Minutes[7], String:Buffer[7];
	
	FormatTime(Buffer, sizeof(Buffer), "HH:MM");
	new len = SplitString(Buffer, ":", Hours, sizeof(Hours));
		
	SplitString(Buffer[len], ":", Minutes, sizeof(Minutes));
	
	currentTimeSecondsSinceMidnight = (StringToInt(Hours) * 3600) + (StringToInt(Minutes) * 60);
	
	for(new i=0;i < sizeof(TimesToFind);i++)
	{
		len = SplitString(TimesToFind[i], ":", Hours, sizeof(Hours));
		
		SplitString(TimesToFind[i][len], ":", Minutes, sizeof(Minutes));
		
		secondsSinceMidnight = (StringToInt(Hours) * 3600) + (StringToInt(Minutes) * 60);
		
		if(currentTimeSecondsSinceMidnight > secondsSinceMidnight)
			secondsSinceMidnight += SECONDS_IN_DAY;
		
		
		CreateTimer(float(secondsSinceMidnight - currentTimeSecondsSinceMidnight), OnTimeReached, secondsSinceMidnight > 86400 ? secondsSinceMidnight - 86400 : secondsSinceMidnight, TIMER_FLAG_NO_MAPCHANGE);
	}
}

public Action:OnTimeReached(Handle:hTimer, secondsSinceMidnight)
{
	if(secondsSinceMidnight == 0)
		PrintToChatAll("It's 12:00");
		
	else //if(secondsSinceMidnight == 10800) // 10800 / 3600 = 3 hours passed since 0:00 ( aka 3:00 am )
		PrintToChatAll("TIME FOR A KRABBY PATTY");
		
	CreateTimer(float(SECONDS_IN_DAY), OnTimeReached, secondsSinceMidnight, TIMER_FLAG_NO_MAPCHANGE);
	
	return Plugin_Continue;
}
Untested, this will trigger a timer on 0:00 and 3:00 every day.
__________________
I am available to make plugins for pay.

Discord: Eyal282#1334
eyal282 is offline