int wh;
Написал плагин, когда кмд на jaile стреляет (wh = 1), если кто-то стреляет по кнопке в этот момент, она активируется и потом принимает значение (wh = 0), так-же после выстрела кмд, стоит таймер 0.1 для возвращения (wh = 0)
Да, жесткий костыль, но хукнить id пользователя с HookEntityOutput не получается (activator = -1 или принимает id последнего игрока нажавшего кнопку)
Кто-то может как-то оптимизировать код или же убрать таймер в 0.1, но с условием, где после выстрела кмд и непопадания в кнопку (wh=0)
P.S. event player_shoor - не работает в данном случае.
#include <sdktools>
#include <jwp>
#include <sourcemod>
#include <cstrike>
bool wh;
bool tt;
public void OnPluginStart()
{
HookEntityOutput("func_button", "OnDamaged", OnDamaged);
HookEvent("bullet_impact", OnBulletImpact);
}
public void OnBulletImpact(Event Xevent, const String:name[], bool:dontBroadcast)
{
int iUserID = Xevent.GetInt("userid");
int iClient = GetClientOfUserId(iUserID);
if(JWP_IsWarden(iClient) && wh == false)
{
wh = true;
CreateTimer(0.1, Timer_tt, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}
else
{
return;
}
}
public void OnDamaged(const char[] output, int caller, int activator, float delay)
{
if(wh == true && tt == false)
{
AcceptEntityInput(caller, "Press", activator, caller);
wh = false;
tt = true;
}
}
public Action Timer_tt(Handle hTimer)
{
if(tt == true)
{
tt = false;
}
else
{
wh = false;
}
KillTimer(hTimer);
}