ZSkills: add cd between the ZCleanse Uses

This commit is contained in:
dogan 2020-05-19 21:38:39 +02:00
parent b8d877132a
commit 7213733f5a

View File

@ -18,9 +18,11 @@ ConVar g_hCVar_ZAmmo_Cost;
ConVar g_hCVar_ZCleanse_Enabled; ConVar g_hCVar_ZCleanse_Enabled;
ConVar g_hCVar_ZCleanse_Duration; ConVar g_hCVar_ZCleanse_Duration;
ConVar g_hCVar_ZCleanse_Uses; ConVar g_hCVar_ZCleanse_Uses;
ConVar g_hCVar_ZCleanse_Cooldown;
/* INTEGERS */ /* INTEGERS */
int g_bZCleanse_Uses[MAXPLAYERS+1]; int g_bZCleanse_Uses[MAXPLAYERS+1];
int g_iLastZCleanse_Used[MAXPLAYERS+1];
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
@ -30,7 +32,7 @@ public Plugin myinfo =
name = "ZSkills", name = "ZSkills",
author = "Neon", author = "Neon",
description = "Skills?!", 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_ZAmmo_Enabled.AddChangeHook(ConVarChanged);
g_hCVar_ZCleanse_Enabled = CreateConVar("zr_zcleanse_enabled", "1", "", FCVAR_NONE, true, 0.0, true, 1.0); 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_Duration = CreateConVar("zr_zcleanse_duration", "4", "", FCVAR_NONE, true, 1.0);
g_hCVar_ZCleanse_Uses = CreateConVar("zr_zcleanse_uses", "5", "", 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_bZCleanse_Enabled = g_hCVar_ZCleanse_Enabled.BoolValue;
g_hCVar_ZCleanse_Enabled.AddChangeHook(ConVarChanged); 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); PrintToChat(client, "[ZCleanse] Already used (%d/%d) times this round.", g_bZCleanse_Uses[client], iMaxUses);
return Plugin_Handled; 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; int iDuration = g_hCVar_ZCleanse_Duration.IntValue;
SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 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_Active[client] = true;
g_bZCleanse_Uses[client]++; 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); 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); EmitSoundToAll("unloze/extinguish.wav", .entity=client, .volume=0.4);
return Plugin_Handled; return Plugin_Handled;
@ -186,6 +197,7 @@ public void OnClientDisconnect(int client)
g_bZAmmo_Active[client] = false; g_bZAmmo_Active[client] = false;
g_bZCleanse_Active[client] = false; g_bZCleanse_Active[client] = false;
g_bZCleanse_Uses[client] = 0; 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_bZAmmo_Active[client] = false;
g_bZCleanse_Active[client] = false; g_bZCleanse_Active[client] = false;
g_bZCleanse_Uses[client] = 0; g_bZCleanse_Uses[client] = 0;
g_iLastZCleanse_Used[client] = 0;
} }
} }