aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 0f34ea7a553..a36f639c1c9 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -6760,11 +6760,15 @@ void Spell::EffectWMODamage(SpellEffIndex /*effIndex*/)
if (!caster)
return;
+ // Do not allow damage if hp is 0
+ if (gameObjTarget->GetGOValue()->building.health == 0)
+ return;
+
FactionTemplateEntry const *casterft, *goft;
casterft = caster->getFactionTemplateEntry();
goft = sFactionTemplateStore.LookupEntry(gameObjTarget->GetUInt32Value(GAMEOBJECT_FACTION));
- // Do not allow to damage GO's of friendly factions (ie: Wintergrasp Walls)
- if (casterft && goft && !casterft->IsFriendlyTo(*goft))
+ // Do not allow to damage GO's of friendly factions (ie: Wintergrasp Walls/Ulduar Storm Beacons)
+ if ((casterft && goft && !casterft->IsFriendlyTo(*goft)) || !goft)
{
gameObjTarget->TakenDamage(uint32(damage), caster);
WorldPacket data(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, 8+8+8+4+4);