From 62d14ea7b7e5c32f40957d725c5633aa31709e25 Mon Sep 17 00:00:00 2001 From: dogan Date: Fri, 3 Jul 2020 13:30:33 +0200 Subject: [PATCH] ZSkills: add cd for ZAmmo --- ZSkills/scripting/ZSkills.sp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ZSkills/scripting/ZSkills.sp b/ZSkills/scripting/ZSkills.sp index 4767a640..5189fc2d 100644 --- a/ZSkills/scripting/ZSkills.sp +++ b/ZSkills/scripting/ZSkills.sp @@ -14,6 +14,7 @@ bool g_bLastButtonReload[MAXPLAYERS+1]; ConVar g_hCVar_ZAmmo_Enabled; ConVar g_hCVar_ZAmmo_Duration; ConVar g_hCVar_ZAmmo_Cost; +ConVar g_hCVar_ZAmmo_Cooldown; ConVar g_hCVar_ZCleanse_Enabled; ConVar g_hCVar_ZCleanse_Duration; @@ -23,6 +24,7 @@ ConVar g_hCVar_ZCleanse_Cooldown; /* INTEGERS */ int g_bZCleanse_Uses[MAXPLAYERS+1]; int g_iLastZCleanse_Used[MAXPLAYERS+1]; +int g_iLastZAmmo_Used[MAXPLAYERS+1]; //---------------------------------------------------------------------------------------------------- // Purpose: @@ -43,6 +45,7 @@ public void OnPluginStart() g_hCVar_ZAmmo_Enabled = CreateConVar("zr_zammo_enabled", "1", "", FCVAR_NONE, true, 0.0, true, 1.0); g_hCVar_ZAmmo_Duration = CreateConVar("zr_zammo_duration", "6", "", FCVAR_NONE, true, 1.0); g_hCVar_ZAmmo_Cost = CreateConVar("zr_zammo_cost", "4500", "", FCVAR_NONE, true, 1.0); + g_hCVar_ZAmmo_Cooldown = CreateConVar("zr_zammo_cooldown", "8", "", FCVAR_NONE, true, 1.0); g_bZAmmo_Enabled = g_hCVar_ZAmmo_Enabled.BoolValue; g_hCVar_ZAmmo_Enabled.AddChangeHook(ConVarChanged); @@ -117,6 +120,13 @@ public Action Command_ZAmmo(int client, int args) PrintToChat(client, "[ZAmmo] Insufficent funds (%d).", iCost); return Plugin_Handled; } + int iTimeSinceLastZAmmo = GetTime() - g_iLastZAmmo_Used[client]; + int iCooldown = g_hCVar_ZAmmo_Cooldown.IntValue; + if (iTimeSinceLastZAmmo < iCooldown) + { + PrintToChat(client, "[ZCleanse] You need to wait another %d Seconds before you can use ZAmmo again.", iCooldown - iTimeSinceLastZAmmo); + return Plugin_Handled; + } int iDuration = g_hCVar_ZAmmo_Duration.IntValue; SetEntProp(client, Prop_Send, "m_iAccount", GetEntProp(client, Prop_Send, "m_iAccount") - iCost); @@ -126,6 +136,7 @@ public Action Command_ZAmmo(int client, int args) CreateTimer(float(iDuration), Timer_Disable_ZAmmo, GetClientSerial(client), TIMER_FLAG_NO_MAPCHANGE); g_bZAmmo_Active[client] = true; + g_iLastZAmmo_Used[client] = GetTime(); PrintToChat(client, "[ZAmmo] Enabling Infinite Ammo for %d seconds in exchange for %d$.", iDuration, iCost); EmitSoundToAll("items/ammopickup.wav", .entity=client, .volume=0.4); return Plugin_Handled; @@ -198,6 +209,7 @@ public void OnClientDisconnect(int client) g_bZCleanse_Active[client] = false; g_bZCleanse_Uses[client] = 0; g_iLastZCleanse_Used[client] = 0; + g_iLastZAmmo_Used[client] = 0; } //---------------------------------------------------------------------------------------------------- @@ -211,6 +223,7 @@ public void Event_RoundStart(Handle hEvent, char[] name, bool dontBroadcast) g_bZCleanse_Active[client] = false; g_bZCleanse_Uses[client] = 0; g_iLastZCleanse_Used[client] = 0; + g_iLastZAmmo_Used[client] = 0; } }