From aa8a2ea41bde4d49d483efbf16b2ba33eefee878 Mon Sep 17 00:00:00 2001 From: Paul Coene Date: Fri, 21 Jul 2017 14:56:51 -0400 Subject: [PATCH 1/2] Repair fear pathing to ignore Z aspects and allow FixZ and pathing to handle it. Added the true flag for ResistCheck.Charisma so the proper Charisma bonuses are applied. --- zone/fearpath.cpp | 30 +++++++----------------------- zone/spell_effects.cpp | 2 +- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/zone/fearpath.cpp b/zone/fearpath.cpp index ea5bb16d9..e0217bd5e 100644 --- a/zone/fearpath.cpp +++ b/zone/fearpath.cpp @@ -152,28 +152,12 @@ void Mob::CalculateNewFearpoint() Log(Logs::Detail, Logs::None, "No path found to selected node. Falling through to old fear point selection."); } - int loop = 0; - float ranx, rany, ranz; - currently_fleeing = false; - while (loop < 100) //Max 100 tries - { - int ran = 250 - (loop*2); - loop++; - ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - ranz = FindGroundZ(ranx,rany); - if (ranz == -999999) - continue; - float fdist = ranz - GetZ(); - if (fdist >= -12 && fdist <= 12 && CheckCoordLosNoZLeaps(GetX(),GetY(),GetZ(),ranx,rany,ranz)) - { - currently_fleeing = true; - break; - } - } - if (currently_fleeing) - m_FearWalkTarget = glm::vec3(ranx, rany, ranz); - else //Break fear - BuffFadeByEffect(SE_Fear); + int ran = 250; + float ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + float rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + + m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); + + currently_fleeing = true; } diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 42b50edf3..2f0d65907 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -3640,7 +3640,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster) case SE_Fear: { if (zone->random.Roll(RuleI(Spells, FearBreakCheckChance))) { - float resist_check = ResistSpell(spells[buff.spellid].resisttype, buff.spellid, caster); + float resist_check = ResistSpell(spells[buff.spellid].resisttype, buff.spellid, caster,0,0,true); if (resist_check == 100) break; From a36b37b1ea1724d43aa777e8f13e6cca9d353c5c Mon Sep 17 00:00:00 2001 From: Akkadius Date: Fri, 21 Jul 2017 16:53:27 -0500 Subject: [PATCH 2/2] Adjust syntax --- zone/fearpath.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zone/fearpath.cpp b/zone/fearpath.cpp index e0217bd5e..6632cc6fa 100644 --- a/zone/fearpath.cpp +++ b/zone/fearpath.cpp @@ -153,11 +153,11 @@ void Mob::CalculateNewFearpoint() } int ran = 250; - float ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - float rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - - m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); - - currently_fleeing = true; + float ranx = GetX() + zone->random.Int(0, ran - 1) - zone->random.Int(0, ran - 1); + float rany = GetY() + zone->random.Int(0, ran - 1)-zone->random.Int(0, ran - 1); + + m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); + + currently_fleeing = true; }