From 527ee56fb20f8dbdf7cd7dc7eefba3321a1fdf2f Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Wed, 20 Jul 2016 17:49:33 -0400 Subject: [PATCH] Fix Distance Mod scaling The client clamps the distance between the min/max --- zone/spell_effects.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 70e7118f8..57c1ace64 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -24,6 +24,7 @@ #include "../common/rulesys.h" #include "../common/skills.h" #include "../common/spdat.h" +#include "../common/data_verification.h" #include "quest_parser_collection.h" #include "string_ids.h" @@ -6731,9 +6732,11 @@ void Mob::CalcSpellPowerDistanceMod(uint16 spell_id, float range, Mob* caster) else distance = sqrt(range); + distance = EQEmu::Clamp(distance, spells[spell_id].min_dist, spells[spell_id].max_dist); + float dm_range = spells[spell_id].max_dist - spells[spell_id].min_dist; float dm_mod_interval = spells[spell_id].max_dist_mod - spells[spell_id].min_dist_mod; - float dist_from_min = distance - spells[spell_id].min_dist; + float dist_from_min = distance - spells[spell_id].min_dist; float mod = spells[spell_id].min_dist_mod + (dist_from_min * (dm_mod_interval/dm_range)); mod *= 100.0f;