From ba2bf0b0e76fc0f3b0321a2a39df7a189902cf8b Mon Sep 17 00:00:00 2001 From: dogan Date: Tue, 19 May 2020 21:38:39 +0200 Subject: [PATCH] ZSkills: add cd between the ZCleanse Uses --- ZSkills/scripting/ZSkills.sp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ZSkills/scripting/ZSkills.sp b/ZSkills/scripting/ZSkills.sp index 5b88ad4e..4767a640 100644 --- a/ZSkills/scripting/ZSkills.sp +++ b/ZSkills/scripting/ZSkills.sp @@ -18,9 +18,11 @@ ConVar g_hCVar_ZAmmo_Cost; ConVar g_hCVar_ZCleanse_Enabled; ConVar g_hCVar_ZCleanse_Duration; ConVar g_hCVar_ZCleanse_Uses; +ConVar g_hCVar_ZCleanse_Cooldown; /* INTEGERS */ int g_bZCleanse_Uses[MAXPLAYERS+1]; +int g_iLastZCleanse_Used[MAXPLAYERS+1]; //---------------------------------------------------------------------------------------------------- // Purpose: @@ -30,7 +32,7 @@ public Plugin myinfo = name = "ZSkills", author = "Neon", description = "Skills?!", - version = "1.0.1" + version = "1.0.2" }; //---------------------------------------------------------------------------------------------------- @@ -45,8 +47,9 @@ public void OnPluginStart() g_hCVar_ZAmmo_Enabled.AddChangeHook(ConVarChanged); g_hCVar_ZCleanse_Enabled = CreateConVar("zr_zcleanse_enabled", "1", "", FCVAR_NONE, true, 0.0, true, 1.0); - g_hCVar_ZCleanse_Duration = CreateConVar("zr_zcleanse_duration", "5", "", FCVAR_NONE, true, 1.0); - g_hCVar_ZCleanse_Uses = CreateConVar("zr_zcleanse_uses", "5", "", FCVAR_NONE, true, 1.0); + g_hCVar_ZCleanse_Duration = CreateConVar("zr_zcleanse_duration", "4", "", FCVAR_NONE, true, 1.0); + g_hCVar_ZCleanse_Uses = CreateConVar("zr_zcleanse_uses", "2", "", FCVAR_NONE, true, 1.0); + g_hCVar_ZCleanse_Cooldown = CreateConVar("zr_zcleanse_cooldown", "8", "", FCVAR_NONE, true, 1.0); g_bZCleanse_Enabled = g_hCVar_ZCleanse_Enabled.BoolValue; g_hCVar_ZCleanse_Enabled.AddChangeHook(ConVarChanged); @@ -164,6 +167,13 @@ public Action Command_ZCleanse(int client, int args) PrintToChat(client, "[ZCleanse] Already used (%d/%d) times this round.", g_bZCleanse_Uses[client], iMaxUses); return Plugin_Handled; } + int iTimeSinceLastZCleanse = GetTime() - g_iLastZCleanse_Used[client]; + int iCooldown = g_hCVar_ZCleanse_Cooldown.IntValue; + if (iTimeSinceLastZCleanse < iCooldown) + { + PrintToChat(client, "[ZCleanse] You need to wait another %d Seconds before you can use ZCleanse again.", iCooldown - iTimeSinceLastZCleanse); + return Plugin_Handled; + } int iDuration = g_hCVar_ZCleanse_Duration.IntValue; SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); @@ -173,6 +183,7 @@ public Action Command_ZCleanse(int client, int args) g_bZCleanse_Active[client] = true; g_bZCleanse_Uses[client]++; + g_iLastZCleanse_Used[client] = GetTime(); PrintToChat(client, "[ZCleanse] You are immune against napalm for the next %d seconds. (%d/%d) uses.", iDuration, g_bZCleanse_Uses[client], iMaxUses); EmitSoundToAll("unloze/extinguish.wav", .entity=client, .volume=0.4); return Plugin_Handled; @@ -186,6 +197,7 @@ public void OnClientDisconnect(int client) g_bZAmmo_Active[client] = false; g_bZCleanse_Active[client] = false; g_bZCleanse_Uses[client] = 0; + g_iLastZCleanse_Used[client] = 0; } //---------------------------------------------------------------------------------------------------- @@ -198,6 +210,7 @@ public void Event_RoundStart(Handle hEvent, char[] name, bool dontBroadcast) g_bZAmmo_Active[client] = false; g_bZCleanse_Active[client] = false; g_bZCleanse_Uses[client] = 0; + g_iLastZCleanse_Used[client] = 0; } }