mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-28 13:27:15 +00:00
[Performance] Reduced CPU footprint in non-combat zones doing constant checks for combat related activities
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 03/25/2017 ==
|
||||
Akkadius: Reduced CPU footprint in non-combat zones doing constant checks for combat related activities
|
||||
|
||||
== 03/12/2017 ==
|
||||
Akkadius:
|
||||
- Implemented range rules for packets and other functions
|
||||
|
||||
@@ -616,7 +616,7 @@ bool Client::Process() {
|
||||
//At this point, we are still connected, everything important has taken
|
||||
//place, now check to see if anybody wants to aggro us.
|
||||
// only if client is not feigned
|
||||
if(ret && !GetFeigned() && scanarea_timer.Check()) {
|
||||
if(zone->CanDoCombat() && ret && !GetFeigned() && scanarea_timer.Check()) {
|
||||
entity_list.CheckClientAggro(this);
|
||||
}
|
||||
#endif
|
||||
|
||||
+16
-7
@@ -726,6 +726,7 @@ void Client::AI_SpellCast()
|
||||
|
||||
void Client::AI_Process()
|
||||
{
|
||||
|
||||
if (!IsAIControlled())
|
||||
return;
|
||||
|
||||
@@ -956,6 +957,10 @@ void Mob::AI_Process() {
|
||||
bool engaged = IsEngaged();
|
||||
bool doranged = false;
|
||||
|
||||
if (!zone->CanDoCombat()) {
|
||||
engaged = false;
|
||||
}
|
||||
|
||||
// Begin: Additions for Wiz Fear Code
|
||||
//
|
||||
if(RuleB(Combat, EnableFearPathing)){
|
||||
@@ -1022,7 +1027,8 @@ void Mob::AI_Process() {
|
||||
if (!target) {
|
||||
SetTarget(hate_list.GetEntWithMostHateOnList(this));
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if (!ImprovedTaunt())
|
||||
SetTarget(hate_list.GetEntWithMostHateOnList(this));
|
||||
}
|
||||
@@ -1059,7 +1065,8 @@ void Mob::AI_Process() {
|
||||
if (DistanceSquaredNoZ(m_Position, npcSpawnPoint) > tether_range) {
|
||||
GMMove(npcSpawnPoint.x, npcSpawnPoint.y, npcSpawnPoint.z, npcSpawnPoint.w);
|
||||
}
|
||||
} else if(GetSpecialAbility(LEASH)) {
|
||||
}
|
||||
else if (GetSpecialAbility(LEASH)) {
|
||||
float leash_range = static_cast<float>(GetSpecialAbilityParam(LEASH, 0));
|
||||
leash_range = leash_range > 0.0f ? leash_range * leash_range : pAggroRange * pAggroRange;
|
||||
|
||||
@@ -1263,7 +1270,8 @@ void Mob::AI_Process() {
|
||||
AI_walking_timer->Start(100);
|
||||
pLastFightingDelayMoving = Timer::GetCurrentTime();
|
||||
return;
|
||||
} else if(tar != nullptr) {
|
||||
}
|
||||
else if (tar != nullptr) {
|
||||
SetTarget(tar);
|
||||
return;
|
||||
}
|
||||
@@ -1311,11 +1319,12 @@ void Mob::AI_Process() {
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
|
||||
if (m_PlayerState & static_cast<uint32>(PlayerState::Aggressive))
|
||||
SendRemovePlayerState(PlayerState::Aggressive);
|
||||
if(AI_feign_remember_timer->Check()) {
|
||||
|
||||
if(!zone->CanDoCombat() && AI_feign_remember_timer->Check()) {
|
||||
// 6/14/06
|
||||
// Improved Feign Death Memory
|
||||
// check to see if any of our previous feigned targets have gotten up.
|
||||
@@ -1340,7 +1349,7 @@ void Mob::AI_Process() {
|
||||
{
|
||||
//we processed a spell action, so do nothing else.
|
||||
}
|
||||
else if (AI_scan_area_timer->Check())
|
||||
else if (!zone->CanDoCombat() && AI_scan_area_timer->Check())
|
||||
{
|
||||
/*
|
||||
* This is where NPCs look around to see if they want to attack anybody.
|
||||
|
||||
Reference in New Issue
Block a user