Spring break cleanup.

Cleaning up all useless tabs, spaces, indents, you name it.
This commit is contained in:
zaCade 2018-07-23 17:06:03 +02:00
parent 0e8490f32f
commit c8b3433700
17 changed files with 925 additions and 962 deletions

View File

@ -27,11 +27,11 @@ char g_sStats[4096];
public Plugin myinfo = public Plugin myinfo =
{ {
name = "AntiBhopCheat", name = "AntiBhopCheat",
author = "BotoX", autho = "BotoX",
description = "Detect all kinds of bhop cheats", description = "Detect all kinds of bhop cheats",
version = "0.0", version = "0.0",
url = "" url = ""
}; };
@ -51,7 +51,7 @@ public void OnPluginStart()
OnClientPutInServer(client); OnClientPutInServer(client);
} }
} }
// Api // Api
g_hOnClientDetected = CreateGlobalForward("AntiBhopCheat_OnClientDetected", ET_Ignore, Param_Cell, Param_String, Param_String); g_hOnClientDetected = CreateGlobalForward("AntiBhopCheat_OnClientDetected", ET_Ignore, Param_Cell, Param_String, Param_String);
} }
@ -364,7 +364,7 @@ NotifyAdmins(int client, const char[] sReason)
PrintStreak(i, client, -1, true); PrintStreak(i, client, -1, true);
} }
} }
Forward_OnDetected(client, sReason, g_sStats) Forward_OnDetected(client, sReason, g_sStats)
} }
@ -421,7 +421,7 @@ void PrintStats(int client, int iTarget)
PrintToConsole(client, "Global jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%", PrintToConsole(client, "Global jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%",
iGlobalJumps, HyperRatio * 100.0, HackRatio * 100.0); iGlobalJumps, HyperRatio * 100.0, HackRatio * 100.0);
int aGlobalJumps[3]; int aGlobalJumps[3];
Player.GetJumps(aGlobalJumps); Player.GetJumps(aGlobalJumps);
@ -430,7 +430,7 @@ void PrintStats(int client, int iTarget)
(aGlobalJumps[1] / float(iGlobalJumps)) * 100.0, (aGlobalJumps[1] / float(iGlobalJumps)) * 100.0,
(aGlobalJumps[2] / float(iGlobalJumps)) * 100.0); (aGlobalJumps[2] / float(iGlobalJumps)) * 100.0);
PrintToConsole(client, "more to come..."); PrintToConsole(client, "more to come...");
} }
@ -475,9 +475,9 @@ public Action Command_Streak(int client, int argc)
void PrintStreak(int client, int iTarget, int iStreak, bool bDetected=false) void PrintStreak(int client, int iTarget, int iStreak, bool bDetected=false)
{ {
g_sStats = ""; g_sStats = "";
PrintToConsole(client, "[SM] Bunnyhop streak %d for %L", iStreak, iTarget); PrintToConsole(client, "[SM] Bunnyhop streak %d for %L", iStreak, iTarget);
if (bDetected) if (bDetected)
Format(g_sStats, sizeof(g_sStats), "%sBunnyhop streak %d for %L\n", Format(g_sStats, sizeof(g_sStats), "%sBunnyhop streak %d for %L\n",
g_sStats, iStreak, iTarget); g_sStats, iStreak, iTarget);
@ -517,7 +517,7 @@ void PrintStreak(int client, int iTarget, int iStreak, bool bDetected=false)
PrintToConsole(client, "Streak jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%", PrintToConsole(client, "Streak jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%",
iStreakJumps, HyperRatio * 100.0, HackRatio * 100.0); iStreakJumps, HyperRatio * 100.0, HackRatio * 100.0);
if (bDetected) if (bDetected)
Format(g_sStats, sizeof(g_sStats), "%sStreak jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%\n", Format(g_sStats, sizeof(g_sStats), "%sStreak jumps: %d | Hyper?: %.1f%% | Hack?: %.1f%%\n",
g_sStats, iStreakJumps, HyperRatio * 100.0, HackRatio * 100.0); g_sStats, iStreakJumps, HyperRatio * 100.0, HackRatio * 100.0);
@ -529,17 +529,17 @@ void PrintStreak(int client, int iTarget, int iStreak, bool bDetected=false)
(aStreakJumps[0] / float(iStreakJumps)) * 100.0, (aStreakJumps[0] / float(iStreakJumps)) * 100.0,
(aStreakJumps[1] / float(iStreakJumps)) * 100.0, (aStreakJumps[1] / float(iStreakJumps)) * 100.0,
(aStreakJumps[2] / float(iStreakJumps)) * 100.0); (aStreakJumps[2] / float(iStreakJumps)) * 100.0);
if (bDetected) if (bDetected)
Format(g_sStats, sizeof(g_sStats), "%sStreak jumps perf group (1 2 +): %1.f%% %1.f%% %1.f%%\n", Format(g_sStats, sizeof(g_sStats), "%sStreak jumps perf group (1 2 +): %1.f%% %1.f%% %1.f%%\n",
g_sStats, g_sStats,
(aStreakJumps[0] / float(iStreakJumps)) * 100.0, (aStreakJumps[0] / float(iStreakJumps)) * 100.0,
(aStreakJumps[1] / float(iStreakJumps)) * 100.0, (aStreakJumps[1] / float(iStreakJumps)) * 100.0,
(aStreakJumps[2] / float(iStreakJumps)) * 100.0); (aStreakJumps[2] / float(iStreakJumps)) * 100.0);
PrintToConsole(client, "#%2s %5s %7s %7s %5s %5s %8s %4s %6s %s", PrintToConsole(client, "#%2s %5s %7s %7s %5s %5s %8s %4s %6s %s",
"id", " diff", " invel", " outvel", " gain", " comb", " avgdist", " num", " avg+-", "pattern"); "id", " diff", " invel", " outvel", " gain", " comb", " avgdist", " num", " avg+-", "pattern");
if (bDetected) if (bDetected)
Format(g_sStats, sizeof(g_sStats), "%s#%2s %5s %7s %7s %5s %5s %8s %4s %6s %s\n", Format(g_sStats, sizeof(g_sStats), "%s#%2s %5s %7s %7s %5s %5s %8s %4s %6s %s\n",
g_sStats, "id", " diff", " invel", " outvel", " gain", " comb", " avgdist", " num", " avg+-", "pattern"); g_sStats, "id", " diff", " invel", " outvel", " gain", " comb", " avgdist", " num", " avg+-", "pattern");
@ -624,10 +624,10 @@ void PrintStreak(int client, int iTarget, int iStreak, bool bDetected=false)
iPresses, iPresses,
fAvgDownUp, fAvgDownUp,
sPattern); sPattern);
if (bDetected) if (bDetected)
Format(g_sStats, sizeof(g_sStats), "%s#%2d %4d%% %7.1f %7.1f %4d%% %4d%% %8.2f %4d %6.2f %s\n", Format(g_sStats, sizeof(g_sStats), "%s#%2d %4d%% %7.1f %7.1f %4d%% %4d%% %8.2f %4d %6.2f %s\n",
g_sStats, g_sStats,
i, i,
fPrevVel == 0.0 ? 100 : RoundFloat((fInVel / fPrevVel) * 100.0 - 100.0), fPrevVel == 0.0 ? 100 : RoundFloat((fInVel / fPrevVel) * 100.0 - 100.0),
fInVel, fInVel,
@ -651,6 +651,6 @@ bool Forward_OnDetected(int client, const char[] reason, const char[] stats)
Call_PushString(reason); Call_PushString(reason);
Call_PushString(stats); Call_PushString(stats);
Call_Finish(); Call_Finish();
g_sStats = ""; g_sStats = "";
} }

View File

@ -22,11 +22,11 @@ Handle g_hCustomMessageFile2;
// Purpose: // Purpose:
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public Plugin myinfo = { public Plugin myinfo = {
name = "Connect Announce", name = "Connect Announce",
author = "Neon + Botox", author = "Neon + Botox",
description = "Connect Announcer", description = "Connect Announcer",
version = "2.0", version = "2.0",
url = "" url = ""
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -150,16 +150,16 @@ public Action Command_ResetJoinMsg(int client, int args)
SetFailState("[ConnectAnnounce] Config file missing!"); SetFailState("[ConnectAnnounce] Config file missing!");
return Plugin_Handled; return Plugin_Handled;
} }
KvRewind(g_hCustomMessageFile); KvRewind(g_hCustomMessageFile);
if (KvJumpToKey(g_hCustomMessageFile, sAuth, true)) if (KvJumpToKey(g_hCustomMessageFile, sAuth, true))
KvSetString(g_hCustomMessageFile, "message", "reset"); KvSetString(g_hCustomMessageFile, "message", "reset");
KvRewind(g_hCustomMessageFile); KvRewind(g_hCustomMessageFile);
KeyValuesToFile(g_hCustomMessageFile, g_sCustomMessageFile); KeyValuesToFile(g_hCustomMessageFile, g_sCustomMessageFile);
CPrintToChat(client, "[ConnectAnnounce] Your Join Message got reset."); CPrintToChat(client, "[ConnectAnnounce] Your Join Message got reset.");
return Plugin_Handled; return Plugin_Handled;
@ -272,9 +272,9 @@ public void TQueryCB(Handle owner, Handle rs, const char[] error, any data)
else else
ReplaceString(sRawMsg, sizeof(sRawMsg), "{COUNTRY}", ""); ReplaceString(sRawMsg, sizeof(sRawMsg), "{COUNTRY}", "");
} }
//////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (g_hCustomMessageFile2 != null) if (g_hCustomMessageFile2 != null)
CloseHandle(g_hCustomMessageFile2); CloseHandle(g_hCustomMessageFile2);
@ -287,27 +287,27 @@ public void TQueryCB(Handle owner, Handle rs, const char[] error, any data)
} }
KvRewind(g_hCustomMessageFile2); KvRewind(g_hCustomMessageFile2);
char sFinalMessage[512]; char sFinalMessage[512];
char sCustomMessage[256]; char sCustomMessage[256];
if (KvJumpToKey(g_hCustomMessageFile2, sAuth)) if (KvJumpToKey(g_hCustomMessageFile2, sAuth))
{ {
KvGetString(g_hCustomMessageFile2, "message", sCustomMessage, sizeof(sCustomMessage), ""); KvGetString(g_hCustomMessageFile2, "message", sCustomMessage, sizeof(sCustomMessage), "");
if (StrEqual(sCustomMessage, "reset")) if (StrEqual(sCustomMessage, "reset"))
CPrintToChatAll(sRawMsg); CPrintToChatAll(sRawMsg);
else else
{ {
Format(sFinalMessage, sizeof(sFinalMessage), "%s %s", sRawMsg, sCustomMessage); Format(sFinalMessage, sizeof(sFinalMessage), "%s %s", sRawMsg, sCustomMessage);
CPrintToChatAll(sFinalMessage); CPrintToChatAll(sFinalMessage);
} }
} }
else else
CPrintToChatAll(sRawMsg); CPrintToChatAll(sRawMsg);
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
@ -321,7 +321,7 @@ public void OnClientPostAdminCheck(int client)
GetClientAuthId(client, AuthId_Steam2, sAuth, sizeof(sAuth)); GetClientAuthId(client, AuthId_Steam2, sAuth, sizeof(sAuth));
strcopy(sAuth, sizeof(sAuth), sAuth[8]); strcopy(sAuth, sizeof(sAuth), sAuth[8]);
char sQuery[512]; char sQuery[512];
Format(sQuery, sizeof(sQuery), "SELECT COUNT(*) AS rank FROM hlstats_Players WHERE hlstats_Players.game = 'css-ze' AND hideranking = 0 AND skill > (SELECT skill from hlstats_Players JOIN hlstats_PlayerUniqueIds ON hlstats_Players.playerId = hlstats_PlayerUniqueIds.playerId WHERE uniqueId = '%s' AND hlstats_PlayerUniqueIds.game = 'css-ze')", sAuth); Format(sQuery, sizeof(sQuery), "SELECT COUNT(*) AS rank FROM hlstats_Players WHERE hlstats_Players.game = 'css-ze' AND hideranking = 0 AND skill > (SELECT skill from hlstats_Players JOIN hlstats_PlayerUniqueIds ON hlstats_Players.playerId = hlstats_PlayerUniqueIds.playerId WHERE uniqueId = '%s' AND hlstats_PlayerUniqueIds.game = 'css-ze')", sAuth);
SQL_TQuery(g_hDatabase, TQueryCB, sQuery, GetClientUserId(client)); SQL_TQuery(g_hDatabase, TQueryCB, sQuery, GetClientUserId(client));

View File

@ -16,7 +16,7 @@ public Plugin myinfo =
author = "Neon", author = "Neon",
description = "", description = "",
version = "1.0.0", version = "1.0.0",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
}; };
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------

View File

