add FailNadeFriday
This commit is contained in:
		
							parent
							
								
									6c13d692a0
								
							
						
					
					
						commit
						5a85455187
					
				
							
								
								
									
										179
									
								
								FailNadeFriday/scripting/FailNadeFriday.sp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								FailNadeFriday/scripting/FailNadeFriday.sp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,179 @@
 | 
			
		||||
#pragma semicolon 1
 | 
			
		||||
 | 
			
		||||
#include <sourcemod>
 | 
			
		||||
 | 
			
		||||
#include "nominations_extended.inc"
 | 
			
		||||
 | 
			
		||||
#pragma newdecls required
 | 
			
		||||
 | 
			
		||||
char g_sBlacklistedMapsPath[PLATFORM_MAX_PATH];
 | 
			
		||||
char g_sExtraMapsPath[PLATFORM_MAX_PATH];
 | 
			
		||||
 | 
			
		||||
public Plugin myinfo =
 | 
			
		||||
{
 | 
			
		||||
	name = "Failnade Fridays",
 | 
			
		||||
	author = "Obus",
 | 
			
		||||
	description = "",
 | 
			
		||||
	version = "",
 | 
			
		||||
	url = ""
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
public void OnPluginStart()
 | 
			
		||||
{
 | 
			
		||||
	BuildPath(Path_SM, g_sBlacklistedMapsPath, sizeof(g_sBlacklistedMapsPath), "configs/failnadefridayblacklist.cfg");
 | 
			
		||||
	BuildPath(Path_SM, g_sExtraMapsPath, sizeof(g_sExtraMapsPath), "configs/failnadefridayextra.cfg");
 | 
			
		||||
 | 
			
		||||
	if (!FileExists(g_sBlacklistedMapsPath))
 | 
			
		||||
		LogMessage("configs/failnadefridayblacklist.cfg missing, is this intended?");
 | 
			
		||||
 | 
			
		||||
	if (!FileExists(g_sExtraMapsPath))
 | 
			
		||||
		LogMessage("configs/failnadefridayextra.cfg missing, is this intended?");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public void OnClientPutInServer(int client)
 | 
			
		||||
{
 | 
			
		||||
	if (IsVoteInProgress())
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	if (!IsItFailnadeTime())
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	Panel hNotifyPanel = new Panel(GetMenuStyleHandle(MenuStyle_Radio));
 | 
			
		||||
	hNotifyPanel.SetTitle("*** It's Fail Nade Friday! ***");
 | 
			
		||||
	hNotifyPanel.DrawItem("", ITEMDRAW_SPACER);
 | 
			
		||||
	hNotifyPanel.DrawItem("** Nades have a much higher knockback than usual for today. **", ITEMDRAW_RAWLINE);
 | 
			
		||||
	hNotifyPanel.DrawItem("** In addition to that, extra maps have been added to rotation for today! **", ITEMDRAW_RAWLINE);
 | 
			
		||||
	hNotifyPanel.DrawItem("", ITEMDRAW_SPACER);
 | 
			
		||||
	hNotifyPanel.DrawItem("** Have fun! **", ITEMDRAW_RAWLINE);
 | 
			
		||||
	hNotifyPanel.DrawItem("", ITEMDRAW_SPACER);
 | 
			
		||||
	hNotifyPanel.DrawItem("1. Got it!", ITEMDRAW_RAWLINE);
 | 
			
		||||
	hNotifyPanel.SetKeys(1023);
 | 
			
		||||
 | 
			
		||||
	hNotifyPanel.Send(client, MenuHandler_NotifyPanel, 0);
 | 
			
		||||
 | 
			
		||||
	delete hNotifyPanel;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int MenuHandler_NotifyPanel(Menu hMenu, MenuAction iAction, int iParam1, int iParam2)
 | 
			
		||||
{
 | 
			
		||||
	switch (iAction)
 | 
			
		||||
	{
 | 
			
		||||
		case MenuAction_Select, MenuAction_Cancel:
 | 
			
		||||
			delete hMenu;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public void OnConfigsExecuted()
 | 
			
		||||
{
 | 
			
		||||
	CreateTimer(5.0, Timer_PostOnConfigsExecuted, TIMER_FLAG_NO_MAPCHANGE, _);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public Action Timer_PostOnConfigsExecuted(Handle hThis)
 | 
			
		||||
{
 | 
			
		||||
	if (!FileExists(g_sBlacklistedMapsPath))
 | 
			
		||||
		SetFailState("configs/failnadefriday.cfg missing!");
 | 
			
		||||
 | 
			
		||||
	if (IsItFailnadeTime())
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList hExtraMaps = new ArrayList(ByteCountToCells(PLATFORM_MAX_PATH));
 | 
			
		||||
		File hExtraMapsConfig = OpenFile(g_sExtraMapsPath, "r");
 | 
			
		||||
 | 
			
		||||
		while (!hExtraMapsConfig.EndOfFile())
 | 
			
		||||
		{
 | 
			
		||||
			char sLine[128];
 | 
			
		||||
 | 
			
		||||
			if (!hExtraMapsConfig.ReadLine(sLine, sizeof(sLine)))
 | 
			
		||||
				break;
 | 
			
		||||
 | 
			
		||||
			if (strncmp(sLine, "//", 2) == 0)
 | 
			
		||||
				continue;
 | 
			
		||||
 | 
			
		||||
			int iCurIndex=0;
 | 
			
		||||
			while (sLine[iCurIndex] != '\0')
 | 
			
		||||
			{
 | 
			
		||||
				if (sLine[iCurIndex] < 0x20 || sLine[iCurIndex] > 0x7F) sLine[iCurIndex] = '\0';
 | 
			
		||||
				iCurIndex++;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			sLine[iCurIndex-1]='\0';
 | 
			
		||||
 | 
			
		||||
			if (IsMapValid(sLine))
 | 
			
		||||
				hExtraMaps.PushString(sLine);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		SortADTArrayCustom(view_as<Handle>(hExtraMaps), SortFuncADTArray_SortAlphabetical);
 | 
			
		||||
 | 
			
		||||
		PushMapsIntoNominationPool(hExtraMaps);
 | 
			
		||||
 | 
			
		||||
		delete hExtraMapsConfig;
 | 
			
		||||
		delete hExtraMaps;
 | 
			
		||||
 | 
			
		||||
		char sMap[64];
 | 
			
		||||
 | 
			
		||||
		GetCurrentMap(sMap, sizeof(sMap));
 | 
			
		||||
 | 
			
		||||
		File hBlacklistedMapsConfig = OpenFile(g_sBlacklistedMapsPath, "r");
 | 
			
		||||
 | 
			
		||||
		while (!hBlacklistedMapsConfig.EndOfFile())
 | 
			
		||||
		{
 | 
			
		||||
			char sLine[128];
 | 
			
		||||
 | 
			
		||||
			if (!hBlacklistedMapsConfig.ReadLine(sLine, sizeof(sLine)))
 | 
			
		||||
				break;
 | 
			
		||||
 | 
			
		||||
			if (strncmp(sLine, "//", 2) == 0)
 | 
			
		||||
				continue;
 | 
			
		||||
 | 
			
		||||
			int iCurIndex=0;
 | 
			
		||||
			while (sLine[iCurIndex] != '\0')
 | 
			
		||||
			{
 | 
			
		||||
				if (sLine[iCurIndex] < 0x20 || sLine[iCurIndex] > 0x7F) sLine[iCurIndex] = '\0';
 | 
			
		||||
				iCurIndex++;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			sLine[iCurIndex-1]='\0';
 | 
			
		||||
 | 
			
		||||
			if (strcmp(sLine, sMap, false) == 0)
 | 
			
		||||
			{
 | 
			
		||||
				delete hBlacklistedMapsConfig;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		delete hBlacklistedMapsConfig;
 | 
			
		||||
 | 
			
		||||
		CreateTimer(3.0, Timer_LoadConfig, _, TIMER_FLAG_NO_MAPCHANGE);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int SortFuncADTArray_SortAlphabetical(int idx1, int idx2, Handle hExtraMaps, Handle unk)
 | 
			
		||||
{
 | 
			
		||||
	char sStr1[PLATFORM_MAX_PATH];
 | 
			
		||||
	char sStr2[PLATFORM_MAX_PATH];
 | 
			
		||||
 | 
			
		||||
	view_as<ArrayList>(hExtraMaps).GetString(idx1, sStr1, sizeof(sStr1));
 | 
			
		||||
	view_as<ArrayList>(hExtraMaps).GetString(idx2, sStr2, sizeof(sStr2));
 | 
			
		||||
 | 
			
		||||
	return strcmp(sStr2, sStr1, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public Action Timer_LoadConfig(Handle hThis)
 | 
			
		||||
{
 | 
			
		||||
	ServerCommand("exec failnadefriday");//2lazy
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool IsItFailnadeTime()
 | 
			
		||||
{
 | 
			
		||||
	int iTime = GetTime();
 | 
			
		||||
	int iHour;
 | 
			
		||||
	char sTime[32];
 | 
			
		||||
 | 
			
		||||
	FormatTime(sTime, sizeof(sTime), "%w %H", iTime);
 | 
			
		||||
 | 
			
		||||
	iHour = StringToInt(sTime[2]);
 | 
			
		||||
 | 
			
		||||
	if ((sTime[0] == '5' && iHour >= 6) || (sTime[0] == '6' && iHour < 6))
 | 
			
		||||
		return true;
 | 
			
		||||
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								includes/nominations_extended.inc
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								includes/nominations_extended.inc
									
									
									
									
									
										Symbolic link
									
								
							@ -0,0 +1 @@
 | 
			
		||||
../mapchooser_extended/scripting/include/nominations_extended.inc
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user