aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Spell.cpp2
-rw-r--r--src/game/Unit.cpp10
2 files changed, 6 insertions, 6 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 19b7eaab9e5..36d0da7cae0 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1186,7 +1186,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
m_diminishLevel = unit->GetDiminishing(m_diminishGroup);
DiminishingReturnsType type = GetDiminishingReturnsGroupType(m_diminishGroup);
// Increase Diminishing on unit, current informations for actually casts will use values above
- if((type == DRTYPE_PLAYER && unit->GetTypeId() == TYPEID_PLAYER) || type == DRTYPE_ALL)
+ if((type == DRTYPE_PLAYER && (unit->GetTypeId() == TYPEID_PLAYER || ((Creature*)unit)->isPet() || ((Creature*)unit)->isPossessedByPlayer())) || type == DRTYPE_ALL)
unit->IncrDiminishing(m_diminishGroup);
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 234922f040e..e7ff4e3ec62 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10659,13 +10659,13 @@ void Unit::ApplyDiminishingToDuration(DiminishingGroup group, int32 &duration,Un
if(duration == -1 || group == DIMINISHING_NONE || caster->IsFriendlyTo(this) )
return;
+ // test pet/charm masters instead pets/charmeds
+ Unit const* targetOwner = GetCharmerOrOwner();
+ Unit const* casterOwner = caster->GetCharmerOrOwner();
+
// Duration of crowd control abilities on pvp target is limited by 10 sec. (2.2.0)
if(duration > 10000 && IsDiminishingReturnsGroupDurationLimited(group))
{
- // test pet/charm masters instead pets/charmeds
- Unit const* targetOwner = GetCharmerOrOwner();
- Unit const* casterOwner = caster->GetCharmerOrOwner();
-
Unit const* target = targetOwner ? targetOwner : this;
Unit const* source = casterOwner ? casterOwner : caster;
@@ -10676,7 +10676,7 @@ void Unit::ApplyDiminishingToDuration(DiminishingGroup group, int32 &duration,Un
float mod = 1.0f;
// Some diminishings applies to mobs too (for example, Stun)
- if((GetDiminishingReturnsGroupType(group) == DRTYPE_PLAYER && GetTypeId() == TYPEID_PLAYER) || GetDiminishingReturnsGroupType(group) == DRTYPE_ALL)
+ if((GetDiminishingReturnsGroupType(group) == DRTYPE_PLAYER && (targetOwner ? targetOwner->GetTypeId():GetTypeId()) == TYPEID_PLAYER) || GetDiminishingReturnsGroupType(group) == DRTYPE_ALL)
{
DiminishingLevels diminish = Level;
switch(diminish)