@ -49,11 +49,11 @@ int g_iLastReportID;
public Plugin myinfo = public Plugin myinfo =
{ {
name = "Discord core", name = "Discord core",
author = "Obus and Neon", author = "Obus and Neon",
description = "Chat- & Rcon-Support", description = "Chat- & Rcon-Support",
version = "1.2.0", version = "1.2.0",
url = "" url = ""
} }
public APLRes AskPluginLoad2(Handle hThis, bool bLate, char[] sError, int err_max) public APLRes AskPluginLoad2(Handle hThis, bool bLate, char[] sError, int err_max)
@ -530,7 +530,7 @@ stock void Discord_POST(const char[] sURL, char[] sText, bool bUsingUsername=fal
{ {
Format(sSafeText, sizeof(sSafeText), "%s", sText); Format(sSafeText, sizeof(sSafeText), "%s", sText);
} }
if (bTimestamp) if (bTimestamp)
{ {
int iTime = GetTime(); int iTime = GetTime();

View File

@ -2,13 +2,13 @@
#include <cstrike> #include <cstrike>
#include <zombiereloaded> #include <zombiereloaded>
public Plugin myinfo = public Plugin myinfo =
{ {
name = "InfectionExploitFix", name = "InfectionExploitFix",
author = "zaCade & Neon", author = "zaCade & Neon",
description = "Fixes Infection Dodge Exploit", description = "Fixes Infection Dodge Exploit",
version = "1.0", version = "1.0",
url = "" url = ""
} }
#pragma semicolon 1 #pragma semicolon 1

View File

@ -19,7 +19,7 @@ public Plugin myinfo =
author = "Neon", author = "Neon",
description = "", description = "",
version = "1.0.0", version = "1.0.0",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
}; };
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------

View File

@ -12,27 +12,27 @@ ConVar g_cvarMaximumStreak = null;
bool g_bIsMotherZM[MAXPLAYERS+1] = false; bool g_bIsMotherZM[MAXPLAYERS+1] = false;
int g_iKillStreak[MAXPLAYERS+1] = 0; int g_iKillStreak[MAXPLAYERS+1] = 0;
public Plugin myinfo = public Plugin myinfo =
{ {
name = "KillStreaks", name = "KillStreaks",
author = "Neon", author = "Neon",
description = "Recreation of the original HLSTATS Killstreaks for Zombies only + new MotherZM-Win event", description = "Recreation of the original HLSTATS Killstreaks for Zombies only + new MotherZM-Win event",
version = "1.1", version = "1.1",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
}; };
public void OnPluginStart() public void OnPluginStart()
{ {
g_cvarMinimumStreak = CreateConVar("sm_killstreaks_min", "2", "amount of kills required for the lowest killstreak", 0, true, 0.0); g_cvarMinimumStreak = CreateConVar("sm_killstreaks_min", "2", "amount of kills required for the lowest killstreak", 0, true, 0.0);
g_cvarMaximumStreak = CreateConVar("sm_killstreaks_max", "12", "amount of kills required for the highest killstreak", 0, true, 0.0); g_cvarMaximumStreak = CreateConVar("sm_killstreaks_max", "12", "amount of kills required for the highest killstreak", 0, true, 0.0);
HookEvent("round_end", OnRoundEnding, EventHookMode_Pre); HookEvent("round_end", OnRoundEnding, EventHookMode_Pre);
HookEvent("player_spawn", OnClientSpawn); HookEvent("player_spawn", OnClientSpawn);
HookEvent("player_death", OnClientDeath, EventHookMode_Pre); HookEvent("player_death", OnClientDeath, EventHookMode_Pre);
} }
public void OnMapStart() public void OnMapStart()
{ {
GetTeams(); GetTeams();
} }
@ -40,7 +40,7 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo
{ {
if (motherInfect) if (motherInfect)
g_bIsMotherZM[client] = true; g_bIsMotherZM[client] = true;
if (attacker > -1) if (attacker > -1)
g_iKillStreak[attacker] += 1; g_iKillStreak[attacker] += 1;
} }
@ -65,7 +65,7 @@ public void OnClientDeath(Event hEvent, const char[] sEvent, bool bDontBroadcast
public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast) public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast)
{ {
int iReason = hEvent.GetInt("reason"); int iReason = hEvent.GetInt("reason");
if (iReason != view_as<int>(CSRoundEnd_GameStart)) if (iReason != view_as<int>(CSRoundEnd_GameStart))
{ {
for (int client = 1; client <= MaxClients; client++) for (int client = 1; client <= MaxClients; client++)
@ -74,9 +74,9 @@ public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast
{ {
if ((ZR_IsClientZombie(client)) && (g_bIsMotherZM[client])) if ((ZR_IsClientZombie(client)) && (g_bIsMotherZM[client]))
LogPlayerEvent(client, "triggered", "ze_m_zombies_win"); LogPlayerEvent(client, "triggered", "ze_m_zombies_win");
EndKillStreak(client); EndKillStreak(client);
} }
} }
} }
} }
@ -87,10 +87,10 @@ public void EndKillStreak(int client)
{ {
if (g_iKillStreak[client] > g_cvarMaximumStreak.IntValue) if (g_iKillStreak[client] > g_cvarMaximumStreak.IntValue)
g_iKillStreak[client] = g_cvarMaximumStreak.IntValue; g_iKillStreak[client] = g_cvarMaximumStreak.IntValue;
char StrEventName[32]; char StrEventName[32];
if(g_bIsMotherZM[client]) if(g_bIsMotherZM[client])
{ {
Format(StrEventName, sizeof(StrEventName), "ze_m_kill_streak_%d", g_iKillStreak[client]); Format(StrEventName, sizeof(StrEventName), "ze_m_kill_streak_%d", g_iKillStreak[client]);
LogPlayerEvent(client, "triggered", StrEventName); LogPlayerEvent(client, "triggered", StrEventName);
} }
@ -98,9 +98,9 @@ public void EndKillStreak(int client)
{ {
Format(StrEventName, sizeof(StrEventName), "ze_kill_streak_%d", g_iKillStreak[client]); Format(StrEventName, sizeof(StrEventName), "ze_kill_streak_%d", g_iKillStreak[client]);
LogPlayerEvent(client, "triggered", StrEventName); LogPlayerEvent(client, "triggered", StrEventName);
} }
ResetClient(client); ResetClient(client);
} }
} }
public void ResetClient(int client) public void ResetClient(int client)

View File

@ -2,110 +2,84 @@
#include <cstrike> #include <cstrike>
#include <zombiereloaded> #include <zombiereloaded>
new bool:G_bIsHuman[66]; new bool:G_bIsHuman[MAXPLAYERS+1];
new bool:G_bIsZombie[66]; new bool:G_bIsZombie[MAXPLAYERS+1];
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Plugin myinfo = public Plugin myinfo =
{ {
name = "MVP_Stars", name = "MVP_Stars",
author = "zaCade", author = "zaCade",
description = "", description = "",
version = "1.0", version = "1.0",
url = "" url = ""
}; };
public void OnPluginStart() //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public OnPluginStart()
{ {
HookEvent("round_start", Event_RoundStart, EventHookMode:1); HookEvent("round_start", Event_RoundStart);
HookEvent("round_end", Event_RoundEnd, EventHookMode:1); HookEvent("round_end", Event_RoundEnd);
} }
public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, bool respawnOverride, bool respawn) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public ZR_OnClientInfected(client, attacker, bool:motherinfect, bool:respawnoverride, bool:respawn)
{ {
G_bIsHuman[client] = 0; G_bIsHuman[client] = false;
G_bIsZombie[client] = 1; G_bIsZombie[client] = true;
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public ZR_OnClientHumanPost(client, bool:respawn, bool:protect) public ZR_OnClientHumanPost(client, bool:respawn, bool:protect)
{ {
G_bIsHuman[client] = 1; G_bIsHuman[client] = true;
G_bIsZombie[client] = 0; G_bIsZombie[client] = false;
} }
public Action:Event_RoundStart(Handle:event, String:name[], bool:dontBroadcast) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{ {
new client = 1; for (new client = 1; client <= MaxClients; client++)
while (client <= MaxClients)
{ {
G_bIsHuman[client] = 1; G_bIsHuman[client] = true;
G_bIsZombie[client] = 0; G_bIsZombie[client] = false;
client++;
} }
return Action:0;
} }
public Action:Event_RoundEnd(Handle:event, String:name[], bool:dontBroadcast) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{ {
switch (GetEventInt(event, "winner")) switch(GetEventInt(event, "winner"))
{ {
case 2: case(CS_TEAM_CT): CreateTimer(0.2, OnHumansWin, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
{
CreateTimer(0.2, OnZombiesWin, any:0, 2);
}
case 3:
{
CreateTimer(0.2, OnHumansWin, any:0, 2);
}
default:
{
}
} }
return Action:0;
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:OnHumansWin(Handle:timer) public Action:OnHumansWin(Handle:timer)
{ {
new client = 1; for (new client = 1; client <= MaxClients; client++)
while (client <= MaxClients)
{ {
new var1;
if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client)) if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client))
{ {
new var2;
if (G_bIsHuman[client] && !G_bIsZombie[client]) if (G_bIsHuman[client] && !G_bIsZombie[client])
{ {
CS_SetMVPCount(client, CS_GetMVPCount(client) + 1); CS_SetMVPCount(client, CS_GetMVPCount(client) + 1);
new String:sAuthID[64];
if (!GetClientAuthString(client, sAuthID, 64, true))
{
Format(sAuthID, 64, "UNKNOWN");
}
} }
} }
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");
}
}
}
client++;
}
return Action:0;
} }

View File

