Eliminated Rogue Bot twirling combat behavior.

This commit is contained in:
Uleat 2017-01-26 14:37:51 -05:00
parent 31de6a63cc
commit 3d54a4edcb
2 changed files with 22 additions and 17 deletions

View File

@ -1,5 +1,8 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50) EQEMu Changelog (Started on Sept 24, 2003 15:50)
------------------------------------------------------- -------------------------------------------------------
== 01/26/2017 ==
Uleat: Change rogue bot behavior to eliminate twirling combat. They will only get behind the mob if they are not the mob's target or if the mob is feared or fleeing. This may lower rogue bot dps a small fraction..but, is more in-line with realistic game mechanics.
== 01/17/2017 == == 01/17/2017 ==
Mackal: Combat Revamp Mackal: Combat Revamp
- This change brings melee combat into line with how combat is done on live. - This change brings melee combat into line with how combat is done on live.

View File

@ -2305,24 +2305,26 @@ void Bot::AI_Process() {
} }
if(AI_movement_timer->Check()) { if(AI_movement_timer->Check()) {
if(!IsMoving() && GetClass() == ROGUE && !BehindMob(GetTarget(), GetX(), GetY())) { if (!IsMoving()) {
// Move the rogue to behind the mob if (GetClass() == ROGUE && (GetTarget() != this || GetTarget()->IsFeared()) && !BehindMob(GetTarget(), GetX(), GetY())) {
float newX = 0; // Move the rogue to behind the mob
float newY = 0; float newX = 0;
float newZ = 0; float newY = 0;
if(PlotPositionAroundTarget(GetTarget(), newX, newY, newZ)) { float newZ = 0;
CalculateNewPosition2(newX, newY, newZ, GetRunspeed()); if (PlotPositionAroundTarget(GetTarget(), newX, newY, newZ)) {
return; CalculateNewPosition2(newX, newY, newZ, GetRunspeed());
return;
}
} }
} else if (GetClass() != ROGUE && (DistanceSquaredNoZ(m_Position, GetTarget()->GetPosition()) < GetTarget()->GetSize())) {
else if(!IsMoving() && GetClass() != ROGUE && (DistanceSquaredNoZ(m_Position, GetTarget()->GetPosition()) < GetTarget()->GetSize())) { // If we are not a rogue trying to backstab, let's try to adjust our melee range so we don't appear to be bunched up
// If we are not a rogue trying to backstab, let's try to adjust our melee range so we don't appear to be bunched up float newX = 0;
float newX = 0; float newY = 0;
float newY = 0; float newZ = 0;
float newZ = 0; if (PlotPositionAroundTarget(GetTarget(), newX, newY, newZ, false) && GetArchetype() != ARCHETYPE_CASTER) {
if(PlotPositionAroundTarget(GetTarget(), newX, newY, newZ, false) && GetArchetype() != ARCHETYPE_CASTER) { CalculateNewPosition2(newX, newY, newZ, GetRunspeed());
CalculateNewPosition2(newX, newY, newZ, GetRunspeed()); return;
return; }
} }
} }