From 15d56be6cec50d80189c2280221a65f16c345c18 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 6 May 2020 14:55:22 -0400 Subject: [PATCH] Added new creature extra flag which makes npc visible only to dead units Port From (https://github.com/TrinityCore/TrinityCore/commit/70d5775d3f679e77c2b00418375f180f6209484d) --- Source/Framework/Constants/CreatureConst.cs | 3 ++- Source/Game/Entities/Creature/Creature.cs | 3 +-- Source/Game/Entities/GameObject/GameObject.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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)