@@ -1641,7 +1641,7 @@ void CGame::AddBuiltInEvents()
16411641 m_Events.AddEvent (" onPlayerResourceStart" , " resource" , NULL , false );
16421642 m_Events.AddEvent (" onPlayerProjectileCreation" , " weaponType, posX, posY, posZ, force, target, rotX, rotY, rotZ, velX, velY, velZ" , nullptr , false );
16431643 m_Events.AddEvent (" onPlayerDetonateSatchels" , " " , nullptr , false );
1644- m_Events.AddEvent (" onPlayerTriggerEventThreshold" , " " , nullptr , false );
1644+ m_Events.AddEvent (" onPlayerTriggerEventThreshold" , " eventName " , nullptr , false );
16451645 m_Events.AddEvent (" onPlayerTeamChange" , " oldTeam, newTeam" , nullptr , false );
16461646 m_Events.AddEvent (" onPlayerTriggerInvalidEvent" , " eventName, isAdded, isRemote" , nullptr , false );
16471647 m_Events.AddEvent (" onPlayerChangesProtectedData" , " element, key, value" , nullptr , false );
@@ -2680,7 +2680,7 @@ void CGame::Packet_LuaEvent(CLuaEventPacket& Packet)
26802680 m_pScriptDebugging->LogError (NULL , " Client (%s) triggered serverside event %s, but event is not added serverside" , pCaller->GetNick (), szName);
26812681 }
26822682
2683- RegisterClientTriggeredEventUsage (pCaller);
2683+ RegisterClientTriggeredEventUsage (pCaller, szName );
26842684 }
26852685}
26862686
@@ -4982,7 +4982,7 @@ void CGame::HandleCrashDumpEncryption()
49824982#endif
49834983}
49844984
4985- void CGame::RegisterClientTriggeredEventUsage (CPlayer* pPlayer)
4985+ void CGame::RegisterClientTriggeredEventUsage (CPlayer* pPlayer, const char * szEventName )
49864986{
49874987 if (!pPlayer || !pPlayer->IsPlayer () || pPlayer->IsBeingDeleted ())
49884988 return ;
@@ -4994,8 +4994,13 @@ void CGame::RegisterClientTriggeredEventUsage(CPlayer* pPlayer)
49944994 m_mapClientTriggeredEvents[pPlayer].m_llTicks = now;
49954995
49964996 // Only increment if we haven't reached the interval time already
4997- if (now - m_mapClientTriggeredEvents[pPlayer].m_llTicks <= m_iClientTriggeredEventsIntervalMs)
4998- m_mapClientTriggeredEvents[pPlayer].m_uiCounter ++;
4997+ ClientTriggeredEventsInfo& info = m_mapClientTriggeredEvents[pPlayer];
4998+
4999+ if (now - info.m_llTicks <= m_iClientTriggeredEventsIntervalMs)
5000+ info.m_uiCounter ++;
5001+
5002+ if (szEventName)
5003+ info.m_strLastEventName = szEventName;
49995004}
50005005
50015006void CGame::ProcessClientTriggeredEventSpam ()
@@ -5010,7 +5015,11 @@ void CGame::ProcessClientTriggeredEventSpam()
50105015 if (GetTickCount64_ () - data.m_llTicks >= m_iClientTriggeredEventsIntervalMs)
50115016 {
50125017 if (data.m_uiCounter > m_iMaxClientTriggeredEventsPerInterval)
5013- player->CallEvent (" onPlayerTriggerEventThreshold" , {});
5018+ {
5019+ CLuaArguments args;
5020+ args.PushString (data.m_strLastEventName );
5021+ player->CallEvent (" onPlayerTriggerEventThreshold" , args);
5022+ }
50145023
50155024 remove = true ;
50165025 }
0 commit comments