@ -9,11 +9,11 @@
public Plugin myinfo = public Plugin myinfo =
{ {
name = "MakoVoteSystem", name = "MakoVoteSystem",
author = "Neon", author = "Neon",
description = "MakoVoteSystem", description = "MakoVoteSystem",
version = "1.0", version = "1.0",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
} }
#define NUMBEROFSTAGES 6 #define NUMBEROFSTAGES 6
@ -39,14 +39,14 @@ public void OnPluginStart()
public void OnMapStart() public void OnMapStart()
{ {
VerifyMap(); VerifyMap();
PrecacheSound("#unloze/Pendulum - Witchcraft.mp3", true); PrecacheSound("#unloze/Pendulum - Witchcraft.mp3", true);
AddFileToDownloadsTable("sound/unloze/Pendulum - Witchcraft.mp3"); AddFileToDownloadsTable("sound/unloze/Pendulum - Witchcraft.mp3");
bStartVoteNextRound = false; bStartVoteNextRound = false;
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
g_bOnCooldown[i] = false; g_bOnCooldown[i] = false;
} }
public Action VerifyMap() public Action VerifyMap()
@ -73,16 +73,16 @@ public void OnEntitySpawned(int iEntity)
{ {
if (g_bVoteFinished) if (g_bVoteFinished)
return; return;
char sTargetname[128]; char sTargetname[128];
GetEntPropString(iEntity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname)); GetEntPropString(iEntity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname));
char sClassname[128]; char sClassname[128];
GetEdictClassname(iEntity, sClassname, sizeof(sClassname)); GetEdictClassname(iEntity, sClassname, sizeof(sClassname));
if ((strcmp(sTargetname, "espad") != 0) && (strcmp(sTargetname, "ss_slow") != 0) && (strcmp(sClassname, "ambient_generic") == 0)) if ((strcmp(sTargetname, "espad") != 0) && (strcmp(sTargetname, "ss_slow") != 0) && (strcmp(sClassname, "ambient_generic") == 0))
{ {
AcceptEntityInput(iEntity, "Kill"); AcceptEntityInput(iEntity, "Kill");
} }
} }
public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
@ -92,87 +92,87 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
g_CountdownTimer = CreateTimer(1.0, StartVote, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); g_CountdownTimer = CreateTimer(1.0, StartVote, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
bStartVoteNextRound = false; bStartVoteNextRound = false;
} }
if (!(g_bVoteFinished)) if (!(g_bVoteFinished))
{ {
int iStrip = FindEntityByTargetname(INVALID_ENT_REFERENCE, "race_game_zone", "game_zone_player"); int iStrip = FindEntityByTargetname(INVALID_ENT_REFERENCE, "race_game_zone", "game_zone_player");
if (iStrip != INVALID_ENT_REFERENCE) if (iStrip != INVALID_ENT_REFERENCE)
AcceptEntityInput(iStrip, "FireUser1"); AcceptEntityInput(iStrip, "FireUser1");
int iCounter = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Counter", "math_counter"); int iCounter = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Counter", "math_counter");
if (iCounter != INVALID_ENT_REFERENCE) if (iCounter != INVALID_ENT_REFERENCE)
AcceptEntityInput(iCounter, "Kill"); AcceptEntityInput(iCounter, "Kill");
int iDestination = FindEntityByTargetname(INVALID_ENT_REFERENCE, "arriba2ex", "info_teleport_destination"); int iDestination = FindEntityByTargetname(INVALID_ENT_REFERENCE, "arriba2ex", "info_teleport_destination");
if (iDestination != INVALID_ENT_REFERENCE) if (iDestination != INVALID_ENT_REFERENCE)
{ {
SetVariantString("origin -9350 4550 100"); SetVariantString("origin -9350 4550 100");
AcceptEntityInput(iDestination, "AddOutput"); AcceptEntityInput(iDestination, "AddOutput");
SetVariantString("angles 0 -90 0"); SetVariantString("angles 0 -90 0");
AcceptEntityInput(iDestination, "AddOutput"); AcceptEntityInput(iDestination, "AddOutput");
} }
int iTeleport = FindEntityByTargetname(INVALID_ENT_REFERENCE, "teleporte_extreme", "trigger_teleport"); int iTeleport = FindEntityByTargetname(INVALID_ENT_REFERENCE, "teleporte_extreme", "trigger_teleport");
if (iTeleport != INVALID_ENT_REFERENCE) if (iTeleport != INVALID_ENT_REFERENCE)
AcceptEntityInput(iTeleport, "Enable"); AcceptEntityInput(iTeleport, "Enable");
int iBarrerasfinal2 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "barrerasfinal2", "func_breakable"); int iBarrerasfinal2 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "barrerasfinal2", "func_breakable");
if (iBarrerasfinal2 != INVALID_ENT_REFERENCE) if (iBarrerasfinal2 != INVALID_ENT_REFERENCE)
AcceptEntityInput(iBarrerasfinal2, "Break"); AcceptEntityInput(iBarrerasfinal2, "Break");
int iBarrerasfinal = FindEntityByTargetname(INVALID_ENT_REFERENCE, "barrerasfinal", "prop_dynamic"); int iBarrerasfinal = FindEntityByTargetname(INVALID_ENT_REFERENCE, "barrerasfinal", "prop_dynamic");
if (iBarrerasfinal != INVALID_ENT_REFERENCE) if (iBarrerasfinal != INVALID_ENT_REFERENCE)
AcceptEntityInput(iBarrerasfinal, "Kill"); AcceptEntityInput(iBarrerasfinal, "Kill");
int iPush = FindEntityByTargetname(INVALID_ENT_REFERENCE, "race_push", "trigger_push"); int iPush = FindEntityByTargetname(INVALID_ENT_REFERENCE, "race_push", "trigger_push");
if (iPush != INVALID_ENT_REFERENCE) if (iPush != INVALID_ENT_REFERENCE)
AcceptEntityInput(iPush, "Kill"); AcceptEntityInput(iPush, "Kill");
int iFilter = FindEntityByTargetname(INVALID_ENT_REFERENCE, "humanos", "filter_activator_team"); int iFilter = FindEntityByTargetname(INVALID_ENT_REFERENCE, "humanos", "filter_activator_team");
if (iFilter != INVALID_ENT_REFERENCE) if (iFilter != INVALID_ENT_REFERENCE)
AcceptEntityInput(iFilter, "Kill"); AcceptEntityInput(iFilter, "Kill");
int iTemp1 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_1_temp", "point_template"); int iTemp1 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_1_temp", "point_template");
if (iTemp1 != INVALID_ENT_REFERENCE) if (iTemp1 != INVALID_ENT_REFERENCE)
{ {
DispatchKeyValue(iTemp1, "OnEntitySpawned", "ex2_laser_1_hurt,SetDamage,0,0,-1"); DispatchKeyValue(iTemp1, "OnEntitySpawned", "ex2_laser_1_hurt,SetDamage,0,0,-1");
DispatchKeyValue(iTemp1, "OnEntitySpawned", "ex2_laser_1_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1"); DispatchKeyValue(iTemp1, "OnEntitySpawned", "ex2_laser_1_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1");
} }
int iTemp2 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_2_temp", "point_template"); int iTemp2 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_2_temp", "point_template");
if (iTemp2 != INVALID_ENT_REFERENCE) if (iTemp2 != INVALID_ENT_REFERENCE)
{ {
DispatchKeyValue(iTemp2, "OnEntitySpawned", "ex2_laser_2_hurt,SetDamage,0,0,-1"); DispatchKeyValue(iTemp2, "OnEntitySpawned", "ex2_laser_2_hurt,SetDamage,0,0,-1");
DispatchKeyValue(iTemp2, "OnEntitySpawned", "ex2_laser_2_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1"); DispatchKeyValue(iTemp2, "OnEntitySpawned", "ex2_laser_2_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1");
} }
int iTemp3 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_3_temp", "point_template"); int iTemp3 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_3_temp", "point_template");
if (iTemp3 != INVALID_ENT_REFERENCE) if (iTemp3 != INVALID_ENT_REFERENCE)
{ {
DispatchKeyValue(iTemp3, "OnEntitySpawned", "ex2_laser_3_hurt,SetDamage,0,0,-1"); DispatchKeyValue(iTemp3, "OnEntitySpawned", "ex2_laser_3_hurt,SetDamage,0,0,-1");
DispatchKeyValue(iTemp3, "OnEntitySpawned", "ex2_laser_3_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1"); DispatchKeyValue(iTemp3, "OnEntitySpawned", "ex2_laser_3_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1");
} }
int iTemp4 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_4_temp", "point_template"); int iTemp4 = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ex2_laser_4_temp", "point_template");
if (iTemp4 != INVALID_ENT_REFERENCE) if (iTemp4 != INVALID_ENT_REFERENCE)
{ {
DispatchKeyValue(iTemp4, "OnEntitySpawned", "ex2_laser_4_hurt,SetDamage,0,0,-1"); DispatchKeyValue(iTemp4, "OnEntitySpawned", "ex2_laser_4_hurt,SetDamage,0,0,-1");
DispatchKeyValue(iTemp4, "OnEntitySpawned", "ex2_laser_4_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1"); DispatchKeyValue(iTemp4, "OnEntitySpawned", "ex2_laser_4_hurt,AddOutput,OnStartTouch !activator:AddOutput:origin -7000 -1000 100:0:-1,0,-1");
} }
int iLaserTimer = FindEntityByTargetname(INVALID_ENT_REFERENCE, "cortes2", "logic_timer"); int iLaserTimer = FindEntityByTargetname(INVALID_ENT_REFERENCE, "cortes2", "logic_timer");
if (iLaserTimer != INVALID_ENT_REFERENCE) if (iLaserTimer != INVALID_ENT_REFERENCE)
AcceptEntityInput(iLaserTimer, "Enable"); AcceptEntityInput(iLaserTimer, "Enable");
int iGameText = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Text", "game_text"); int iGameText = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Text", "game_text");
if (iGameText != INVALID_ENT_REFERENCE) if (iGameText != INVALID_ENT_REFERENCE)
AcceptEntityInput(iGameText, "Kill"); AcceptEntityInput(iGameText, "Kill");
int iNewGameText; int iNewGameText;
iNewGameText = CreateEntityByName("game_text"); iNewGameText = CreateEntityByName("game_text");
DispatchKeyValue(iNewGameText, "targetname", "intermission_game_text"); DispatchKeyValue(iNewGameText, "targetname", "intermission_game_text");
DispatchKeyValue(iNewGameText, "channel", "4"); DispatchKeyValue(iNewGameText, "channel", "4");
DispatchKeyValue(iNewGameText, "spawnflags", "1"); DispatchKeyValue(iNewGameText, "spawnflags", "1");
@ -189,7 +189,7 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
DispatchSpawn(iNewGameText); DispatchSpawn(iNewGameText);
SetVariantString("!activator"); SetVariantString("!activator");
AcceptEntityInput(iNewGameText, "FireUser1"); AcceptEntityInput(iNewGameText, "FireUser1");
int iMusic = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ss_slow", "ambient_generic"); int iMusic = FindEntityByTargetname(INVALID_ENT_REFERENCE, "ss_slow", "ambient_generic");
if (iMusic != INVALID_ENT_REFERENCE) if (iMusic != INVALID_ENT_REFERENCE)
{ {
@ -204,7 +204,7 @@ public void GenerateArray()
{ {
int iBlockSize = ByteCountToCells(PLATFORM_MAX_PATH); int iBlockSize = ByteCountToCells(PLATFORM_MAX_PATH);
g_StageList = CreateArray(iBlockSize); g_StageList = CreateArray(iBlockSize);
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
PushArrayString(g_StageList, g_sStageName[i]); PushArrayString(g_StageList, g_sStageName[i]);
@ -225,27 +225,27 @@ public void GenerateArray()
public Action Command_StartVote(int args) public Action Command_StartVote(int args)
{ {
int iCurrentStage = GetCurrentStage(); int iCurrentStage = GetCurrentStage();
if (iCurrentStage > -1) if (iCurrentStage > -1)
g_bOnCooldown[iCurrentStage] = true; g_bOnCooldown[iCurrentStage] = true;
int iOnCD = 0; int iOnCD = 0;
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
{ {
if (g_bOnCooldown[i]) if (g_bOnCooldown[i])
iOnCD += 1; iOnCD += 1;
} }
if (iOnCD >= 3) if (iOnCD >= 3)
{ {
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
g_bOnCooldown[i] = false; g_bOnCooldown[i] = false;
} }
g_bVoteFinished = false; g_bVoteFinished = false;
GenerateArray(); GenerateArray();
bStartVoteNextRound = true; bStartVoteNextRound = true;
return Plugin_Handled; return Plugin_Handled;
} }
@ -280,7 +280,7 @@ public void InitiateVote()
{ {
char sBuffer[128]; char sBuffer[128];
GetArrayString(g_StageList, i, sBuffer, sizeof(sBuffer)); GetArrayString(g_StageList, i, sBuffer, sizeof(sBuffer));
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
{ {
if (strcmp(sBuffer, g_sStageName[i]) == 0) if (strcmp(sBuffer, g_sStageName[i]) == 0)
@ -289,8 +289,8 @@ public void InitiateVote()
AddMenuItem(g_VoteMenu, sBuffer, sBuffer, ITEMDRAW_DISABLED); AddMenuItem(g_VoteMenu, sBuffer, sBuffer, ITEMDRAW_DISABLED);
else else
AddMenuItem(g_VoteMenu, sBuffer, sBuffer); AddMenuItem(g_VoteMenu, sBuffer, sBuffer);
} }
} }
} }
SetMenuOptionFlags(g_VoteMenu, MENUFLAG_BUTTON_NOVOTE); SetMenuOptionFlags(g_VoteMenu, MENUFLAG_BUTTON_NOVOTE);
@ -306,12 +306,12 @@ public int Handler_MakoVoteMenu(Handle menu, MenuAction action, int param1, int
case MenuAction_End: case MenuAction_End:
{ {
CloseHandle(menu); CloseHandle(menu);
if (param1 != -1) if (param1 != -1)
{ {
g_bVoteFinished = true; g_bVoteFinished = true;
float fDelay = 3.0; float fDelay = 3.0;
CS_TerminateRound(fDelay, CSRoundEnd_GameStart, false); CS_TerminateRound(fDelay, CSRoundEnd_GameStart, false);
} }
} }
} }
@ -328,7 +328,7 @@ public int MenuHandler_NotifyPanel(Menu hMenu, MenuAction iAction, int iParam1,
} }
public void Handler_SettingsVoteFinished(Handle menu, int num_votes, int num_clients, const int[][] client_info, int num_items, const int[][] item_info) public void Handler_SettingsVoteFinished(Handle menu, int num_votes, int num_clients, const int[][] client_info, int num_items, const int[][] item_info)
{ {
int highest_votes = item_info[0][VOTEINFO_ITEM_VOTES]; int highest_votes = item_info[0][VOTEINFO_ITEM_VOTES];
int required_percent = 60; int required_percent = 60;
int required_votes = RoundToCeil(float(num_votes) * float(required_percent) / 100); int required_votes = RoundToCeil(float(num_votes) * float(required_percent) / 100);
@ -362,15 +362,15 @@ public void Handler_VoteFinishedGeneric(Handle menu, int num_votes, int num_clie
float fPercentage = float(item_info[0][VOTEINFO_ITEM_VOTES] * 100) / float(num_votes); float fPercentage = float(item_info[0][VOTEINFO_ITEM_VOTES] * 100) / float(num_votes);
CPrintToChatAll("{green}[MakoVote] {white}Vote Finished! Winner: {red}%s{white} with %d%% of %d votes!", sWinner, RoundToFloor(fPercentage), num_votes); CPrintToChatAll("{green}[MakoVote] {white}Vote Finished! Winner: {red}%s{white} with %d%% of %d votes!", sWinner, RoundToFloor(fPercentage), num_votes);
for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++) for (int i = 0; i <= (NUMBEROFSTAGES - 1); i++)
{ {
if (strcmp(sWinner, g_sStageName[i]) == 0) if (strcmp(sWinner, g_sStageName[i]) == 0)
g_Winnerstage = i; g_Winnerstage = i;
} }
ServerCommand("sm_stage %d", (g_Winnerstage + 4)); ServerCommand("sm_stage %d", (g_Winnerstage + 4));
float fDelay = 3.0; float fDelay = 3.0;
CS_TerminateRound(fDelay, CSRoundEnd_GameStart, false); CS_TerminateRound(fDelay, CSRoundEnd_GameStart, false);
} }
@ -378,10 +378,10 @@ public void Handler_VoteFinishedGeneric(Handle menu, int num_votes, int num_clie
public int GetCurrentStage() public int GetCurrentStage()
{ {
int iLevelCounterEnt = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Counter", "math_counter"); int iLevelCounterEnt = FindEntityByTargetname(INVALID_ENT_REFERENCE, "Level_Counter", "math_counter");
int offset = FindDataMapInfo(iLevelCounterEnt, "m_OutValue"); int offset = FindDataMapInfo(iLevelCounterEnt, "m_OutValue");
int iCounterVal = RoundFloat(GetEntDataFloat(iLevelCounterEnt, offset)); int iCounterVal = RoundFloat(GetEntDataFloat(iLevelCounterEnt, offset));
int iCurrentStage; int iCurrentStage;
if (iCounterVal == 5) if (iCounterVal == 5)
iCurrentStage = 0; iCurrentStage = 0;
@ -395,9 +395,9 @@ public int GetCurrentStage()
iCurrentStage = 2; iCurrentStage = 2;
else if (iCounterVal == 11) else if (iCounterVal == 11)
iCurrentStage = 4; iCurrentStage = 4;
else else
iCurrentStage = 0; iCurrentStage = 0;
return iCurrentStage; return iCurrentStage;
} }

View File

@ -144,13 +144,13 @@ public Action Command_Spectate(int client, int argc)
return Plugin_Handled; return Plugin_Handled;
} }
public Action Command_SpectateViaConsole(int client, char[] command, int args) public Action Command_SpectateViaConsole(int client, char[] command, int args)
{ {
if ((IsPlayerAlive(client) && ZR_IsClientHuman(client)) && GetTeamClientCount(CS_TEAM_T) > 0 && GetTeamAliveClientCount(CS_TEAM_T) > 0) if ((IsPlayerAlive(client) && ZR_IsClientHuman(client)) && GetTeamClientCount(CS_TEAM_T) > 0 && GetTeamAliveClientCount(CS_TEAM_T) > 0)
LogPlayerEvent(client, "triggered", "switch_to_spec"); LogPlayerEvent(client, "triggered", "switch_to_spec");
return Plugin_Continue; return Plugin_Continue;
} }
// Fix spec_goto crash exploit // Fix spec_goto crash exploit
public Action Command_GoTo(int client, const char[] command, int argc) public Action Command_GoTo(int client, const char[] command, int argc)
@ -177,7 +177,7 @@ public Action Command_GoTo(int client, const char[] command, int argc)
stock int GetTeamAliveClientCount(int iTeam) stock int GetTeamAliveClientCount(int iTeam)
{ {
int ret = 0; int ret = 0;
for (int i = 1; i <= MaxClients; i++) for (int i = 1; i <= MaxClients; i++)
{ {
if (!IsClientInGame(i) || GetClientTeam(i) != iTeam) if (!IsClientInGame(i) || GetClientTeam(i) != iTeam)
@ -188,6 +188,6 @@ stock int GetTeamAliveClientCount(int iTeam)
ret++; ret++;
} }
return ret; return ret;
} }

