aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp8
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index f87dce96843..76a09af2d0b 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1951,6 +1951,8 @@ void GameObject::Use(Unit* user)
itr->second = player->GetGUID(); //this slot in now used by player
player->TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET);
player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->chair.chairheight));
+ if (info->chair.triggeredEvent)
+ GameEvents::Trigger(info->chair.triggeredEvent, player, this);
return;
}
}
@@ -2362,6 +2364,9 @@ void GameObject::Use(Unit* user)
bg->EventPlayerClickedOnFlag(player, this);
break;
}
+
+ if (info->flagDrop.eventID)
+ GameEvents::Trigger(info->flagDrop.eventID, player, this);
}
//this cause to call return, all flags must be deleted here!!
spellId = 0;
@@ -2629,6 +2634,9 @@ void GameObject::ModifyHealth(int32 change, WorldObject* attackerOrHealer /*= nu
player->SendDirectMessage(packet.Write());
}
+ if (change < 0 && GetGOInfo()->destructibleBuilding.DamageEvent)
+ GameEvents::Trigger(GetGOInfo()->destructibleBuilding.DamageEvent, attackerOrHealer, this);
+
GameObjectDestructibleState newState = GetDestructibleState();
if (!m_goValue.Building.Health)
diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h
index 66ab069abeb..d4977063b98 100644
--- a/src/server/game/Entities/GameObject/GameObjectData.h
+++ b/src/server/game/Entities/GameObject/GameObjectData.h
@@ -974,6 +974,7 @@ struct GameObjectTemplate
{
case GAMEOBJECT_TYPE_GOOBER: return goober.eventID;
case GAMEOBJECT_TYPE_CHEST: return chest.triggeredEvent;
+ case GAMEOBJECT_TYPE_CHAIR: return chair.triggeredEvent;
case GAMEOBJECT_TYPE_CAMERA: return camera.eventID;
case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.triggeredEvent;
default: return 0;