HappyHour: improve sm_hh

This commit is contained in:
Dogan 2019-07-10 15:34:04 +02:00
parent 934b37d57a
commit e8d7653dde

View File

@ -20,7 +20,7 @@ public Plugin myinfo =
name = "Happy Hour", name = "Happy Hour",
author = "Dogan + Neon", author = "Dogan + Neon",
description = "Create an happy hour with more rank points", description = "Create an happy hour with more rank points",
version = "1.2.0", version = "1.3.0",
url = "" url = ""
}; };
@ -97,7 +97,7 @@ public Action Timer_CheckTime(Handle timer)
if(g_bHappyHourAdmin) if(g_bHappyHourAdmin)
return Plugin_Continue; return Plugin_Continue;
if((InsideTimeFrame(g_iMorningStart, g_iMorningEnd)) || (InsideTimeFrame(g_iNightStart, g_iNightEnd))) if((InsideTimeFrame(g_iMorningStart, g_iMorningEnd) == 0) || (InsideTimeFrame(g_iNightStart, g_iNightEnd) == 0))
{ {
g_bHappyHour = true; g_bHappyHour = true;
} }
@ -109,7 +109,7 @@ public Action Timer_CheckTime(Handle timer)
return Plugin_Continue; return Plugin_Continue;
} }
public bool InsideTimeFrame(int MinTime, int MaxTime) public int InsideTimeFrame(int MinTime, int MaxTime)
{ {
char sTime[8]; char sTime[8];
FormatTime(sTime, sizeof(sTime), "%H%M"); FormatTime(sTime, sizeof(sTime), "%H%M");
@ -121,9 +121,22 @@ public bool InsideTimeFrame(int MinTime, int MaxTime)
MaxTime = (MaxTime <= MinTime) ? MaxTime + 2400 : MaxTime; MaxTime = (MaxTime <= MinTime) ? MaxTime + 2400 : MaxTime;
if (MinTime <= CurTime <= MaxTime) if (MinTime <= CurTime <= MaxTime)
return true; {
return 0;
}
else
{
//Wrap around.
MinTime = (MinTime <= CurTime) ? MinTime + 2400 : MinTime;
MinTime = (MinTime <= MaxTime) ? MinTime + 2400 : MinTime;
return false; // Convert our 'time' to minutes.
CurTime = (RoundToFloor(float(CurTime / 100)) * 60) + (CurTime % 100);
MinTime = (RoundToFloor(float(MinTime / 100)) * 60) + (MinTime % 100);
MaxTime = (RoundToFloor(float(MaxTime / 100)) * 60) + (MaxTime % 100);
return MinTime - CurTime;
}
} }
public void OnMapStart() public void OnMapStart()
@ -144,7 +157,25 @@ public Action Command_DisplayHappyHour(int client, int args)
} }
else else
{ {
ReplyToCommand(client, "[SM] Happy Hour is currently not active."); int iTimeleftMorning = InsideTimeFrame(g_iMorningStart, g_iMorningEnd);
int iTimeleftNight = InsideTimeFrame(g_iNightStart, g_iNightEnd);
int iTimeleft;
char sTimeleft[32];
if(iTimeleftMorning >= iTimeleftNight)
iTimeleft = iTimeleftNight;
else
iTimeleft = iTimeleftMorning;
int iHours = (iTimeleft / 60) % 24;
int iMinutes = (iTimeleft % 60);
if(iHours)
Format(sTimeleft, sizeof(sTimeleft), "%d Hours %02d Minutes", iHours, iMinutes);
else
Format(sTimeleft, sizeof(sTimeleft), "%d Minutes", iMinutes);
ReplyToCommand(client, "[SM] Happy Hour is currently not active. Timeleft: %s.", sTimeleft);
} }
return Plugin_Handled; return Plugin_Handled;