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
1308208f1a
commit
852e011790
@ -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