[Performance] Reduced CPU footprint in cases where a client is checking for aggro excessively every 750 millseconds. This has

been adjusted to 6 seconds per new rule RULE_INT(Aggro, ClientAggroCheckInterval)
	- When zones have many players, with many NPC's, this adds up quickly
This commit is contained in:
Akkadius 2017-03-26 00:03:51 -05:00
parent 719098a97c
commit aa25946dc2
4 changed files with 7 additions and 3 deletions

View File

@ -2,6 +2,9 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50)
------------------------------------------------------- -------------------------------------------------------
== 03/25/2017 == == 03/25/2017 ==
Akkadius: Reduced CPU footprint in non-combat zones doing constant checks for combat related activities Akkadius: Reduced CPU footprint in non-combat zones doing constant checks for combat related activities
Akkadius: Reduced CPU footprint in cases where a client is checking for aggro excessively every 750 millseconds. This has
been adjusted to 6 seconds per new rule RULE_INT(Aggro, ClientAggroCheckInterval)
- When zones have many players, with many NPC's, this adds up quickly
== 03/12/2017 == == 03/12/2017 ==
Akkadius: Akkadius:

View File

@ -157,7 +157,7 @@ enum { //timer settings, all in milliseconds
AIscanarea_delay = 6000, AIscanarea_delay = 6000,
AIfeignremember_delay = 500, AIfeignremember_delay = 500,
AItarget_check_duration = 500, AItarget_check_duration = 500,
AIClientScanarea_delay = 750, //used in REVERSE_AGGRO // AIClientScanarea_delay = 750, //used in REVERSE_AGGRO
AIassistcheck_delay = 3000, //now often a fighting NPC will yell for help AIassistcheck_delay = 3000, //now often a fighting NPC will yell for help
AI_check_signal_timer_delay = 500, // How often EVENT_SIGNAL checks are processed AI_check_signal_timer_delay = 500, // How often EVENT_SIGNAL checks are processed
ClientProximity_interval = 150, ClientProximity_interval = 150,

View File

@ -536,6 +536,7 @@ RULE_INT(Aggro, MaxScalingProcAggro, 400) // Set to -1 for no limit. Maxmimum am
RULE_INT(Aggro, IntAggroThreshold, 75) // Int <= this will aggro regardless of level difference. RULE_INT(Aggro, IntAggroThreshold, 75) // Int <= this will aggro regardless of level difference.
RULE_BOOL(Aggro, AllowTickPulling, false) // tick pulling is an exploit in an NPC's call for help fixed sometime in 2006 on live RULE_BOOL(Aggro, AllowTickPulling, false) // tick pulling is an exploit in an NPC's call for help fixed sometime in 2006 on live
RULE_BOOL(Aggro, UseLevelAggro, true) // Level 18+ and Undead will aggro regardless of level difference. (this will disabled Rule:IntAggroThreshold if set to true) RULE_BOOL(Aggro, UseLevelAggro, true) // Level 18+ and Undead will aggro regardless of level difference. (this will disabled Rule:IntAggroThreshold if set to true)
RULE_INT(Aggro, ClientAggroCheckInterval, 6) // Interval in which clients actually check for aggro - in seconds
RULE_CATEGORY_END() RULE_CATEGORY_END()
RULE_CATEGORY(TaskSystem) RULE_CATEGORY(TaskSystem)

View File

@ -135,7 +135,7 @@ Client::Client(EQStreamInterface* ieqs)
forget_timer(0), forget_timer(0),
autosave_timer(RuleI(Character, AutosaveIntervalS) * 1000), autosave_timer(RuleI(Character, AutosaveIntervalS) * 1000),
#ifdef REVERSE_AGGRO #ifdef REVERSE_AGGRO
scanarea_timer(AIClientScanarea_delay), scanarea_timer(RuleI(Aggro, ClientAggroCheckInterval) * 1000),
#endif #endif
tribute_timer(Tribute_duration), tribute_timer(Tribute_duration),
proximity_timer(ClientProximity_interval), proximity_timer(ClientProximity_interval),