View File

@ -239,7 +239,7 @@ public void OnMapStart()
AddFileToDownloadsTable("materials/models/unloze/crown/crown_bump.vtf"); AddFileToDownloadsTable("materials/models/unloze/crown/crown_bump.vtf");
AddFileToDownloadsTable("materials/models/unloze/crown/crown_detail.vtf"); AddFileToDownloadsTable("materials/models/unloze/crown/crown_detail.vtf");
AddFileToDownloadsTable("materials/models/unloze/crown/crown_lightwarp.vtf"); AddFileToDownloadsTable("materials/models/unloze/crown/crown_lightwarp.vtf");
GetTeams(); GetTeams();
} }
@ -421,7 +421,7 @@ public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast
{ {
Format(sBuffer, sizeof(sBuffer), "%s\n1. %N - %d DMG", sBuffer, iSortedList[0][0], iSortedList[0][1]); Format(sBuffer, sizeof(sBuffer), "%s\n1. %N - %d DMG", sBuffer, iSortedList[0][0], iSortedList[0][1]);
LogPlayerEvent(iSortedList[0][0], "triggered", "top_defender"); LogPlayerEvent(iSortedList[0][0], "triggered", "top_defender");
g_iPlayerWinner[0] = GetSteamAccountID(iSortedList[0][0]); g_iPlayerWinner[0] = GetSteamAccountID(iSortedList[0][0]);
} }
@ -429,7 +429,7 @@ public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast
{ {
Format(sBuffer, sizeof(sBuffer), "%s\n2. %N - %d DMG", sBuffer, iSortedList[1][0], iSortedList[1][1]); Format(sBuffer, sizeof(sBuffer), "%s\n2. %N - %d DMG", sBuffer, iSortedList[1][0], iSortedList[1][1]);
LogPlayerEvent(iSortedList[1][0], "triggered", "second_defender"); LogPlayerEvent(iSortedList[1][0], "triggered", "second_defender");
g_iPlayerWinner[1] = GetSteamAccountID(iSortedList[1][0]); g_iPlayerWinner[1] = GetSteamAccountID(iSortedList[1][0]);
} }
@ -437,7 +437,7 @@ public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast
{ {
Format(sBuffer, sizeof(sBuffer), "%s\n3. %N - %d DMG", sBuffer, iSortedList[2][0], iSortedList[2][1]); Format(sBuffer, sizeof(sBuffer), "%s\n3. %N - %d DMG", sBuffer, iSortedList[2][0], iSortedList[2][1]);
LogPlayerEvent(iSortedList[2][0], "triggered", "third_defender"); LogPlayerEvent(iSortedList[2][0], "triggered", "third_defender");
g_iPlayerWinner[2] = GetSteamAccountID(iSortedList[2][0]); g_iPlayerWinner[2] = GetSteamAccountID(iSortedList[2][0]);
} }
@ -498,7 +498,7 @@ public void OnRoundEnding(Event hEvent, const char[] sEvent, bool bDontBroadcast
} }
else else
PrintToChatAll(sBuffer); PrintToChatAll(sBuffer);
TopDefenders_OnRoundEnd(iPlayers, iDamage); TopDefenders_OnRoundEnd(iPlayers, iDamage);
} }
} }

View File

@ -18,11 +18,11 @@ ConVar g_cCD;
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public Plugin myinfo = public Plugin myinfo =
{ {
name = "Trigger Rewards", name = "Trigger Rewards",
author = "Neon", author = "Neon",
description = "HLSTATS Trigger Rewards", description = "HLSTATS Trigger Rewards",
version = "1.0", version = "1.0",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
}; };
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -30,12 +30,12 @@ public Plugin myinfo =
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public void OnPluginStart() public void OnPluginStart()
{ {
g_cCD = CreateConVar("sm_trigger_reward_cd", "10.0", "Cooldown between HLSTATS Trigger rewards", 0, true, 0.1); g_cCD = CreateConVar("sm_trigger_reward_cd", "10.0", "Cooldown between HLSTATS Trigger rewards", 0, true, 0.1);
AutoExecConfig(true, "plugin.TriggerRewards"); AutoExecConfig(true, "plugin.TriggerRewards");
HookEvent("round_start", OnRoundStart); HookEvent("round_start", OnRoundStart);
HookEntityOutput("trigger_once", "OnStartTouch", OnStartTouch); HookEntityOutput("trigger_once", "OnStartTouch", OnStartTouch);
HookEntityOutput("func_button", "OnPressed", OnPressed); HookEntityOutput("func_button", "OnPressed", OnPressed);
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -51,7 +51,7 @@ public void OnMapStart()
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public Action OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) public Action OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
{ {
for(int i = 0; i <= 2047; i++) for(int i = 0; i < 2048; i++)
g_bDisabled[i] = false; g_bDisabled[i] = false;
} }
@ -60,13 +60,10 @@ public Action OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcas
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public void OnStartTouch(const char[] sOutput, int iCaller, int iActivator, float fDelay) public void OnStartTouch(const char[] sOutput, int iCaller, int iActivator, float fDelay)
{ {
if (g_bDisabled[iCaller]) if (!IsValidClient(iActivator))
return; return;
if (g_bOnCD) if (g_bDisabled[iCaller] || g_bOnCD)
return;
if(!(1<=iActivator<= MaxClients ) || (iCaller == -1) || (!IsClientInGame(iActivator)) || !IsPlayerAlive(iActivator) || !IsPlayerAlive(iActivator))
return; return;
if (!(ZR_IsClientHuman(iActivator))) if (!(ZR_IsClientHuman(iActivator)))
@ -88,26 +85,20 @@ public void OnPressed(const char[] sOutput, int iCaller, int iActivator, float f
if(!IsValidClient(iActivator)) if(!IsValidClient(iActivator))
return; return;
if (g_bDisabled[iCaller]) if (g_bDisabled[iCaller] || g_bOnCD)
return;
if (g_bOnCD)
return; return;
if (!(ZR_IsClientHuman(iActivator))) if (!(ZR_IsClientHuman(iActivator)))
return; return;
int iParent = -1; int iParent = INVALID_ENT_REFERENCE;
iParent = GetEntPropEnt(iCaller, Prop_Data, "m_hMoveParent"); if ((iParent = GetEntPropEnt(iCaller, Prop_Data, "m_hMoveParent")) != INVALID_ENT_REFERENCE)
if (iParent != -1)
{ {
char sClassname[64]; char sClassname[64];
GetEdictClassname(iParent, sClassname, sizeof(sClassname)); GetEdictClassname(iParent, sClassname, sizeof(sClassname));
if ((StrContains(sClassname, "weapon", false) != -1)) if (strncmp(sClassname, "weapon_", 7, false) == 0)
return; return;
} }
g_bDisabled[iCaller] = true; g_bDisabled[iCaller] = true;
@ -116,7 +107,6 @@ public void OnPressed(const char[] sOutput, int iCaller, int iActivator, float f
CreateTimer(g_cCD.FloatValue, ResetCD); CreateTimer(g_cCD.FloatValue, ResetCD);
LogPlayerEvent(iActivator, "triggered", "trigger"); LogPlayerEvent(iActivator, "triggered", "trigger");
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -132,8 +122,8 @@ public Action ResetCD(Handle timer)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public bool IsValidClient(int iClient) public bool IsValidClient(int iClient)
{ {
if ( !( 1 <= iClient <= MaxClients ) || !IsClientInGame(iClient) || !IsPlayerAlive(iClient)) if ( !( 1 <= iClient <= MaxClients ) || !IsClientInGame(iClient) || !IsPlayerAlive(iClient))
return false; return false;
return true; return true;
} }

View File

@ -9,11 +9,11 @@ ConVar g_cvFreeVIPDuration;
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public Plugin myinfo = public Plugin myinfo =
{ {
name = "Unloze_VIP_Test", name = "Unloze_VIP_Test",
author = "Neon", author = "Neon",
description = "", description = "",
version = "1.0", version = "1.0",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -127,7 +127,7 @@ bool CheckMYSQL(int client, bool add = false)
{ {
Format(sQuery, sizeof(sQuery), "INSERT INTO testvip_table (steam_auth, activated) VALUES ('%s', '%d')", sSID, iTimestamp); Format(sQuery, sizeof(sQuery), "INSERT INTO testvip_table (steam_auth, activated) VALUES ('%s', '%d')", sSID, iTimestamp);
SQL_FastQuery(db, sQuery); SQL_FastQuery(db, sQuery);
ApplyGroupFlags(client); ApplyGroupFlags(client);
PrintToChat(client, "[Unloze] Your TEST VIP will expire in %d minutes!", g_cvFreeVIPDuration.IntValue - (iTimestamp - iTimestampActivated) / 60); PrintToChat(client, "[Unloze] Your TEST VIP will expire in %d minutes!", g_cvFreeVIPDuration.IntValue - (iTimestamp - iTimestampActivated) / 60);
PrintToChat(client, "[Unloze] You have now access to !zclass, !tag and !glow."); PrintToChat(client, "[Unloze] You have now access to !zclass, !tag and !glow.");

View File

@ -2,119 +2,118 @@
#include <cstrike> #include <cstrike>
#include <zombiereloaded> #include <zombiereloaded>
new bool:G_bIsHuman[66]; new bool:G_bIsHuman[MAXPLAYERS+1];
new bool:G_bIsZombie[66]; new bool:G_bIsZombie[MAXPLAYERS+1];
new Handle:G_hCvar_Difficulty_Humans; new Handle:G_hCvar_Difficulty_Humans;
new Handle:G_hCvar_Difficulty_Zombies; new Handle:G_hCvar_Difficulty_Zombies;
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Plugin:myinfo = public Plugin:myinfo =
{ {
name = "HLstatsX CE Difficulty", name = "HLstatsX CE Difficulty",
author = "zaCade + Neon",
description = "Grant points to the winning team. (zombies/humans)", description = "Grant points to the winning team. (zombies/humans)",
author = "zaCade + Neon", version = "1.1",
version = "1.1", url = ""
url = ""
}; };
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public OnPluginStart() public OnPluginStart()
{ {
G_hCvar_Difficulty_Humans = CreateConVar("hlx_difficulty_humans", "0", "", 0, true, 0.0, true, 3.0); 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); 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); HookEvent("round_start", Event_RoundStart);
HookEvent("round_end", Event_RoundEnd);
AutoExecConfig(true, "plugin.hlstatsx_difficulty"); AutoExecConfig(true, "plugin.hlstatsx_difficulty");
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public ZR_OnClientInfected(client, attacker, bool:motherinfect, bool:respawnoverride, bool:respawn) public ZR_OnClientInfected(client, attacker, bool:motherinfect, bool:respawnoverride, bool:respawn)
{ {
G_bIsHuman[client] = 0; G_bIsHuman[client] = false;
G_bIsZombie[client] = 1; G_bIsZombie[client] = true;
} }
public void ZR_OnClientHumanPost(int client, bool respawn, bool protect) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public ZR_OnClientHumanPost(client, bool:respawn, bool:protect)
{ {
G_bIsHuman[client] = 1; G_bIsHuman[client] = true;
G_bIsZombie[client] = 0; G_bIsZombie[client] = false;
} }
public Action:Event_RoundStart(Handle:event, String:name[], bool:dontBroadcast) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{ {
new client = 1; for (new client = 1; client <= MaxClients; client++)
while (client <= MaxClients)
{ {
G_bIsHuman[client] = 1; G_bIsHuman[client] = true;
G_bIsZombie[client] = 0; G_bIsZombie[client] = false;
client++;
} }
return Action:0;
} }
public Action:Event_RoundEnd(Handle:event, String:name[], bool:dontBroadcast) //----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{ {
switch (GetEventInt(event, "winner")) switch(GetEventInt(event, "winner"))
{ {
case 2: case(CS_TEAM_CT): CreateTimer(0.2, OnHumansWin, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
{ case(CS_TEAM_T): CreateTimer(0.2, OnZombiesWin, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
CreateTimer(0.2, OnZombiesWin, any:0, 2);
}
case 3:
{
CreateTimer(0.2, OnHumansWin, any:0, 2);
}
default:
{
}
} }
return Action:0;
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:OnHumansWin(Handle:timer) public Action:OnHumansWin(Handle:timer)
{ {
new client = 1; for (new client = 1; client <= MaxClients; client++)
while (client <= MaxClients)
{ {
new var1;
if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client)) if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client))
{ {
new var2;
if (G_bIsHuman[client] && !G_bIsZombie[client]) if (G_bIsHuman[client] && !G_bIsZombie[client])
{ {
//CS_SetMVPCount(client, CS_GetMVPCount(client) + 1); new String:sAuthid[64];
new String:sAuthID[64]; if (!GetClientAuthString(client, sAuthid, sizeof(sAuthid)))
if (!GetClientAuthString(client, sAuthID, 64, true)) Format(sAuthid, sizeof(sAuthid), "UNKNOWN");
{
Format(sAuthID, 64, "UNKNOWN"); LogToGame("\"%N<%d><%s><%s>\" triggered \"human_win_%i\"", client, GetClientUserId(client), sAuthid, "CT", GetConVarInt(G_hCvar_Difficulty_Humans));
}
LogToGame("\"%N<%d><%s><%s>\" triggered \"human_win_%i\"", client, GetClientUserId(client), sAuthID, "CT", GetConVarInt(G_hCvar_Difficulty_Humans));
} }
} }
client++;
} }
return Action:0;
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action:OnZombiesWin(Handle:timer) public Action:OnZombiesWin(Handle:timer)
{ {
new client = 1; for (new client = 1; client <= MaxClients; client++)
while (client <= MaxClients)
{ {
new var1;
if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client)) if (IsClientInGame(client) && IsPlayerAlive(client) && !IsClientObserver(client) && !IsFakeClient(client))
{ {
new var2;
if (G_bIsZombie[client] && !G_bIsHuman[client]) if (G_bIsZombie[client] && !G_bIsHuman[client])
{ {
new String:sAuthID[64]; new String:sAuthid[64];
if (!GetClientAuthString(client, sAuthID, 64, true)) if (!GetClientAuthString(client, sAuthid, sizeof(sAuthid)))
{ Format(sAuthid, sizeof(sAuthid), "UNKNOWN");
Format(sAuthID, 64, "UNKNOWN");
} LogToGame("\"%N<%d><%s><%s>\" triggered \"zombie_win_%i\"", client, GetClientUserId(client), sAuthid, "TERRORIST", GetConVarInt(G_hCvar_Difficulty_Zombies));
LogToGame("\"%N<%d><%s><%s>\" triggered \"zombie_win_%i\"", client, GetClientUserId(client), sAuthID, "TERRORIST", GetConVarInt(G_hCvar_Difficulty_Zombies));
} }
} }
client++;
} }
return Action:0; }
}

View File

@ -57,11 +57,11 @@ stock void LogPlayerEvent(int client, const char[] verb, const char[] event, boo
{ {
float player_origin[3]; float player_origin[3];
GetClientAbsOrigin(client, player_origin); 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])); 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 else
{ {
LogToGame("\"%N<%d><%s><%s>\" %s \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, properties); LogToGame("\"%N<%d><%s><%s>\" %s \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], verb, event, properties);
} }
} }
} }
@ -80,20 +80,20 @@ stock void LogPlyrPlyrEvent(int client, int victim, const char[] verb, const cha
{ {
strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN");
} }
if (display_location) if (display_location)
{ {
float player_origin[3]; float player_origin[3];
GetClientAbsOrigin(client, player_origin); GetClientAbsOrigin(client, player_origin);
float victim_origin[3]; float victim_origin[3];
GetClientAbsOrigin(victim, victim_origin); 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])); 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 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); 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);
} }
} }
} }
@ -112,19 +112,19 @@ stock void LogKill(int attacker, int victim, const char[] weapon, bool display_l
{ {
strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN");
} }
if (display_location) if (display_location)
{ {
float attacker_origin[3]; float attacker_origin[3];
GetClientAbsOrigin(attacker, attacker_origin); GetClientAbsOrigin(attacker, attacker_origin);
float victim_origin[3]; float victim_origin[3];
GetClientAbsOrigin(victim, victim_origin); 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])); 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 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); 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);
} }
} }
} }
@ -138,17 +138,17 @@ stock void LogSuicide(int victim, const char[] weapon, bool display_location = f
{ {
strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN");
} }
if (display_location) if (display_location)
{ {
float victim_origin[3]; float victim_origin[3];
GetClientAbsOrigin(victim, victim_origin); 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])); 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 else
{ {
LogToGame("\"%N<%d><%s><%s>\" committed suicide with \"%s\"%s", victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties); LogToGame("\"%N<%d><%s><%s>\" committed suicide with \"%s\"%s", victim, GetClientUserId(victim), victim_authid, g_team_list[GetClientTeam(victim)], weapon, properties);
} }
} }
} }
@ -168,12 +168,12 @@ stock void LogPSKillTraj(int attacker, int victim, const char[] weapon)
{ {
strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN"); strcopy(victim_authid, sizeof(victim_authid), "UNKNOWN");
} }
float attacker_origin[3]; float attacker_origin[3];
GetClientAbsOrigin(attacker, attacker_origin); GetClientAbsOrigin(attacker, attacker_origin);
float victim_origin[3]; float victim_origin[3];
GetClientAbsOrigin(victim, victim_origin); 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])); 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]));
} }
} }
@ -195,7 +195,7 @@ stock void LogKillLoc(int attacker, int victim)
GetClientAbsOrigin(attacker, attacker_origin); GetClientAbsOrigin(attacker, attacker_origin);
float victim_origin[3]; float victim_origin[3];
GetClientAbsOrigin(victim, victim_origin); 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])); 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]));
} }
} }
@ -209,7 +209,7 @@ stock void LogTeamChange(int client, int newteam, const char[] properties = "")
{ {
strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); 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); LogToGame("\"%N<%d><%s><%s>\" joined team \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], g_team_list[newteam], properties);
} }
} }
@ -223,7 +223,7 @@ stock void LogRoleChange(int client, const char[] role, const char[] properties
{ {
strcopy(player_authid, sizeof(player_authid), "UNKNOWN"); 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); LogToGame("\"%N<%d><%s><%s>\" changed role to \"%s\"%s", client, GetClientUserId(client), player_authid, g_team_list[GetClientTeam(client)], role, properties);
} }
} }

