diff --git a/Source/Framework/Constants/CreatureConst.cs b/Source/Framework/Constants/CreatureConst.cs index f5a0d1acc..a46b55cb4 100644 --- a/Source/Framework/Constants/CreatureConst.cs +++ b/Source/Framework/Constants/CreatureConst.cs @@ -208,6 +208,7 @@ namespace Framework.Constants Trigger = 0x80, // Trigger Creature NoTaunt = 0x100, // Creature Is Immune To Taunt Auras And Effect Attack Me NoMoveFlagsUpdate = 0x200, // Creature won't update movement flags + GhostVisibility = 0x400, // creature will be only visible for dead players Worldevent = 0x4000, // Custom Flag For World Event Creatures (Left Room For Merging) Guard = 0x8000, // Creature Is Guard NoCrit = 0x20000, // Creature Can'T Do Critical Strikes @@ -219,7 +220,7 @@ namespace Framework.Constants IgnorePathfinding = 0x20000000, // creature ignore pathfinding ImmunityKnockback = 0x40000000, // creature is immune to knockback effects - DBAllowed = (InstanceBind | Civilian | NoParry | NoParryHasten | NoBlock | NoCrush | NoXpAtKill | + DBAllowed = (InstanceBind | Civilian | NoParry | NoParryHasten | NoBlock | NoCrush | NoXpAtKill | Trigger | NoTaunt | NoMoveFlagsUpdate | Worldevent | NoCrit | NoSkillgain | TauntDiminish | AllDiminish | Guard | IgnorePathfinding | NoPlayerDamageReq | ImmunityKnockback) } diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 202d07733..5218d9493 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -813,8 +813,7 @@ namespace Game.Entities LastUsedScriptID = GetScriptId(); - // TODO: Replace with spell, handle from DB - if (IsSpiritHealer() || IsSpiritGuide()) + if (IsSpiritHealer() || IsSpiritGuide() || GetCreatureTemplate().FlagsExtra.HasAnyFlag(CreatureFlagsExtra.GhostVisibility)) { m_serverSideVisibility.SetValue(ServerSideVisibilityType.Ghost, GhostVisibilityType.Ghost); m_serverSideVisibilityDetect.SetValue(ServerSideVisibilityType.Ghost, GhostVisibilityType.Ghost); diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 945476b83..ed9abf671 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -2076,7 +2076,7 @@ namespace Game.Entities bgMap.GetBG().ProcessEvent(this, eventId, invoker); } - public virtual uint GetScriptId() + public uint GetScriptId() { GameObjectData gameObjectData = GetGoData(); if (gameObjectData != null)