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