diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-04-24 00:56:00 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-04-24 00:56:00 +0200 |
commit | 597485f1d4ccadaccf800a2663f3d74342aa5c4d (patch) | |
tree | d4d9356d2623a5d1c7776d8b7a10f669876f8620 /src | |
parent | 41a04a0c496c8c0c521eeaa76e34fbeb531cc1d9 (diff) |
Core/GameObjects: Implement more gameobject gameevent uses
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObjectData.h | 1 |
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; |