AutoRecorder: make demo maxlength configurable
This commit is contained in:
		
							parent
							
								
									c439aa9086
								
							
						
					
					
						commit
						f436ed3652
					
				@ -9,12 +9,12 @@ ConVar g_hTimeStart;
 | 
				
			|||||||
ConVar g_hTimeStop;
 | 
					ConVar g_hTimeStop;
 | 
				
			||||||
ConVar g_hFinishMap;
 | 
					ConVar g_hFinishMap;
 | 
				
			||||||
ConVar g_hDemoPath;
 | 
					ConVar g_hDemoPath;
 | 
				
			||||||
 | 
					ConVar g_hMaxLength;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool g_bRestartRecording = false;
 | 
					 | 
				
			||||||
bool g_bIsRecording = false;
 | 
					bool g_bIsRecording = false;
 | 
				
			||||||
bool g_bIsManual = false;
 | 
					bool g_bIsManual = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int g_iRestartRecording;
 | 
					int g_iStartedRecording;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Default: o=rx,g=rx,u=rwx | 755
 | 
					// Default: o=rx,g=rx,u=rwx | 755
 | 
				
			||||||
#define DIRECTORY_PERMISSIONS (FPERM_O_READ|FPERM_O_EXEC | FPERM_G_READ|FPERM_G_EXEC | FPERM_U_READ|FPERM_U_WRITE|FPERM_U_EXEC)
 | 
					#define DIRECTORY_PERMISSIONS (FPERM_O_READ|FPERM_O_EXEC | FPERM_G_READ|FPERM_G_EXEC | FPERM_U_READ|FPERM_U_WRITE|FPERM_U_EXEC)
 | 
				
			||||||
@ -37,6 +37,7 @@ public void OnPluginStart()
 | 
				
			|||||||
	g_hTimeStop = CreateConVar("sm_autorecord_timestop", "-1", "Hour in the day to stop recording (0-23, -1 disables)");
 | 
						g_hTimeStop = CreateConVar("sm_autorecord_timestop", "-1", "Hour in the day to stop recording (0-23, -1 disables)");
 | 
				
			||||||
	g_hFinishMap = CreateConVar("sm_autorecord_finishmap", "1", "If 1, continue recording until the map ends", _, true, 0.0, true, 1.0);
 | 
						g_hFinishMap = CreateConVar("sm_autorecord_finishmap", "1", "If 1, continue recording until the map ends", _, true, 0.0, true, 1.0);
 | 
				
			||||||
	g_hDemoPath = CreateConVar("sm_autorecord_path", "demos/", "Path to store recorded demos");
 | 
						g_hDemoPath = CreateConVar("sm_autorecord_path", "demos/", "Path to store recorded demos");
 | 
				
			||||||
 | 
						g_hMaxLength = CreateConVar("sm_autorecord_maxlength", "0", "Maximum length of demos in seconds, 0 to disable", _, true, 0.0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	AutoExecConfig(true, "autorecorder");
 | 
						AutoExecConfig(true, "autorecorder");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -67,7 +68,8 @@ public void OnPluginStart()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
 | 
					public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if(g_bRestartRecording && g_iRestartRecording <= GetTime())
 | 
						int maxLength = GetConVarInt(g_hMaxLength);
 | 
				
			||||||
 | 
						if(g_bIsRecording && maxLength > 0 && GetTime() >= g_iStartedRecording + maxLength)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		StopRecord();
 | 
							StopRecord();
 | 
				
			||||||
		CheckStatus();
 | 
							CheckStatus();
 | 
				
			||||||
@ -91,9 +93,6 @@ public void OnMapEnd()
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		StopRecord();
 | 
							StopRecord();
 | 
				
			||||||
		g_bIsManual = false;
 | 
							g_bIsManual = false;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		g_bRestartRecording = false;
 | 
					 | 
				
			||||||
		g_iRestartRecording = -1;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -206,11 +205,9 @@ void StartRecord()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		ServerCommand("tv_record \"%s/auto-%s-%s\"", sPath, sTime, sMap);
 | 
							ServerCommand("tv_record \"%s/auto-%s-%s\"", sPath, sTime, sMap);
 | 
				
			||||||
		g_bIsRecording = true;
 | 
							g_bIsRecording = true;
 | 
				
			||||||
 | 
							g_iStartedRecording = GetTime();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		LogMessage("Recording to auto-%s-%s.dem", sTime, sMap);
 | 
							LogMessage("Recording to auto-%s-%s.dem", sTime, sMap);
 | 
				
			||||||
 | 
					 | 
				
			||||||
		g_bRestartRecording = true;
 | 
					 | 
				
			||||||
		g_iRestartRecording = GetTime() + 1800;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -220,8 +217,5 @@ void StopRecord()
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		ServerCommand("tv_stoprecord");
 | 
							ServerCommand("tv_stoprecord");
 | 
				
			||||||
		g_bIsRecording = false;
 | 
							g_bIsRecording = false;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		g_bRestartRecording = false;
 | 
					 | 
				
			||||||
		g_iRestartRecording = -1;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user