From 0845d7a88a62e0951355a7a5de0e575e24dfcdd6 Mon Sep 17 00:00:00 2001 From: neon <xxx@yyy.de> Date: Mon, 23 Jul 2018 10:59:45 +0200 Subject: [PATCH] initial commit --- .../scripting/hlstatsx_difficulty.sp | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 hlstatsx_difficulty/scripting/hlstatsx_difficulty.sp diff --git a/hlstatsx_difficulty/scripting/hlstatsx_difficulty.sp b/hlstatsx_difficulty/scripting/hlstatsx_difficulty.sp new file mode 100644 index 00000000..6938781f --- /dev/null +++ b/hlstatsx_difficulty/scripting/hlstatsx_difficulty.sp @@ -0,0 +1,120 @@ +#include <sourcemod> +#include <cstrike> +#include <zombiereloaded> + +new bool:G_bIsHuman[66]; +new bool:G_bIsZombie[66]; +new Handle:G_hCvar_Difficulty_Humans; +new Handle:G_hCvar_Difficulty_Zombies; + +public Plugin:myinfo = +{ + name = "HLstatsX CE Difficulty", + description = "Grant points to the winning team. (zombies/humans)", + author = "zaCade + Neon", + version = "1.1", + url = "" +}; + +public OnPluginStart() +{ + G_hCvar_Difficulty_Humans = CreateConVar("hlx_difficulty_humans", "0", "", 0, true, 0.0, true, 3.0); + G_hCvar_Difficulty_Zombies = CreateConVar("hlx_difficulty_zombies", "0", "", 0, true, 0.0, true, 3.0); + HookEvent("round_start", Event_RoundStart, EventHookMode:1); + HookEvent("round_end", Event_RoundEnd, EventHookMode:1); + + AutoExecConfig(true, "plugin.hlstatsx_difficulty"); +} + +public ZR_OnClientInfected(client, attacker, bool:motherinfect, bool:respawnoverride, bool:respawn) +{ + G_bIsHuman[client] = 0; + G_bIsZombie[client] = 1; +} + +public void ZR_OnClientHumanPost(int client, bool respawn, bool protect) +{ + G_bIsHuman[client] = 1; + G_bIsZombie[client] = 0; +} + +public Action:Event_RoundStart(Handle:event, String:name[], bool:dontBroadcast) +{ + new client = 1; + while (client <= MaxClients) + { + G_bIsHuman[client] = 1; + G_bIsZombie[client] = 0; + client++; + } + return Action:0; +} + +public Action:Event_RoundEnd(Handle:event, String:name[], bool:dontBroadcast) +{ + switch (GetEventInt(event, "winner")) + { + case 2: + { + CreateTimer(0.2, OnZombiesWin, any:0, 2); + } + case 3: + { + CreateTimer(0.2, OnHumansWin, any:0, 2); + } + default: + { + } + } + return Action:0; +} + +public Action:OnHumansWin(Handle:timer) +{ + new client = 1; + while (client <= MaxClients) + { + new var1; + if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client)) + { + new var2; + if (G_bIsHuman[client] && !G_bIsZombie[client]) + { + //CS_SetMVPCount(client, CS_GetMVPCount(client) + 1); + new String:sAuthID[64]; + if (!GetClientAuthString(client, sAuthID, 64, true)) + { + Format(sAuthID, 64, "UNKNOWN"); + } + LogToGame("\"%N<%d><%s><%s>\" triggered \"human_win_%i\"", client, GetClientUserId(client), sAuthID, "CT", GetConVarInt(G_hCvar_Difficulty_Humans)); + } + } + client++; + } + return Action:0; +} + +public Action:OnZombiesWin(Handle:timer) +{ + new client = 1; + while (client <= MaxClients) + { + new var1; + if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client)) + { + new var2; + if (G_bIsZombie[client] && !G_bIsHuman[client]) + { + new String:sAuthID[64]; + if (!GetClientAuthString(client, sAuthID, 64, true)) + { + Format(sAuthID, 64, "UNKNOWN"); + } + LogToGame("\"%N<%d><%s><%s>\" triggered \"zombie_win_%i\"", client, GetClientUserId(client), sAuthID, "TERRORIST", GetConVarInt(G_hCvar_Difficulty_Zombies)); + } + } + client++; + } + return Action:0; +} +