From 861b11569393742f9a9e894eb9fce4c4d5cb803a Mon Sep 17 00:00:00 2001 From: dogan Date: Sat, 1 Aug 2020 13:44:12 +0200 Subject: [PATCH] CashManager: more stuff --- CashManager/scripting/CashManager.sp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/CashManager/scripting/CashManager.sp b/CashManager/scripting/CashManager.sp index c18964b4..50e6c7fd 100644 --- a/CashManager/scripting/CashManager.sp +++ b/CashManager/scripting/CashManager.sp @@ -17,6 +17,7 @@ ConVar g_cvarDamageMultiplier = null; #endif ConVar g_cvarInfectionGain; +ConVar g_cvarMotherZombieWinGain; ConVar g_cvarHumanWinGain; ConVar g_cvarRoundStartGain; ConVar g_cvarMaxCash; @@ -24,6 +25,8 @@ ConVar g_cvarMaxCash; bool g_bZRLoaded; bool g_bMapEnd; +bool g_bMotherZombie[MAXPLAYERS + 1]; + int g_iCash[MAXPLAYERS + 1]; int g_iCashReconnect[256]; int g_iSteamID[256]; @@ -33,7 +36,7 @@ public Plugin myinfo = name = "Cash Manager", author = "Obus + Dogan", description = "Manage Cash with additional gains and limits", - version = "1.1.0", + version = "1.2.0", url = "" }; @@ -42,6 +45,7 @@ public void OnPluginStart() #if defined DMGINSTEADOFHITS g_cvarDamageMultiplier = CreateConVar("sm_damagecashmultiplier", "1.0", "Multiplier that decides how much cash a client shall receive upon dealing damage"); g_cvarInfectionGain = CreateConVar("sm_infectioncashgain", "500", "Cash a client shall receive upon infection"); + g_cvarMotherZombieWinGain = CreateConVar("sm_motherzombiecashgain", "2500", "Cash a client shall receive upon zombie win while being motherzombie"); g_cvarHumanWinGain = CreateConVar("sm_humanwincashgain", "2500", "Cash a human shall receive upon human win"); g_cvarRoundStartGain = CreateConVar("sm_roundstartcashgain", "2500", "Cash everyone shall receive upon round start"); g_cvarMaxCash = CreateConVar("sm_maxcash", "45000", "Max cash you can store"); @@ -101,6 +105,8 @@ public void OnClientPutInServer(int client) if(IsFakeClient(client) || g_bMapEnd) return; + g_iCash[client] = 16000 - g_cvarRoundStartGain.IntValue; + int iSteamID = GetSteamAccountID(client); for(int i = 0; i < 256; i++) @@ -151,28 +157,37 @@ public void OnClientDisconnect(int client) } g_iCash[client] = 0; + g_bMotherZombie[client] = false; } public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, bool respawnOverride, bool respawn) { + g_bMotherZombie[client] = motherInfect; + if(!motherInfect && IsValidClient(attacker) && !(GetEntProp(attacker, Prop_Send, "m_iAccount") >= g_cvarMaxCash.IntValue)) SetEntProp(attacker, Prop_Send, "m_iAccount", GetEntProp(attacker, Prop_Send, "m_iAccount") + g_cvarInfectionGain.IntValue); } public Action EventHook_RoundEnd(Event hEvent, const char[] sEventName, bool bDontBroadcast) { - bool bAwardHumans = hEvent.GetInt("winner") == CS_TEAM_CT; + bool bAwardHumans = (hEvent.GetInt("winner") == CS_TEAM_CT); + bool bAwardZombies = (hEvent.GetInt("winner") == CS_TEAM_T); for(int i = 1; i <= MaxClients; i++) { if(!IsValidClient(i)) continue; - if(ZR_IsClientHuman(i) && bAwardHumans && !(GetEntProp(i, Prop_Send, "m_iAccount") >= g_cvarMaxCash.IntValue)) + if(GetClientTeam(i) == CS_TEAM_CT && bAwardHumans && !(GetEntProp(i, Prop_Send, "m_iAccount") >= g_cvarMaxCash.IntValue)) { SetEntProp(i, Prop_Send, "m_iAccount", GetEntProp(i, Prop_Send, "m_iAccount") + g_cvarHumanWinGain.IntValue); g_iCash[i] = GetEntProp(i, Prop_Send, "m_iAccount"); } + if(GetClientTeam(i) == CS_TEAM_T && bAwardZombies && g_bMotherZombie[i] && !(GetEntProp(i, Prop_Send, "m_iAccount") >= g_cvarMaxCash.IntValue)) + { + SetEntProp(i, Prop_Send, "m_iAccount", GetEntProp(i, Prop_Send, "m_iAccount") + g_cvarMotherZombieWinGain.IntValue); + g_iCash[i] = GetEntProp(i, Prop_Send, "m_iAccount"); + } else { g_iCash[i] = GetEntProp(i, Prop_Send, "m_iAccount"); @@ -184,6 +199,8 @@ public Action EventHook_RoundStart(Event hEvent, const char[] sEventName, bool b { for(int i = 1; i <= MaxClients; i++) { + g_bMotherZombie[i] = false; + if(IsValidClient(i) && !(GetEntProp(i, Prop_Send, "m_iAccount") >= g_cvarMaxCash.IntValue)) g_iCash[i] = g_iCash[i] + g_cvarRoundStartGain.IntValue; }