hlstatsx/sourcemod/scripting/superlogs-cspromod.sp
Chris Lynch 1c6d91b818 Pushing the new version of the in game plug-in that has the CS:GO Protobuf changes.
Thanks to Popoklopsi for making the change and sharing it with the community.

https://forums.alliedmods.net/showpost.php?p=1879655&postcount=10

Also adding the source for all the super logs plugins so it is all in one place.

The complied version in the scripting folder are built with sourcemod 1.5.3 on windows.Pushing the new version of the in game plug-in that has the CS:GO Protobuf changes.

Thanks to Popoklopsi for making the change and sharing it with the community.

https://forums.alliedmods.net/showpost.php?p=1879655&postcount=10

Also adding the source for all the super logs plugins so it is all in one place.

The complied version in the scripting folder are built with sourcemod 1.5.3 on windows.init push
2014-06-29 07:05:54 -04:00

117 lines
3.3 KiB
SourcePawn

#include <sourcemod>
#include <loghelper>
#define VERSION "2.2"
public Plugin:myinfo =
{
name = "SuperLogs: CSpromod",
author = "NeoCortex, psychonic",
description = "Rewrites the logs from CSProMod so HLStatsX:CE will understand them",
version = VERSION,
url = "http://www.sourcemod.net/"
};
public OnPluginStart()
{
CreateConVar("superlogs_cspromod_version", VERSION, "SuperLogs: CSpromod", FCVAR_NOTIFY);
HookEvent("player_death", Event_PlayerDeath)
HookEvent("player_connect", Event_PlayerConnect)
HookEvent("player_disconnect", Event_PlayerDisconnect)
HookEvent("player_team", Event_PlayerTeam)
HookEvent("round_start", Event_RoundStart)
HookEvent("round_end", Event_RoundEnd)
CreateTimer(1.0, LogMap);
}
public Action:LogMap(Handle:timer)
{
// Taken from superlogs-generic.sp by psychonic
// Called 1 second after OnPluginStart since srcds does not log the first map loaded. Idea from Stormtrooper's "mapfix.sp" for psychostats
LogMapLoad();
}
public OnMapStart()
{
// For loghelper
GetTeams();
}
public Event_PlayerConnect(Handle:event, const String:name[], bool:dontBroadcast)
{
decl String:cname[MAX_NAME_LENGTH];
GetEventString(event, "name", cname, sizeof(cname));
decl String:steamid[24];
GetEventString(event, "networkid", steamid, sizeof(steamid));
decl String:ip[32];
GetEventString(event, "address", ip, sizeof(ip));
LogToGame("\"%s<%d><%s><>\" connected, address \"%s\"", cname, GetEventInt(event, "userid"), steamid, ip);
}
public Event_PlayerDisconnect(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
decl String:cname[MAX_NAME_LENGTH];
GetClientName(client, cname, sizeof(cname));
decl String:cauth[32];
GetClientAuthString(client, cauth, 32);
decl String:creason[128];
GetEventString(event, "reason", creason, sizeof(creason));
LogToGame("\"%s<%d><%s><>\" disconnected (reason \"%s\")", cname, client, cauth, creason);
}
public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
// Version 2 of this subroutine (using loghelper) is written by psychonic
new victim = GetClientOfUserId(GetEventInt(event, "userid"));
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
decl String:AWeapon[64];
GetEventString(event, "weapon", AWeapon, sizeof(AWeapon));
decl String:properties[12] = "";
if (GetEventBool(event, "headshot"))
{
strcopy(properties, sizeof(properties), " (headshot)");
}
// Player_Suicide
if (attacker == victim)
{
LogSuicide(victim, AWeapon, true, properties);
return;
}
LogKill(attacker, victim, AWeapon, true, properties);
}
public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
LogToGame("World triggered \"Round_Start\"");
}
public Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
new winner = GetEventInt(event, "winner");
if (winner == 2 || winner == 3)
{
LogTeamEvent(winner, "triggered", "Round_Win");
}
LogToGame("World triggered \"Round_End\"");
}
public Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new NTeam = GetEventInt(event, "team");
decl String:STeam[32];
GetTeamName(NTeam, STeam, sizeof(STeam));
LogPlayerEvent(client, "joined team", STeam, true)
}