From 1054cd8fb7d3bda2c2493a27a67c7d03df9cb356 Mon Sep 17 00:00:00 2001 From: jenz Date: Sat, 8 Jun 2024 23:02:58 +0200 Subject: [PATCH] temporarily fucking with giving weapons to clients --- .../scripting/track_give_named_item.sp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/track_give_named_item/scripting/track_give_named_item.sp b/track_give_named_item/scripting/track_give_named_item.sp index 9bec25fd..916306e8 100644 --- a/track_give_named_item/scripting/track_give_named_item.sp +++ b/track_give_named_item/scripting/track_give_named_item.sp @@ -6,6 +6,8 @@ #include Handle hGiveNamedItem; +Handle g_hLimitGiveNamedTimer = null; +bool allow_given_named_item; //the trololo guy is actively checking all plugins running. he should not be aware that we got somehwere. @@ -20,6 +22,7 @@ public Plugin myinfo = public void OnPluginStart() { + allow_given_named_item = true; Handle conf = LoadGameConfigFile("track_give_named_item.css"); if (conf == INVALID_HANDLE) SetFailState("Failed to load gamedata track_give_named_item.css"); @@ -39,12 +42,32 @@ public void OnPluginStart() SetFailState("Failed to detour CCSPlayer::GiveNamedItem"); delete conf; + + g_hLimitGiveNamedTimer = CreateTimer(0.10, Timer_Permit_given_named_item, _, TIMER_REPEAT); +} + +public Action Timer_Permit_given_named_item(Handle hTimer) +{ + allow_given_named_item = true; + return Plugin_Handled; +} + +public void OnPluginEnd() +{ + if (g_hLimitGiveNamedTimer != null) + delete g_hLimitGiveNamedTimer; } public MRESReturn track_give_named_item(int pThis, Handle hReturn, Handle hParams) { char pszName[512]; DHookGetParamString(hParams, 1, pszName, sizeof(pszName)); + if (!allow_given_named_item && !StrEqual(pszName, "weapon_knife")) + { + DHookSetReturn(hReturn, 0); + return MRES_Supercede; + } + allow_given_named_item = false; int iSubType = DHookGetParam(hParams, 2);