View File

@ -22,17 +22,17 @@ Handle g_hCVar_EntityLimit = INVALID_HANDLE;
bool g_bEnabled = true; bool g_bEnabled = true;
float g_fPropOrigin[3]; float g_fPropOrigin[3];
public Plugin myinfo = public Plugin myinfo =
{ {
name = "Unloze Season Event", name = "Unloze Season Event",
author = "Neon", author = "Neon",
description = "Unloze Season Event", description = "Unloze Season Event",
version = "1.1", version = "1.1",
url = "https://steamcommunity.com/id/n3ontm" url = "https://steamcommunity.com/id/n3ontm"
}; };
public void OnPluginStart() public void OnPluginStart()
{ {
g_hCVar_CollectablesEnabled = CreateConVar("sm_unloze_season_collectables_enabled", "1", "Spawn Collectables.", 0, true, 0.0, true, 1.0); g_hCVar_CollectablesEnabled = CreateConVar("sm_unloze_season_collectables_enabled", "1", "Spawn Collectables.", 0, true, 0.0, true, 1.0);
g_hCVar_RandomIntervalMin = CreateConVar("sm_unloze_season_random_interval_min", "60", "Minimum Interval between spawning Collectables.", 0, true, 0.0); g_hCVar_RandomIntervalMin = CreateConVar("sm_unloze_season_random_interval_min", "60", "Minimum Interval between spawning Collectables.", 0, true, 0.0);
g_hCVar_RandomIntervalMax = CreateConVar("sm_unloze_season_random_interval_max", "120", "Maximum Interval between spawning Collectables.", 0, true, 0.0); g_hCVar_RandomIntervalMax = CreateConVar("sm_unloze_season_random_interval_max", "120", "Maximum Interval between spawning Collectables.", 0, true, 0.0);
@ -43,39 +43,39 @@ public void OnPluginStart()
g_hCVar_HighscoreDisplay = CreateConVar("sm_unloze_season_highscore_display", "5", "Amount of Players to display via sm_highscore", 0, true, 0.0); g_hCVar_HighscoreDisplay = CreateConVar("sm_unloze_season_highscore_display", "5", "Amount of Players to display via sm_highscore", 0, true, 0.0);
g_hCVar_PlayerRequirement = CreateConVar("sm_unloze_season_player_requirement", "10", "Amount of Players needed to spawn Collectables.", 0, true, 0.0); g_hCVar_PlayerRequirement = CreateConVar("sm_unloze_season_player_requirement", "10", "Amount of Players needed to spawn Collectables.", 0, true, 0.0);
g_hCVar_EntityLimit = CreateConVar("sm_unloze_season_entity_limit", "2000", "Entity Safety Limit.", 0, true, 0.0); g_hCVar_EntityLimit = CreateConVar("sm_unloze_season_entity_limit", "2000", "Entity Safety Limit.", 0, true, 0.0);
for(int client = 1; client <= MaxClients; client++) for(int client = 1; client <= MaxClients; client++)
{ {
if(IsClientInGame(client) && !IsFakeClient(client) && IsClientAuthorized(client)) if(IsClientInGame(client) && !IsFakeClient(client) && IsClientAuthorized(client))
OnClientPostAdminFilter(client); OnClientPostAdminFilter(client);
} }
HookEvent("round_start", OnRoundStart, EventHookMode_Post); HookEvent("round_start", OnRoundStart, EventHookMode_Post);
RegConsoleCmd("sm_presents", Command_Collected, "Shows the total amount of presents you have collected so far"); RegConsoleCmd("sm_presents", Command_Collected, "Shows the total amount of presents you have collected so far");
RegConsoleCmd("sm_highscore", Command_HighScore, "Shows the HighScore"); RegConsoleCmd("sm_highscore", Command_HighScore, "Shows the HighScore");
RegAdminCmd("sm_reload_season", Command_ReloadFlags, ADMFLAG_ROOT); RegAdminCmd("sm_reload_season", Command_ReloadFlags, ADMFLAG_ROOT);
} }
public void OnMapStart() public void OnMapStart()
{ {
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.phy"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.phy");
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.sw.vtx"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.sw.vtx");
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.vvd"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.vvd");
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.dx80.vtx"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.dx80.vtx");
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.dx90.vtx"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.dx90.vtx");
AddFileToDownloadsTable("models/player/stenli/smite/fenrir.mdl"); AddFileToDownloadsTable("models/player/stenli/smite/fenrir.mdl");
AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body.vmt"); AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body.vmt");
AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body.vtf"); AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body.vtf");
AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body_n.vtf"); AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body_n.vtf");
AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body_s.vtf"); AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/body_s.vtf");
AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/lights.vmt"); AddFileToDownloadsTable("materials/models/player/stenli/smite/fenrir/lights.vmt");
PrecacheModel("models/player/stenli/smite/fenrir.mdl"); PrecacheModel("models/player/stenli/smite/fenrir.mdl");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.vvd"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.vvd");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.dx80.vtx"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.dx80.vtx");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.dx90.vtx"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.dx90.vtx");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.mdl"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.mdl");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.phy"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.phy");
AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.sw.vtx"); AddFileToDownloadsTable("models/player/vad36lollipop/lolli_new.sw.vtx");
AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_d_cos11.vtf"); AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_d_cos11.vtf");
AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_n_cos11.vtf"); AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_n_cos11.vtf");
AddFileToDownloadsTable("materials/models/player/vad36lollipop/hat.vmt"); AddFileToDownloadsTable("materials/models/player/vad36lollipop/hat.vmt");
@ -89,20 +89,20 @@ public void OnMapStart()
AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_hair_n_cos11.vtf"); AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_hair_n_cos11.vtf");
AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_d_cos11.vmt"); AddFileToDownloadsTable("materials/models/player/vad36lollipop/tx_ch_main_juliet_skin_d_cos11.vmt");
PrecacheModel("models/player/vad36lollipop/lolli_new.mdl"); PrecacheModel("models/player/vad36lollipop/lolli_new.mdl");
AddFileToDownloadsTable("models/player/vad36santa/red.dx80.vtx"); AddFileToDownloadsTable("models/player/vad36santa/red.dx80.vtx");
AddFileToDownloadsTable("models/player/vad36santa/red.dx90.vtx"); AddFileToDownloadsTable("models/player/vad36santa/red.dx90.vtx");
AddFileToDownloadsTable("models/player/vad36santa/red.mdl"); AddFileToDownloadsTable("models/player/vad36santa/red.mdl");
AddFileToDownloadsTable("models/player/vad36santa/red.phy"); AddFileToDownloadsTable("models/player/vad36santa/red.phy");
AddFileToDownloadsTable("models/player/vad36santa/red.sw.vtx"); AddFileToDownloadsTable("models/player/vad36santa/red.sw.vtx");
AddFileToDownloadsTable("models/player/vad36santa/red.vvd"); AddFileToDownloadsTable("models/player/vad36santa/red.vvd");
AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_N.vtf"); AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_N.vtf");
AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D.vmt"); AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D.vmt");
AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D.vtf"); AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D.vtf");
AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D_B.vmt"); AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D_B.vmt");
AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D_B.vtf"); AddFileToDownloadsTable("materials/models/player/vad36santa/Santa_D_B.vtf");
PrecacheModel("models/player/vad36santa/red.mdl"); PrecacheModel("models/player/vad36santa/red.mdl");
AddFileToDownloadsTable("models/zombieden/xmas/giftbox.dx80.vtx"); AddFileToDownloadsTable("models/zombieden/xmas/giftbox.dx80.vtx");
AddFileToDownloadsTable("models/zombieden/xmas/giftbox.dx90.vtx"); AddFileToDownloadsTable("models/zombieden/xmas/giftbox.dx90.vtx");
AddFileToDownloadsTable("models/zombieden/xmas/giftbox.mdl"); AddFileToDownloadsTable("models/zombieden/xmas/giftbox.mdl");
@ -115,7 +115,7 @@ public void OnMapStart()
AddFileToDownloadsTable("materials/models/zombieden/xmas/gift_2.vtf"); AddFileToDownloadsTable("materials/models/zombieden/xmas/gift_2.vtf");
AddFileToDownloadsTable("materials/models/zombieden/xmas/gift_lightwarp.vtf"); AddFileToDownloadsTable("materials/models/zombieden/xmas/gift_lightwarp.vtf");
PrecacheModel("models/zombieden/xmas/giftbox.mdl"); PrecacheModel("models/zombieden/xmas/giftbox.mdl");
AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.dx80.vtx"); AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.dx80.vtx");
AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.dx90.vtx"); AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.dx90.vtx");
AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.mdl"); AddFileToDownloadsTable("models/models_kit/xmas/xmastree_mini.mdl");
@ -132,7 +132,7 @@ public void OnMapStart()
AddFileToDownloadsTable("materials/models/models_kit/xmas/xmastree_miscb_skin2.vtf"); AddFileToDownloadsTable("materials/models/models_kit/xmas/xmastree_miscb_skin2.vtf");
AddFileToDownloadsTable("materials/models/models_kit/xmas/xmastree_miscb_spec.vtf"); AddFileToDownloadsTable("materials/models/models_kit/xmas/xmastree_miscb_spec.vtf");
PrecacheModel("models/models_kit/xmas/xmastree_mini.mdl"); PrecacheModel("models/models_kit/xmas/xmastree_mini.mdl");
AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.dx80.vtx"); AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.dx80.vtx");
AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.dx90.vtx"); AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.dx90.vtx");
AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.mdl"); AddFileToDownloadsTable("models/models_kit/xmas/xmas_teddybear.mdl");
@ -157,9 +157,9 @@ public void OnMapStart()
AddFileToDownloadsTable("models/weapons/w_revenge_xmas_candy.sw.vtx"); AddFileToDownloadsTable("models/weapons/w_revenge_xmas_candy.sw.vtx");
AddFileToDownloadsTable("models/weapons/w_revenge_xmas_candy.vvd"); AddFileToDownloadsTable("models/weapons/w_revenge_xmas_candy.vvd");
AddFileToDownloadsTable("materials/models/weapons/v_models/xmas_candy/cane.vmt"); AddFileToDownloadsTable("materials/models/weapons/v_models/xmas_candy/cane.vmt");
AddFileToDownloadsTable("materials/models/weapons/v_models/xmas_candy/cane.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/xmas_candy/cane.vtf");
PrecacheModel("models/weapons/w_revenge_xmas_candy.mdl"); PrecacheModel("models/weapons/w_revenge_xmas_candy.mdl");
AddFileToDownloadsTable("models/johny-srka/snowman.dx80.vtx"); AddFileToDownloadsTable("models/johny-srka/snowman.dx80.vtx");
AddFileToDownloadsTable("models/johny-srka/snowman.dx90.vtx"); AddFileToDownloadsTable("models/johny-srka/snowman.dx90.vtx");
AddFileToDownloadsTable("models/johny-srka/snowman.mdl"); AddFileToDownloadsTable("models/johny-srka/snowman.mdl");
@ -174,8 +174,8 @@ public void OnMapStart()
AddFileToDownloadsTable("materials/models/johny-srka/snowfloor002a.vtf"); AddFileToDownloadsTable("materials/models/johny-srka/snowfloor002a.vtf");
AddFileToDownloadsTable("materials/models/johny-srka/wood_old.vmt"); AddFileToDownloadsTable("materials/models/johny-srka/wood_old.vmt");
AddFileToDownloadsTable("materials/models/johny-srka/wood_old.vtf"); AddFileToDownloadsTable("materials/models/johny-srka/wood_old.vtf");
PrecacheModel("models/johny-srka/snowman.mdl"); PrecacheModel("models/johny-srka/snowman.mdl");
AddFileToDownloadsTable("models/weapons/w_snowball_thrown.dx80.vtx"); AddFileToDownloadsTable("models/weapons/w_snowball_thrown.dx80.vtx");
AddFileToDownloadsTable("models/weapons/w_snowball_thrown.dx90.vtx"); AddFileToDownloadsTable("models/weapons/w_snowball_thrown.dx90.vtx");
AddFileToDownloadsTable("models/weapons/w_snowball_thrown.mdl"); AddFileToDownloadsTable("models/weapons/w_snowball_thrown.mdl");
@ -184,33 +184,33 @@ public void OnMapStart()
AddFileToDownloadsTable("models/weapons/w_snowball_thrown.vvd"); AddFileToDownloadsTable("models/weapons/w_snowball_thrown.vvd");
AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s.vmt"); AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s.vmt");
AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s.vtf");
AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s_norm.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/snooball/s_norm.vtf");
PrecacheModel("models/weapons/w_snowball_thrown.mdl"); PrecacheModel("models/weapons/w_snowball_thrown.mdl");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.dx80.vtx"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.dx80.vtx");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.dx90.vtx"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.dx90.vtx");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.mdl"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.mdl");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.phy"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.phy");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.sw.vtx"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.sw.vtx");
AddFileToDownloadsTable("models/weapons/w_ornament_thrown.vvd"); AddFileToDownloadsTable("models/weapons/w_ornament_thrown.vvd");
AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/ornament.vmt"); AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/ornament.vmt");
AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/ornament.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/ornament.vtf");
AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/reflect.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/ornament/reflect.vtf");
PrecacheModel("models/weapons/w_ornament_thrown.mdl"); PrecacheModel("models/weapons/w_ornament_thrown.mdl");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.dx80.vtx"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.dx80.vtx");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.dx90.vtx"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.dx90.vtx");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.mdl"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.mdl");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.phy"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.phy");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.sw.vtx"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.sw.vtx");
AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.vvd"); AddFileToDownloadsTable("models/weapons/w_santa_hat_thrown.vvd");
AddFileToDownloadsTable("materials/models/weapons/v_models/eq_fraggrenade/bonnet.vmt"); AddFileToDownloadsTable("materials/models/weapons/v_models/eq_fraggrenade/bonnet.vmt");
AddFileToDownloadsTable("materials/models/weapons/v_models/eq_fraggrenade/bonnet.vtf"); AddFileToDownloadsTable("materials/models/weapons/v_models/eq_fraggrenade/bonnet.vtf");
PrecacheModel("models/weapons/w_santa_hat_thrown.mdl"); PrecacheModel("models/weapons/w_santa_hat_thrown.mdl");
AddFileToDownloadsTable("sound/unl1/season/hohohoho.wav"); AddFileToDownloadsTable("sound/unl1/season/hohohoho.wav");
PrecacheSound("sound/unl1/season/hohohoho.wav"); PrecacheSound("sound/unl1/season/hohohoho.wav");
float fRandomInterval = GetRandomFloat(GetConVarFloat(g_hCVar_RandomIntervalMin), GetConVarFloat(g_hCVar_RandomIntervalMax)); float fRandomInterval = GetRandomFloat(GetConVarFloat(g_hCVar_RandomIntervalMin), GetConVarFloat(g_hCVar_RandomIntervalMax));
CreateTimer(fRandomInterval, SpawnCollectable, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE); CreateTimer(fRandomInterval, SpawnCollectable, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
} }
@ -221,7 +221,7 @@ public void OnClientPostAdminFilter(int client)
} }
public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
{ {
CreateTimer(10.0, CheckPlayerCount, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE); CreateTimer(10.0, CheckPlayerCount, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
} }
@ -236,7 +236,7 @@ public Action CheckPlayerCount(Handle timer)
} }
public Action Command_ReloadFlags(int client, int args) public Action Command_ReloadFlags(int client, int args)
{ {
for(int i = 1; i <= MaxClients; i++) for(int i = 1; i <= MaxClients; i++)
{ {
if(IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i)) if(IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i))
@ -249,35 +249,35 @@ public Action Command_ReloadFlags(int client, int args)
public Action Command_HighScore(int client, int args) public Action Command_HighScore(int client, int args)
{ {
char error[255]; char error[255];
Database db; Database db;
if (SQL_CheckConfig("season")) if (SQL_CheckConfig("season"))
{ {
db = SQL_Connect("season", true, error, sizeof(error)); db = SQL_Connect("season", true, error, sizeof(error));
} }
if (db == null) if (db == null)
{ {
LogError("Could not connect to database: %s", error); LogError("Could not connect to database: %s", error);
delete db; delete db;
return Plugin_Handled; return Plugin_Handled;
} }
char sName[MAX_NAME_LENGTH]; char sName[MAX_NAME_LENGTH];
char sQuery[255]; char sQuery[255];
char sBuffer[2048] = "{green}[Unloze XMAS] {white}TOP COLLECTORS:\n"; char sBuffer[2048] = "{green}[Unloze XMAS] {white}TOP COLLECTORS:\n";
char sTempBuffer[1024] = ""; char sTempBuffer[1024] = "";
int iCollected; int iCollected;
int iField; int iField;
Format(sQuery, sizeof(sQuery), "SELECT * from season_table order by collected desc limit %d", GetConVarInt(g_hCVar_HighscoreDisplay)); Format(sQuery, sizeof(sQuery), "SELECT * from season_table order by collected desc limit %d", GetConVarInt(g_hCVar_HighscoreDisplay));
DBResultSet rs; DBResultSet rs;
if ((rs = SQL_Query(db, sQuery)) == null) if ((rs = SQL_Query(db, sQuery)) == null)
{ {
CPrintToChat(client, "{green}[Unloze XMAS] {white}Error! Could not connect to MYSQL-DB!"); CPrintToChat(client, "{green}[Unloze XMAS] {white}Error! Could not connect to MYSQL-DB!");
delete db; delete db;
delete rs; delete rs;
return Plugin_Handled; return Plugin_Handled;
} }
for(int i = 1; i <= GetConVarInt(g_hCVar_HighscoreDisplay); i++) for(int i = 1; i <= GetConVarInt(g_hCVar_HighscoreDisplay); i++)
{ {
rs.FetchRow(); rs.FetchRow();
@ -286,8 +286,8 @@ public Action Command_HighScore(int client, int args)
rs.FieldNameToNum("collected", iField); rs.FieldNameToNum("collected", iField);
iCollected = rs.FetchInt(iField); iCollected = rs.FetchInt(iField);
Format(sTempBuffer, sizeof(sTempBuffer), "{green}%d: %s - {red}%d \n", i, sName, iCollected); Format(sTempBuffer, sizeof(sTempBuffer), "{green}%d: %s - {red}%d \n", i, sName, iCollected);
StrCat(sBuffer, sizeof(sBuffer), sTempBuffer); StrCat(sBuffer, sizeof(sBuffer), sTempBuffer);
} }
CPrintToChat(client, sBuffer); CPrintToChat(client, sBuffer);
delete db; delete db;
delete rs; delete rs;
@ -298,9 +298,9 @@ public Action Command_Collected(int client, int args)
{ {
int iCollected = CheckMYSQL(client); int iCollected = CheckMYSQL(client);
CPrintToChat(client, "{green}[Unloze XMAS] {white}You have collected {green}%d {white}presents so far.", iCollected); CPrintToChat(client, "{green}[Unloze XMAS] {white}You have collected {green}%d {white}presents so far.", iCollected);
if ((iCollected > GetConVarInt(g_hCVar_MilestoneInfection)) && (iCollected > GetConVarInt(g_hCVar_MilestoneSkin))) if ((iCollected > GetConVarInt(g_hCVar_MilestoneInfection)) && (iCollected > GetConVarInt(g_hCVar_MilestoneSkin)))
CPrintToChat(client, "{green}[Unloze XMAS] {white}You have unlocked {red}all rewards{white} already."); CPrintToChat(client, "{green}[Unloze XMAS] {white}You have unlocked {red}all rewards{white} already.");
if (iCollected < GetConVarInt(g_hCVar_MilestoneInfection)) if (iCollected < GetConVarInt(g_hCVar_MilestoneInfection))
CPrintToChat(client, "{green}[Unloze XMAS] {white}You need to collect {green}%d {white}more presents to unlock {red}INFECTION EFFECTS{white}.", GetConVarInt(g_hCVar_MilestoneInfection) - iCollected); CPrintToChat(client, "{green}[Unloze XMAS] {white}You need to collect {green}%d {white}more presents to unlock {red}INFECTION EFFECTS{white}.", GetConVarInt(g_hCVar_MilestoneInfection) - iCollected);
if (iCollected < GetConVarInt(g_hCVar_MilestoneGrenade)) if (iCollected < GetConVarInt(g_hCVar_MilestoneGrenade))
@ -314,32 +314,32 @@ public Action Command_Collected(int client, int args)
public int CheckMYSQL(int client) public int CheckMYSQL(int client)
{ {
if (client == -1) if (client == -1)
return -1; return -1;
char error[255]; char error[255];
Database db; Database db;
if (SQL_CheckConfig("season")) if (SQL_CheckConfig("season"))
{ {
db = SQL_Connect("season", true, error, sizeof(error)); db = SQL_Connect("season", true, error, sizeof(error));
} }
if (db == null) if (db == null)
{ {
CPrintToChat(client, "{green}[Unloze XMAS] {white}Error! Could not connect to MYSQL-DB!"); CPrintToChat(client, "{green}[Unloze XMAS] {white}Error! Could not connect to MYSQL-DB!");
delete db; delete db;
return -1; return -1;
} }
char sSID[64]; char sSID[64];
GetClientAuthId(client, AuthId_Steam2, sSID, sizeof(sSID)); GetClientAuthId(client, AuthId_Steam2, sSID, sizeof(sSID));
char sQuery[255]; char sQuery[255];
Format(sQuery, sizeof(sQuery), "SELECT collected FROM season_table WHERE steam_auth = '%s'", sSID); Format(sQuery, sizeof(sQuery), "SELECT collected FROM season_table WHERE steam_auth = '%s'", sSID);
DBResultSet rs; DBResultSet rs;
if ((rs = SQL_Query(db, sQuery)) == null) if ((rs = SQL_Query(db, sQuery)) == null)
{ {
delete db; delete db;
delete rs; delete rs;
return -1; return -1;
} }
int iCollected; int iCollected;
if (!(rs.RowCount > 0)) if (!(rs.RowCount > 0))
@ -356,7 +356,7 @@ public int CheckMYSQL(int client)
delete rs; delete rs;
delete db; delete db;
CheckAndAddFlag(client, iCollected); CheckAndAddFlag(client, iCollected);
return iCollected; return iCollected;
} }
public Action SpawnCollectable(Handle timer) public Action SpawnCollectable(Handle timer)
@ -367,37 +367,37 @@ public Action SpawnCollectable(Handle timer)
if (!GetConVarBool(g_hCVar_CollectablesEnabled) || !(g_bEnabled)) if (!GetConVarBool(g_hCVar_CollectablesEnabled) || !(g_bEnabled))
return; return;
int target = GetTargetClient(); int target = GetTargetClient();
GetClientAbsOrigin(target, g_fPropOrigin); GetClientAbsOrigin(target, g_fPropOrigin);
int iRotating = SpawnRotating(); int iRotating = SpawnRotating();
int iParticle = SpawnParticle(); int iParticle = SpawnParticle();
int iProp = SpawnProp(); int iProp = SpawnProp();
int iHitbox = SpawnHitbox(iRotating, iParticle); int iHitbox = SpawnHitbox(iRotating, iParticle);
int iTrigger = SpawnTrigger(iHitbox); int iTrigger = SpawnTrigger(iHitbox);
int iAmbient = SpawnAmbientHohohoho(); int iAmbient = SpawnAmbientHohohoho();
SetVariantString("!activator"); SetVariantString("!activator");
AcceptEntityInput(iProp, "SetParent", iRotating); AcceptEntityInput(iProp, "SetParent", iRotating);
SetVariantString("!activator"); SetVariantString("!activator");
AcceptEntityInput(iHitbox, "SetParent", iRotating); AcceptEntityInput(iHitbox, "SetParent", iRotating);
SetVariantString("!activator"); SetVariantString("!activator");
AcceptEntityInput(iTrigger, "SetParent", iRotating); AcceptEntityInput(iTrigger, "SetParent", iRotating);
AcceptEntityInput(iTrigger, "Enable"); AcceptEntityInput(iTrigger, "Enable");
int iEntityLimit = GetConVarInt(g_hCVar_EntityLimit); int iEntityLimit = GetConVarInt(g_hCVar_EntityLimit);
if ((iRotating > iEntityLimit) || (iParticle > iEntityLimit) || (iProp > iEntityLimit) || (iHitbox > iEntityLimit) || (iTrigger > iEntityLimit) || (iAmbient > iEntityLimit)) if ((iRotating > iEntityLimit) || (iParticle > iEntityLimit) || (iProp > iEntityLimit) || (iHitbox > iEntityLimit) || (iTrigger > iEntityLimit) || (iAmbient > iEntityLimit))
{ {
AcceptEntityInput(iHitbox, "FireUser2"); AcceptEntityInput(iHitbox, "FireUser2");
CPrintToChatAll("{green}[Unloze XMAS] {white}Present removed due to {red}critical amount of entities{white}!"); CPrintToChatAll("{green}[Unloze XMAS] {white}Present removed due to {red}critical amount of entities{white}!");
} }
} }
public int GetTargetClient() public int GetTargetClient()
{ {
int[] iEligibleClients = new int[MaxClients]; int[] iEligibleClients = new int[MaxClients];
int iClientCount = 0; int iClientCount = 0;
for(int i = 1; i <= MaxClients; i++) for(int i = 1; i <= MaxClients; i++)
{ {
if(IsClientInGame(i) && IsPlayerAlive(i) && (ZR_IsClientHuman(i))) if(IsClientInGame(i) && IsPlayerAlive(i) && (ZR_IsClientHuman(i)))
@ -405,37 +405,37 @@ public int GetTargetClient()
iEligibleClients[iClientCount] = i; iEligibleClients[iClientCount] = i;
iClientCount += 1; iClientCount += 1;
} }
} }
if (iClientCount == 0) if (iClientCount == 0)
return -1; return -1;
int randomIndex = GetRandomInt(0, iClientCount - 1); int randomIndex = GetRandomInt(0, iClientCount - 1);
return iEligibleClients[randomIndex]; return iEligibleClients[randomIndex];
} }
public void HookCallbackTrigger(const char[] output, int caller, int activator, float delay) public void HookCallbackTrigger(const char[] output, int caller, int activator, float delay)
{ {
if (!ZR_IsClientHuman(activator)) if (!ZR_IsClientHuman(activator))
{ {
UnhookSingleEntityOutput(caller, "OnStartTouch", HookCallbackTrigger); UnhookSingleEntityOutput(caller, "OnStartTouch", HookCallbackTrigger);
AcceptEntityInput(caller, "FireUser1"); AcceptEntityInput(caller, "FireUser1");
CPrintToChatAll("{green}[Unloze XMAS] {white}Zombies {red}destroyed{white} a present!"); CPrintToChatAll("{green}[Unloze XMAS] {white}Zombies {red}destroyed{white} a present!");
} }
} }
public void HookCallback(const char[] output, int caller, int activator, float delay) public void HookCallback(const char[] output, int caller, int activator, float delay)
{ {
UpdateMYSQL(); UpdateMYSQL();
} }
public bool UpdateMYSQL() public bool UpdateMYSQL()
{ {
char error[255]; char error[255];
Database db; Database db;
if (SQL_CheckConfig("season")) if (SQL_CheckConfig("season"))
{ {
db = SQL_Connect("season", true, error, sizeof(error)); db = SQL_Connect("season", true, error, sizeof(error));
} }
if (db == null) if (db == null)
{ {
LogError("Could not connect to database: %s", error); LogError("Could not connect to database: %s", error);
@ -450,23 +450,23 @@ public bool UpdateMYSQL()
char sName[MAX_NAME_LENGTH]; char sName[MAX_NAME_LENGTH];
GetClientAuthId(client, AuthId_Steam2, sSID, sizeof(sSID)); GetClientAuthId(client, AuthId_Steam2, sSID, sizeof(sSID));
GetClientName(client, sName, sizeof(sName)); GetClientName(client, sName, sizeof(sName));
char sQuery[255]; char sQuery[255];
Format(sQuery, sizeof(sQuery), "SELECT collected FROM season_table WHERE steam_auth = '%s'", sSID); Format(sQuery, sizeof(sQuery), "SELECT collected FROM season_table WHERE steam_auth = '%s'", sSID);
DBResultSet rs; DBResultSet rs;
if ((rs = SQL_Query(db, sQuery)) == null) if ((rs = SQL_Query(db, sQuery)) == null)
{ {
delete db; delete db;
delete rs; delete rs;
return false; return false;
} }
int iCollected; int iCollected;
if (!(rs.RowCount > 0)) if (!(rs.RowCount > 0))
{ {
iCollected = 0; iCollected = 0;
Format(sQuery, sizeof(sQuery), "INSERT INTO season_table (steam_auth, name, collected) VALUES ('%s', '%s', '%d')", sSID, sName, iCollected); Format(sQuery, sizeof(sQuery), "INSERT INTO season_table (steam_auth, name, collected) VALUES ('%s', '%s', '%d')", sSID, sName, iCollected);
SQL_FastQuery(db, sQuery); SQL_FastQuery(db, sQuery);
} }
else else
{ {
@ -483,13 +483,13 @@ public bool UpdateMYSQL()
CPrintToChat(client, "{green}[Unloze XMAS] {white}Your Team opened a present! You have collected {green}%d {white}presents so far.", iCollected); CPrintToChat(client, "{green}[Unloze XMAS] {white}Your Team opened a present! You have collected {green}%d {white}presents so far.", iCollected);
if (iCollected == GetConVarInt(g_hCVar_MilestoneInfection)) if (iCollected == GetConVarInt(g_hCVar_MilestoneInfection))
CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}INFECTION EFFECTS{white}!"); CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}INFECTION EFFECTS{white}!");
if (iCollected == GetConVarInt(g_hCVar_MilestoneGrenade)) if (iCollected == GetConVarInt(g_hCVar_MilestoneGrenade))
CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}GRENADE SKINS{white}!"); CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}GRENADE SKINS{white}!");
if (iCollected == GetConVarInt(g_hCVar_MilestoneSkin)) if (iCollected == GetConVarInt(g_hCVar_MilestoneSkin))
CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}XMAS SKINS{white}!"); CPrintToChat(client, "{green}[Unloze XMAS] {white}Congratulations! You have unlocked {red}XMAS SKINS{white}!");
} }
} }
delete db; delete db;
return true; return true;
@ -499,32 +499,32 @@ public void CheckAndAddFlag(int client, int iCollected)
{ {
if (iCollected >= GetConVarInt(g_hCVar_MilestoneSkin)) if (iCollected >= GetConVarInt(g_hCVar_MilestoneSkin))
{ {
AddUserFlags(client, Admin_Custom4); AddUserFlags(client, Admin_Custom4);
} }
} }
public int SpawnTrigger(int iHitbox) public int SpawnTrigger(int iHitbox)
{ {
char StrOutput1[128]; char StrOutput1[128];
Format(StrOutput1, sizeof(StrOutput1), "season_hitbox_%i,FireUser2,,0,1", iHitbox); Format(StrOutput1, sizeof(StrOutput1), "season_hitbox_%i,FireUser2,,0,1", iHitbox);
int Entity; int Entity;
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("trigger_multiple")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("trigger_multiple")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Generate unique id for the entity // Generate unique id for the entity
char StrEntityName[64]; char StrEntityName[64];
Format(StrEntityName, sizeof(StrEntityName), "trigger_multiple_%i", Entity); Format(StrEntityName, sizeof(StrEntityName), "trigger_multiple_%i", Entity);
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", StrEntityName); DispatchKeyValue(Entity, "targetname", StrEntityName);
DispatchKeyValue(Entity, "spawnflags", "1"); DispatchKeyValue(Entity, "spawnflags", "1");
DispatchKeyValue(Entity, "startdisabled", "1"); DispatchKeyValue(Entity, "startdisabled", "1");
DispatchKeyValueVector(Entity, "origin", g_fPropOrigin); DispatchKeyValueVector(Entity, "origin", g_fPropOrigin);
DispatchKeyValue(Entity, "OnUser1", StrOutput1); DispatchKeyValue(Entity, "OnUser1", StrOutput1);
DispatchSpawn(Entity); DispatchSpawn(Entity);
ActivateEntity(Entity); ActivateEntity(Entity);
SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl"); SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl");
float fMinbounds[3] = {-16.0, -16.0, -1.0}; float fMinbounds[3] = {-16.0, -16.0, -1.0};
@ -541,23 +541,23 @@ public int SpawnTrigger(int iHitbox)
public int SpawnRotating() public int SpawnRotating()
{ {
int Entity; int Entity;
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("func_rotating")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("func_rotating")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Generate unique id for the entity // Generate unique id for the entity
char StrEntityName[64]; char StrEntityName[64];
Format(StrEntityName, sizeof(StrEntityName), "season_rotating_%i", Entity); Format(StrEntityName, sizeof(StrEntityName), "season_rotating_%i", Entity);
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", StrEntityName); DispatchKeyValue(Entity, "targetname", StrEntityName);
DispatchKeyValue(Entity, "maxspeed", "20"); DispatchKeyValue(Entity, "maxspeed", "20");
DispatchKeyValue(Entity, "spawnflags", "65"); DispatchKeyValue(Entity, "spawnflags", "65");
DispatchKeyValueVector(Entity, "origin", g_fPropOrigin); DispatchKeyValueVector(Entity, "origin", g_fPropOrigin);
DispatchSpawn(Entity); DispatchSpawn(Entity);
ActivateEntity(Entity); ActivateEntity(Entity);
SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl"); SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl");
float fMinbounds[3] = {-1.00, -1.00, -1.00}; float fMinbounds[3] = {-1.00, -1.00, -1.00};
float fMaxbounds[3] = {1.00, 1.00, 1.00}; float fMaxbounds[3] = {1.00, 1.00, 1.00};
@ -576,7 +576,7 @@ public int SpawnProp()
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("prop_dynamic_override")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("prop_dynamic_override")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", "season_prop"); DispatchKeyValue(Entity, "targetname", "season_prop");
DispatchKeyValue(Entity, "model", "models/zombieden/xmas/giftbox.mdl"); DispatchKeyValue(Entity, "model", "models/zombieden/xmas/giftbox.mdl");
@ -585,15 +585,15 @@ public int SpawnProp()
DispatchKeyValue(Entity, "disablereceiveshadows", "1"); DispatchKeyValue(Entity, "disablereceiveshadows", "1");
DispatchKeyValue(Entity, "DisableBoneFollowers", "1"); DispatchKeyValue(Entity, "DisableBoneFollowers", "1");
DispatchKeyValueVector(Entity, "origin", g_fPropOrigin); DispatchKeyValueVector(Entity, "origin", g_fPropOrigin);
DispatchSpawn(Entity); DispatchSpawn(Entity);
ActivateEntity(Entity); ActivateEntity(Entity);
int iRandomSkin = GetRandomInt(0, 1); int iRandomSkin = GetRandomInt(0, 1);
if (iRandomSkin == 0) if (iRandomSkin == 0)
{ {
SetVariantString("0"); SetVariantString("0");
} }
else if (iRandomSkin == 1) else if (iRandomSkin == 1)
{ {
SetVariantString("1"); SetVariantString("1");
@ -608,49 +608,49 @@ public int SpawnParticle()
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("info_particle_system")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("info_particle_system")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Generate unique id for the entity // Generate unique id for the entity
char StrEntityName[64]; char StrEntityName[64];
Format(StrEntityName, sizeof(StrEntityName), "season_particle_%i", Entity); Format(StrEntityName, sizeof(StrEntityName), "season_particle_%i", Entity);
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", StrEntityName); DispatchKeyValue(Entity, "targetname", StrEntityName);
DispatchKeyValue(Entity, "effect_name", "achieved"); DispatchKeyValue(Entity, "effect_name", "achieved");
DispatchKeyValueVector(Entity, "origin", g_fPropOrigin); DispatchKeyValueVector(Entity, "origin", g_fPropOrigin);
DispatchSpawn(Entity); DispatchSpawn(Entity);
ActivateEntity(Entity); ActivateEntity(Entity);
return Entity; return Entity;
} }
public int SpawnHitbox(int iRotatingParent, int iParticleParent) public int SpawnHitbox(int iRotatingParent, int iParticleParent)
{ {
char StrOutput1[128]; char StrOutput1[128];
Format(StrOutput1, sizeof(StrOutput1), "season_rotating_%i,KillHierarchy,,2.5,1", iRotatingParent); Format(StrOutput1, sizeof(StrOutput1), "season_rotating_%i,KillHierarchy,,2.5,1", iRotatingParent);
char StrOutput2[128]; char StrOutput2[128];
Format(StrOutput2, sizeof(StrOutput2), "season_particle_%i,Start,,0,1", iParticleParent); Format(StrOutput2, sizeof(StrOutput2), "season_particle_%i,Start,,0,1", iParticleParent);
char StrOutput3[128]; char StrOutput3[128];
Format(StrOutput3, sizeof(StrOutput3), "season_rotating_%i,KillHierarchy,,59.0,1", iRotatingParent); Format(StrOutput3, sizeof(StrOutput3), "season_rotating_%i,KillHierarchy,,59.0,1", iRotatingParent);
char StrOutput4[128]; char StrOutput4[128];
Format(StrOutput4, sizeof(StrOutput4), "season_sound_hohohoho,Kill,,59.0,1"); Format(StrOutput4, sizeof(StrOutput4), "season_sound_hohohoho,Kill,,59.0,1");
char StrOutput5[128]; char StrOutput5[128];
Format(StrOutput5, sizeof(StrOutput5), "season_rotating_%i,KillHierarchy,,0,1", iRotatingParent); Format(StrOutput5, sizeof(StrOutput5), "season_rotating_%i,KillHierarchy,,0,1", iRotatingParent);
char StrOutput6[128]; char StrOutput6[128];
Format(StrOutput6, sizeof(StrOutput6), "season_sound_hohohoho,Kill,,0,1"); Format(StrOutput6, sizeof(StrOutput6), "season_sound_hohohoho,Kill,,0,1");
int Entity; int Entity;
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("func_physbox_multiplayer")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("func_physbox_multiplayer")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Generate unique id for the entity // Generate unique id for the entity
char StrEntityName[64]; char StrEntityName[64];
Format(StrEntityName, sizeof(StrEntityName), "season_hitbox_%i", Entity); Format(StrEntityName, sizeof(StrEntityName), "season_hitbox_%i", Entity);
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", StrEntityName); DispatchKeyValue(Entity, "targetname", StrEntityName);
DispatchKeyValue(Entity, "model", "models/zombieden/xmas/giftbox.mdl"); DispatchKeyValue(Entity, "model", "models/zombieden/xmas/giftbox.mdl");
@ -681,11 +681,11 @@ public int SpawnHitbox(int iRotatingParent, int iParticleParent)
public int SpawnAmbientHohohoho() public int SpawnAmbientHohohoho()
{ {
int Entity; int Entity;
// Spawn dynamic prop entity // Spawn dynamic prop entity
if ((Entity = CreateEntityByName("ambient_generic")) == INVALID_ENT_REFERENCE) if ((Entity = CreateEntityByName("ambient_generic")) == INVALID_ENT_REFERENCE)
return -1; return -1;
// Setup entity // Setup entity
DispatchKeyValue(Entity, "targetname", "season_sound_hohohoho"); DispatchKeyValue(Entity, "targetname", "season_sound_hohohoho");
DispatchKeyValueVector(Entity, "origin", g_fPropOrigin); DispatchKeyValueVector(Entity, "origin", g_fPropOrigin);
@ -695,9 +695,9 @@ public int SpawnAmbientHohohoho()
DispatchKeyValue(Entity, "volume", "10"); DispatchKeyValue(Entity, "volume", "10");
DispatchKeyValue(Entity, "health", "10"); DispatchKeyValue(Entity, "health", "10");
DispatchKeyValue(Entity, "pitch", "100"); DispatchKeyValue(Entity, "pitch", "100");
DispatchKeyValue(Entity, "pitchstart", "100"); DispatchKeyValue(Entity, "pitchstart", "100");
DispatchSpawn(Entity); DispatchSpawn(Entity);
ActivateEntity(Entity); ActivateEntity(Entity);
return Entity; return Entity;
} }
@ -707,30 +707,30 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo
{ {
float fInfectionOrigin[3]; float fInfectionOrigin[3];
GetClientAbsOrigin(client, fInfectionOrigin); GetClientAbsOrigin(client, fInfectionOrigin);
int EntityProp; int EntityProp;
EntityProp = CreateEntityByName("prop_dynamic_override"); EntityProp = CreateEntityByName("prop_dynamic_override");
DispatchKeyValue(EntityProp, "targetname", "season_infection_prop"); DispatchKeyValue(EntityProp, "targetname", "season_infection_prop");
int iRandomSkin = GetRandomInt(0, 4); int iRandomSkin = GetRandomInt(0, 4);
if (iRandomSkin == 0) if (iRandomSkin == 0)
{ {
DispatchKeyValue(EntityProp, "model", "models/models_kit/xmas/xmastree_mini.mdl"); DispatchKeyValue(EntityProp, "model", "models/models_kit/xmas/xmastree_mini.mdl");
DispatchKeyValue(EntityProp, "modelscale", "0.35"); DispatchKeyValue(EntityProp, "modelscale", "0.35");
DispatchKeyValue(EntityProp, "angles", "0 0 0"); DispatchKeyValue(EntityProp, "angles", "0 0 0");
} }
else if (iRandomSkin == 1) else if (iRandomSkin == 1)
{ {
DispatchKeyValue(EntityProp, "model", "models/weapons/w_revenge_xmas_candy.mdl"); DispatchKeyValue(EntityProp, "model", "models/weapons/w_revenge_xmas_candy.mdl");
DispatchKeyValue(EntityProp, "modelscale", "1.2"); DispatchKeyValue(EntityProp, "modelscale", "1.2");
DispatchKeyValue(EntityProp, "angles", "-27 0 0"); DispatchKeyValue(EntityProp, "angles", "-27 0 0");
} }
else if (iRandomSkin == 2) else if (iRandomSkin == 2)
{ {
DispatchKeyValue(EntityProp, "model", "models/johny-srka/snowman.mdl"); DispatchKeyValue(EntityProp, "model", "models/johny-srka/snowman.mdl");
DispatchKeyValue(EntityProp, "modelscale", "0.45"); DispatchKeyValue(EntityProp, "modelscale", "0.45");
DispatchKeyValue(EntityProp, "angles", "0 0 0"); DispatchKeyValue(EntityProp, "angles", "0 0 0");
} }
else if (iRandomSkin == 3) else if (iRandomSkin == 3)
{ {
DispatchKeyValue(EntityProp, "model", "models/weapons/w_santa_hat_thrown.mdl"); DispatchKeyValue(EntityProp, "model", "models/weapons/w_santa_hat_thrown.mdl");
@ -742,17 +742,17 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo
{ {
DispatchKeyValue(EntityProp, "model", "models/models_kit/xmas/xmas_teddybear.mdl"); DispatchKeyValue(EntityProp, "model", "models/models_kit/xmas/xmas_teddybear.mdl");
DispatchKeyValue(EntityProp, "modelscale", "0.7"); DispatchKeyValue(EntityProp, "modelscale", "0.7");
} }
DispatchKeyValue(EntityProp, "disableshadows", "1"); DispatchKeyValue(EntityProp, "disableshadows", "1");
DispatchKeyValue(EntityProp, "disablereceiveshadows", "1"); DispatchKeyValue(EntityProp, "disablereceiveshadows", "1");
DispatchKeyValue(EntityProp, "DisableBoneFollowers", "1"); DispatchKeyValue(EntityProp, "DisableBoneFollowers", "1");
DispatchKeyValueVector(EntityProp, "origin", fInfectionOrigin); DispatchKeyValueVector(EntityProp, "origin", fInfectionOrigin);
DispatchSpawn(EntityProp); DispatchSpawn(EntityProp);
ActivateEntity(EntityProp); ActivateEntity(EntityProp);
int EntityRotating; int EntityRotating;
EntityRotating = CreateEntityByName("func_rotating"); EntityRotating = CreateEntityByName("func_rotating");
DispatchKeyValue(EntityRotating, "targetname", "season_infection_rotating"); DispatchKeyValue(EntityRotating, "targetname", "season_infection_rotating");
DispatchKeyValue(EntityRotating, "maxspeed", "13"); DispatchKeyValue(EntityRotating, "maxspeed", "13");
DispatchKeyValue(EntityRotating, "spawnflags", "65"); DispatchKeyValue(EntityRotating, "spawnflags", "65");
@ -760,8 +760,8 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo
DispatchKeyValue(EntityRotating, "OnUser1", "!self,KillHierarchy,,45,1"); DispatchKeyValue(EntityRotating, "OnUser1", "!self,KillHierarchy,,45,1");
DispatchKeyValue(EntityRotating, "OnUser2", "!self,KillHierarchy,,0,1"); DispatchKeyValue(EntityRotating, "OnUser2", "!self,KillHierarchy,,0,1");
DispatchSpawn(EntityRotating); DispatchSpawn(EntityRotating);
ActivateEntity(EntityRotating); ActivateEntity(EntityRotating);
SetEntityModel(EntityRotating, "models/models_kit/xmas/xmastree_mini.mdl"); SetEntityModel(EntityRotating, "models/models_kit/xmas/xmastree_mini.mdl");
float fMinbounds[3] = {-1.00, -1.00, -1.00}; float fMinbounds[3] = {-1.00, -1.00, -1.00};
float fMaxbounds[3] = {1.00, 1.00, 1.00}; float fMaxbounds[3] = {1.00, 1.00, 1.00};
@ -771,17 +771,17 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo
int enteffects = GetEntProp(EntityRotating, Prop_Send, "m_fEffects"); int enteffects = GetEntProp(EntityRotating, Prop_Send, "m_fEffects");
enteffects |= 32; enteffects |= 32;
SetEntProp(EntityRotating, Prop_Send, "m_fEffects", enteffects); SetEntProp(EntityRotating, Prop_Send, "m_fEffects", enteffects);
SetVariantString("!activator"); SetVariantString("!activator");
AcceptEntityInput(EntityProp, "SetParent", EntityRotating); AcceptEntityInput(EntityProp, "SetParent", EntityRotating);
AcceptEntityInput(EntityRotating, "FireUser1"); AcceptEntityInput(EntityRotating, "FireUser1");
int iEntityLimit = GetConVarInt(g_hCVar_EntityLimit); int iEntityLimit = GetConVarInt(g_hCVar_EntityLimit);
if ((EntityRotating > iEntityLimit) || (EntityProp > iEntityLimit)) if ((EntityRotating > iEntityLimit) || (EntityProp > iEntityLimit))
{ {
AcceptEntityInput(EntityRotating, "FireUser2"); AcceptEntityInput(EntityRotating, "FireUser2");
CPrintToChatAll("{green}[Unloze XMAS] {white}Infection Effect removed due to {red}critical amount of entities{white}!"); CPrintToChatAll("{green}[Unloze XMAS] {white}Infection Effect removed due to {red}critical amount of entities{white}!");
} }
} }
} }
@ -794,33 +794,33 @@ public void OnEntityCreated(int entity, const char[] classname)
public void ProjectileSpawned(int Entity) public void ProjectileSpawned(int Entity)
{ {
int iOwner = GetEntPropEnt(Entity, Prop_Data, "m_hOwnerEntity"); int iOwner = GetEntPropEnt(Entity, Prop_Data, "m_hOwnerEntity");
if(0 < iOwner <= MaxClients && IsClientInGame(iOwner)) if(0 < iOwner <= MaxClients && IsClientInGame(iOwner))
{ {
if (CheckMYSQL(iOwner) >= GetConVarInt(g_hCVar_MilestoneGrenade)) if (CheckMYSQL(iOwner) >= GetConVarInt(g_hCVar_MilestoneGrenade))
{ {
int iRandomSkin = GetRandomInt(0, 3); int iRandomSkin = GetRandomInt(0, 3);
if (iRandomSkin == 0) if (iRandomSkin == 0)
{ {
SetEntityModel(Entity, "models/weapons/w_snowball_thrown.mdl"); SetEntityModel(Entity, "models/weapons/w_snowball_thrown.mdl");
SetVariantString("modelscale 3.0"); SetVariantString("modelscale 3.0");
AcceptEntityInput(Entity, "AddOutput"); AcceptEntityInput(Entity, "AddOutput");
} }
else if (iRandomSkin == 1) else if (iRandomSkin == 1)
{ {
SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl"); SetEntityModel(Entity, "models/zombieden/xmas/giftbox.mdl");
SetVariantString("modelscale 0.6"); SetVariantString("modelscale 0.6");
AcceptEntityInput(Entity, "AddOutput"); AcceptEntityInput(Entity, "AddOutput");
iRandomSkin = GetRandomInt(0, 1); iRandomSkin = GetRandomInt(0, 1);
if (iRandomSkin == 0) if (iRandomSkin == 0)
{ {
SetVariantString("0"); SetVariantString("0");
} }
else if (iRandomSkin == 1) else if (iRandomSkin == 1)
{ {
SetVariantString("1"); SetVariantString("1");
} }
AcceptEntityInput(Entity, "Skin"); AcceptEntityInput(Entity, "Skin");
} }
else if (iRandomSkin == 2) else if (iRandomSkin == 2)
{ {
@ -835,7 +835,7 @@ public void ProjectileSpawned(int Entity)
AcceptEntityInput(Entity, "AddOutput"); AcceptEntityInput(Entity, "AddOutput");
} }
} }
} }
} }
int IsValidClient(int client, bool nobots = true) int IsValidClient(int client, bool nobots = true)