Core/Entities: Added possibility to inherit StringIds from other entities

Port From (https://github.com/TrinityCore/TrinityCore/commit/88bbd27f8d007dca17bb0d244fcf7e753506734e)
This commit is contained in:
Hondacrx
2024-08-05 15:03:26 -04:00
parent f410597e4c
commit 54e6b02ffc
3 changed files with 22 additions and 0 deletions
@@ -2915,6 +2915,15 @@ namespace Game.Entities
return Global.ObjectMgr.GetCreatureTemplate(GetEntry()) != null ? Global.ObjectMgr.GetCreatureTemplate(GetEntry()).ScriptID : 0;
}
public void InheritStringIds(Creature parent)
{
// copy references to stringIds from template and spawn
m_stringIds = parent.m_stringIds;
// then copy script stringId, not just its reference
SetScriptStringId(parent.GetStringId(StringIdType.Script));
}
public bool HasStringId(string id)
{
return m_stringIds.Contains(id);
@@ -2665,6 +2665,15 @@ namespace Game.Entities
return GetGoInfo().ScriptId;
}
public void InheritStringIds(GameObject parent)
{
// copy references to stringIds from template and spawn
m_stringIds = parent.m_stringIds;
// then copy script stringId, not just its reference
SetScriptStringId(parent.GetStringId(StringIdType.Script));
}
public bool HasStringId(string id)
{
return m_stringIds.Contains(id);
@@ -1597,6 +1597,10 @@ namespace Game.Entities
if (summon != null)
{
summon.SetTempSummonType(despawnType);
Creature thisCreature = ToCreature();
if (thisCreature != null)
summon.InheritStringIds(thisCreature);
return summon;
}
}