Spring break cleanup.
Cleaning up all useless tabs, spaces, indents, you name it.
This commit is contained in:
parent
0e8490f32f
commit
c8b3433700
@ -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 = "";
|
||||||
}
|
}
|
@ -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));
|
||||||
|
@ -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"
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
@ -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();
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
@ -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.");
|
||||||
|
@ -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;
|
}
|
||||||
}
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user