aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSupabad <none@none>2010-10-19 13:15:47 +0200
committerSupabad <none@none>2010-10-19 13:15:47 +0200
commitb7b65eacf2724a0548f7c9ed34ccef8e649d118c (patch)
tree6378b7c45210f3f89033d0062a2f99e48a558232
parent43220cc1f6c40781cc16f3fc01def7d472a13885 (diff)
Core/Spells: Destructable Buildings
- Fix issue where damage can be done to GameObjects with hp 0 - add check for Gameobjects with faction 0 --HG-- branch : trunk
-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);