entWatch4: Add internal button cooldown.
Using button while 'waiting' would otherwise cause the item to go on cooldown in entWatch, while not actually being successfully used in the map.
This commit is contained in:
parent
eb7022a6ae
commit
99399febad
@ -19,6 +19,7 @@ methodmap CItem < Basic
|
||||
|
||||
myclass.SetInt("iTimesUsed", 0);
|
||||
myclass.SetInt("iTimeReady", 0);
|
||||
myclass.SetInt("iWaitTill", 0);
|
||||
|
||||
return view_as<CItem>(myclass);
|
||||
}
|
||||
@ -110,6 +111,18 @@ methodmap CItem < Basic
|
||||
}
|
||||
}
|
||||
|
||||
property int iWaitTill
|
||||
{
|
||||
public get()
|
||||
{
|
||||
return this.GetInt("iWaitTill");
|
||||
}
|
||||
public set(int value)
|
||||
{
|
||||
this.SetInt("iWaitTill", value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
property bool bClient
|
||||
{
|
||||
|
@ -494,6 +494,15 @@ public Action OnButtonPress(int button, int client)
|
||||
if ((item.bButton && item.iButton == button) &&
|
||||
(item.bClient && item.iClient == client))
|
||||
{
|
||||
if (HasEntProp(button, Prop_Data, "m_flWait"))
|
||||
{
|
||||
if (item.iWaitTill < RoundToCeil(GetEngineTime()))
|
||||
{
|
||||
item.iWaitTill = RoundToCeil(GetEngineTime() + GetEntPropFloat(button, Prop_Data, "m_flWait"));
|
||||
}
|
||||
else return Plugin_Handled;
|
||||
}
|
||||
|
||||
Action aResult;
|
||||
Call_StartForward(g_hFwd_OnClientItemCanActivate);
|
||||
Call_PushCell(client);
|
||||
|
Loading…
Reference in New Issue
Block a user