@@ -1641,7 +1641,7 @@ void CGame::AddBuiltInEvents()
1641
1641
m_Events.AddEvent (" onPlayerResourceStart" , " resource" , NULL , false );
1642
1642
m_Events.AddEvent (" onPlayerProjectileCreation" , " weaponType, posX, posY, posZ, force, target, rotX, rotY, rotZ, velX, velY, velZ" , nullptr , false );
1643
1643
m_Events.AddEvent (" onPlayerDetonateSatchels" , " " , nullptr , false );
1644
- m_Events.AddEvent (" onPlayerTriggerEventThreshold" , " " , nullptr , false );
1644
+ m_Events.AddEvent (" onPlayerTriggerEventThreshold" , " eventName " , nullptr , false );
1645
1645
m_Events.AddEvent (" onPlayerTeamChange" , " oldTeam, newTeam" , nullptr , false );
1646
1646
m_Events.AddEvent (" onPlayerTriggerInvalidEvent" , " eventName, isAdded, isRemote" , nullptr , false );
1647
1647
m_Events.AddEvent (" onPlayerChangesProtectedData" , " element, key, value" , nullptr , false );
@@ -2680,7 +2680,7 @@ void CGame::Packet_LuaEvent(CLuaEventPacket& Packet)
2680
2680
m_pScriptDebugging->LogError (NULL , " Client (%s) triggered serverside event %s, but event is not added serverside" , pCaller->GetNick (), szName);
2681
2681
}
2682
2682
2683
- RegisterClientTriggeredEventUsage (pCaller);
2683
+ RegisterClientTriggeredEventUsage (pCaller, szName );
2684
2684
}
2685
2685
}
2686
2686
@@ -4982,7 +4982,7 @@ void CGame::HandleCrashDumpEncryption()
4982
4982
#endif
4983
4983
}
4984
4984
4985
- void CGame::RegisterClientTriggeredEventUsage (CPlayer* pPlayer)
4985
+ void CGame::RegisterClientTriggeredEventUsage (CPlayer* pPlayer, const char * szEventName )
4986
4986
{
4987
4987
if (!pPlayer || !pPlayer->IsPlayer () || pPlayer->IsBeingDeleted ())
4988
4988
return ;
@@ -4994,8 +4994,13 @@ void CGame::RegisterClientTriggeredEventUsage(CPlayer* pPlayer)
4994
4994
m_mapClientTriggeredEvents[pPlayer].m_llTicks = now;
4995
4995
4996
4996
// 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;
4999
5004
}
5000
5005
5001
5006
void CGame::ProcessClientTriggeredEventSpam ()
@@ -5010,7 +5015,11 @@ void CGame::ProcessClientTriggeredEventSpam()
5010
5015
if (GetTickCount64_ () - data.m_llTicks >= m_iClientTriggeredEventsIntervalMs)
5011
5016
{
5012
5017
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
+ }
5014
5023
5015
5024
remove = true ;
5016
5025
}
0 commit comments