Core/PacketIO: Implemented CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE and ActivePlayerData::TransportServerTime updatefield
Port From (https://github.com/TrinityCore/TrinityCore/commit/aa592e431b945800928f2e43b3812cfa240fada1)
This commit is contained in:
@@ -1232,7 +1232,7 @@ namespace Game.Entities
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CanNeverSee(WorldObject obj)
|
||||
public virtual bool CanNeverSee(WorldObject obj)
|
||||
{
|
||||
return GetMap() != obj.GetMap() || !IsInPhase(obj);
|
||||
}
|
||||
|
||||
@@ -780,6 +780,9 @@ namespace Game.Entities
|
||||
GetName(), viewpoint.GetEntry(), viewpoint.GetTypeId());
|
||||
SetViewpoint(viewpoint, false);
|
||||
}
|
||||
|
||||
RemovePlayerLocalFlag(PlayerLocalFlags.OverrideTransportServerTime);
|
||||
SetTransportServerTime(0);
|
||||
}
|
||||
|
||||
void ScheduleDelayedOperation(PlayerDelayedOperations operation)
|
||||
@@ -4099,6 +4102,13 @@ namespace Game.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool CanNeverSee(WorldObject obj)
|
||||
{
|
||||
// the intent is to delay sending visible objects until client is ready for them
|
||||
// some gameobjects dont function correctly if they are sent before TransportServerTime is correctly set (after CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE)
|
||||
return !HasPlayerLocalFlag(PlayerLocalFlags.OverrideTransportServerTime);
|
||||
}
|
||||
|
||||
public override bool CanAlwaysSee(WorldObject obj)
|
||||
{
|
||||
// Always can see self
|
||||
@@ -7739,6 +7749,8 @@ namespace Game.Entities
|
||||
public void AddAuraVision(PlayerFieldByte2Flags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.AuraVision), (byte)flags); }
|
||||
public void RemoveAuraVision(PlayerFieldByte2Flags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.AuraVision), (byte)flags); }
|
||||
|
||||
public void SetTransportServerTime(int transportServerTime) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.TransportServerTime), transportServerTime); }
|
||||
|
||||
public bool CanTameExoticPets() { return IsGameMaster() || HasAuraType(AuraType.AllowTamePetType); }
|
||||
|
||||
void SendAttackSwingCantAttack() { SendPacket(new AttackSwingError(AttackSwingErr.CantAttack)); }
|
||||
|
||||
Reference in New Issue
Block a user