adding loghelper.inc for hlstats-logging
This commit is contained in:
		
							parent
							
								
									03186397a0
								
							
						
					
					
						commit
						eab6aa47ea
					
				
							
								
								
									
										245
									
								
								includes/loghelper.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										245
									
								
								includes/loghelper.inc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,245 @@ | |||||||
|  | #define LOGHELPER_VERSION 5
 | ||||||
|  | 
 | ||||||
|  | #include <sourcemod>
 | ||||||
|  | #include <sdktools>
 | ||||||
|  | 
 | ||||||
|  | char g_team_list[16][64]; | ||||||
|  | 
 | ||||||
|  | // Call this on map start to cache team names in g_team_list
 | ||||||
|  | 
 | ||||||
|  | stock void GetTeams(bool insmod = false) | ||||||
|  | { | ||||||
|  | 	if (!insmod) | ||||||
|  | 	{ | ||||||
|  | 		int max_teams_count = GetTeamCount(); | ||||||
|  | 		for (int team_index = 0; (team_index < max_teams_count); team_index++) | ||||||
|  | 		{ | ||||||
|  | 			char team_name[64]; | ||||||
|  | 			GetTeamName(team_index, team_name, sizeof(team_name)); | ||||||
|  | 
 | ||||||
|  | 			if (strcmp(team_name, "") != 0) | ||||||
|  | 			{ | ||||||
|  | 				g_team_list[team_index] = team_name; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	else | ||||||
|  | 	{ | ||||||
|  | 		// they really need to get their act together... GetTeamName() would be awesome since they can't even keep their team indexes consistent
 | ||||||
|  | 		char mapname[64]; | ||||||
|  | 		GetCurrentMap(mapname, sizeof(mapname)); | ||||||
|  | 		if (strcmp(mapname, "ins_karam") == 0 || strcmp(mapname, "ins_baghdad") == 0) | ||||||
|  | 		{ | ||||||
|  | 			g_team_list[1] = "Iraqi Insurgents"; | ||||||
|  | 			g_team_list[2] = "U.S. Marines"; | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			g_team_list[1] = "U.S. Marines"; | ||||||
|  | 			g_team_list[2] = "Iraqi Insurgents"; | ||||||
|  | 		} | ||||||
|  | 		g_team_list[0] = "Unassigned"; | ||||||
|  | 		g_team_list[3] = "SPECTATOR"; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogPlayerEvent(int client, const char[] verb, const char[] event, bool display_location = false, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(client)) | ||||||
|  | 	{ | ||||||
|  | 		char player_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(client, AuthId_Engine, player_authid, sizeof(player_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if (display_location) | ||||||
|  | 		{ | ||||||
|  | 			float player_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(client, player_origin); | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" %s \"%s\"%s (position \"%d %d %d\")", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, properties, RoundFloat(player_origin[0]), RoundFloat(player_origin[1]), RoundFloat(player_origin[2]));  | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" %s \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, properties);  | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogPlyrPlyrEvent(int client, int victim, const char[] verb, const char[] event, bool display_location = false, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(client) && IsValidPlayer(victim)) | ||||||
|  | 	{ | ||||||
|  | 		char player_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(client, AuthId_Engine, player_authid, sizeof(player_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		char victim_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(victim, AuthId_Engine, victim_authid, sizeof(victim_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		if (display_location) | ||||||
|  | 		{ | ||||||
|  | 			float player_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(client, player_origin); | ||||||
|  | 			 | ||||||
|  | 			float victim_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(victim, victim_origin); | ||||||
|  | 			 | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" %s \"%s\" against \"%N<%d><%s><%s>\"%s (position \"%d %d %d\") (victim_position \"%d %d %d\")", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], properties, RoundFloat(player_origin[0]), RoundFloat(player_origin[1]), RoundFloat(player_origin[2]), RoundFloat(victim_origin[0]), RoundFloat(victim_origin[1]), RoundFloat(victim_origin[2]));  | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" %s \"%s\" against \"%N<%d><%s><%s>\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], properties);  | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogKill(int attacker, int victim, const char[] weapon, bool display_location = false, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(attacker) && IsValidPlayer(victim)) | ||||||
|  | 	{ | ||||||
|  | 		char attacker_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(attacker, AuthId_Engine, attacker_authid, sizeof(attacker_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(attacker_authid, sizeof(attacker_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		char victim_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(victim, AuthId_Engine, victim_authid, sizeof(victim_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 			 | ||||||
|  | 		if (display_location) | ||||||
|  | 		{ | ||||||
|  | 			float attacker_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(attacker, attacker_origin); | ||||||
|  | 			float victim_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(victim, victim_origin); | ||||||
|  | 			 | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" killed \"%N<%d><%s><%s>\" with \"%s\"%s (attacker_position \"%d %d %d\") (victim_position \"%d %d %d\")", attacker, GetClientUserId(attacker), attacker_authid, g_team_list[GetClientTeam(attacker)], victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties, RoundFloat(attacker_origin[0]), RoundFloat(attacker_origin[1]), RoundFloat(attacker_origin[2]), RoundFloat(victim_origin[0]), RoundFloat(victim_origin[1]), RoundFloat(victim_origin[2]));  | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" killed \"%N<%d><%s><%s>\" with \"%s\"%s", attacker, GetClientUserId(attacker), attacker_authid, g_team_list[GetClientTeam(attacker)], victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties);  | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogSuicide(int victim, const char[] weapon, bool display_location = false, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(victim)) | ||||||
|  | 	{ | ||||||
|  | 		char victim_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(victim, AuthId_Engine, victim_authid, sizeof(victim_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 			 | ||||||
|  | 		if (display_location) | ||||||
|  | 		{ | ||||||
|  | 			float victim_origin[3]; | ||||||
|  | 			GetClientAbsOrigin(victim, victim_origin); | ||||||
|  | 			 | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" committed suicide with \"%s\"%s (victim_position \"%d %d %d\")", victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties, RoundFloat(victim_origin[0]), RoundFloat(victim_origin[1]), RoundFloat(victim_origin[2]));  | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			LogToGame("\"%N<%d><%s><%s>\" committed suicide with \"%s\"%s", victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties);  | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // For Psychostats "KTRAJ" kill trajectory log lines
 | ||||||
|  | stock void LogPSKillTraj(int attacker, int victim, const char[] weapon) | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(attacker) && IsValidPlayer(victim)) | ||||||
|  | 	{ | ||||||
|  | 		char attacker_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(attacker, AuthId_Engine, attacker_authid, sizeof(attacker_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(attacker_authid, sizeof(attacker_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		char victim_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(victim, AuthId_Engine, victim_authid, sizeof(victim_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		float attacker_origin[3]; | ||||||
|  | 		GetClientAbsOrigin(attacker, attacker_origin); | ||||||
|  | 		float victim_origin[3]; | ||||||
|  | 		GetClientAbsOrigin(victim, victim_origin); | ||||||
|  | 		 | ||||||
|  | 		LogToGame("[KTRAJ] \"%N<%d><%s><%s>\" killed \"%N<%d><%s><%s>\" with \"%s\" (attacker_position \"%d %d %d\") (victim_position \"%d %d %d\")", attacker, GetClientUserId(attacker), attacker_authid, g_team_list[GetClientTeam(attacker)], victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, RoundFloat(attacker_origin[0]), RoundFloat(attacker_origin[1]), RoundFloat(attacker_origin[2]), RoundFloat(victim_origin[0]), RoundFloat(victim_origin[1]), RoundFloat(victim_origin[2])); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Verb should always be "triggered" for this.
 | ||||||
|  | stock void LogTeamEvent(int team, const char[] verb, const char[] event, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (team > -1) | ||||||
|  | 	{ | ||||||
|  | 		LogToGame("Team \"%s\" %s \"%s\"%s", g_team_list[team], verb, event, properties); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogKillLoc(int attacker, int victim) | ||||||
|  | { | ||||||
|  | 	if (attacker > 0 && victim > 0) | ||||||
|  | 	{ | ||||||
|  | 		float attacker_origin[3]; | ||||||
|  | 		GetClientAbsOrigin(attacker, attacker_origin); | ||||||
|  | 		float victim_origin[3]; | ||||||
|  | 		GetClientAbsOrigin(victim, victim_origin); | ||||||
|  | 				 | ||||||
|  | 		LogToGame("World triggered \"killlocation\" (attacker_position \"%d %d %d\") (victim_position \"%d %d %d\")", RoundFloat(attacker_origin[0]), RoundFloat(attacker_origin[1]), RoundFloat(attacker_origin[2]), RoundFloat(victim_origin[0]), RoundFloat(victim_origin[1]), RoundFloat(victim_origin[2])); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogTeamChange(int client, int newteam, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(client)) | ||||||
|  | 	{ | ||||||
|  | 		char player_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(client, AuthId_Engine, player_authid, sizeof(player_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		LogToGame("\"%N<%d><%s><%s>\" joined team \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], g_team_list[newteam], properties); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogRoleChange(int client, const char[] role, const char[] properties = "") | ||||||
|  | { | ||||||
|  | 	if (IsValidPlayer(client)) | ||||||
|  | 	{ | ||||||
|  | 		char player_authid[32]; | ||||||
|  | 		if (!GetClientAuthId(client, AuthId_Engine, player_authid, sizeof(player_authid), false)) | ||||||
|  | 		{ | ||||||
|  | 			strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		LogToGame("\"%N<%d><%s><%s>\" changed role to \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], role, properties); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | stock void LogMapLoad() | ||||||
|  | { | ||||||
|  | 	char map[64]; | ||||||
|  | 	GetCurrentMap(map, sizeof(map)); | ||||||
|  | 	LogToGame("Loading map \"%s\"", map); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static stock bool IsValidPlayer(int client) | ||||||
|  | { | ||||||
|  | 	if (client > 0 && client <= MaxClients && IsClientInGame(client)) | ||||||
|  | 	{ | ||||||
|  | 		return true; | ||||||
|  | 	} | ||||||
|  | 	return false; | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user