Core/Creatures: Allow overriding non-gossip based trainer ids for creatures

Port From (https://github.com/TrinityCore/TrinityCore/commit/689d3a667af8c3e2662b77d14edf201771130bee)
This commit is contained in:
hondacrx
2023-03-14 01:55:52 -04:00
parent 8d014ebdae
commit 74bb5e4541
3 changed files with 16 additions and 1 deletions
@@ -27,6 +27,8 @@ namespace Game.Entities
bool _isMissingCanSwimFlagOutOfCombat; bool _isMissingCanSwimFlagOutOfCombat;
uint? _trainerId;
public ulong m_PlayerDamageReq; public ulong m_PlayerDamageReq;
public float m_SightDistance; public float m_SightDistance;
public float m_CombatDistance; public float m_CombatDistance;
+13
View File
@@ -1129,6 +1129,19 @@ namespace Game.Entities
SetHomePosition(GetPosition()); SetHomePosition(GetPosition());
} }
public uint GetTrainerId()
{
if (_trainerId.HasValue)
return _trainerId.Value;
return Global.ObjectMgr.GetCreatureDefaultTrainer(GetEntry());
}
public void SetTrainerId(uint? trainerId)
{
_trainerId = trainerId;
}
public override bool IsMovementPreventedByCasting() public override bool IsMovementPreventedByCasting()
{ {
// first check if currently a movement allowed channel is active and we're not casting // first check if currently a movement allowed channel is active and we're not casting
+1 -1
View File
@@ -52,7 +52,7 @@ namespace Game
return; return;
} }
uint trainerId = Global.ObjectMgr.GetCreatureDefaultTrainer(npc.GetEntry()); uint trainerId = npc.GetTrainerId();
if (trainerId != 0) if (trainerId != 0)
SendTrainerList(npc, trainerId); SendTrainerList(npc, trainerId);
else else