Core/Players: Implemented selecting Exile's Reach during character creation

Port From (https://github.com/TrinityCore/TrinityCore/commit/d54edfeb8bd9e525bac62677b8f9dffbaa5124c3)
This commit is contained in:
hondacrx
2021-10-03 12:02:20 -04:00
parent f6cf613d4a
commit 8ccf252ac3
6 changed files with 108 additions and 61 deletions
+11 -2
View File
@@ -613,8 +613,17 @@ namespace Game.Entities
if (!ok && HasAtLoginFlag(AtLoginFlags.FirstLogin))
{
homebind = new WorldLocation(info.MapId, info.PositionX, info.PositionY, info.PositionZ, info.Orientation);
homebindAreaId = info.ZoneId;
var createPosition = m_createMode == PlayerCreateMode.NPE && info.createPositionNPE.HasValue ? info.createPositionNPE.Value : info.createPosition;
homebind = new WorldLocation(createPosition.Loc.GetMapId(), createPosition.Loc);
if (createPosition.TransportGuid.HasValue)
{
Transport transport = Global.ObjAccessor.FindTransport(ObjectGuid.Create(HighGuid.Transport, createPosition.TransportGuid.Value));
if (transport != null)
transport.CalculatePassengerPosition(ref homebind.posX, ref homebind.posY, ref homebind.posZ, ref homebind.Orientation);
}
homebindAreaId = Global.MapMgr.GetAreaId(PhasingHandler.EmptyPhaseShift, homebind);
saveHomebindToDb();
ok = true;