diff --git a/Source/Game/Garrisons/GarrisonMap.cs b/Source/Game/Garrisons/GarrisonMap.cs index 537dd0bc5..720ef6199 100644 --- a/Source/Game/Garrisons/GarrisonMap.cs +++ b/Source/Game/Garrisons/GarrisonMap.cs @@ -54,8 +54,8 @@ namespace Game.Garrisons public override void InitVisibilityDistance() { //init visibility distance for instances - m_VisibleDistance = Global.WorldMgr.GetMaxVisibleDistanceInBGArenas(); - m_VisibilityNotifyPeriod = Global.WorldMgr.GetVisibilityNotifyPeriodInBGArenas(); + m_VisibleDistance = Global.WorldMgr.GetMaxVisibleDistanceInInstances(); + m_VisibilityNotifyPeriod = Global.WorldMgr.GetVisibilityNotifyPeriodInInstances(); } public override bool AddPlayerToMap(Player player, bool initPlayer = true) diff --git a/Source/Game/Maps/Map.cs b/Source/Game/Maps/Map.cs index ec53a5c32..ff322f7f6 100644 --- a/Source/Game/Maps/Map.cs +++ b/Source/Game/Maps/Map.cs @@ -5668,8 +5668,8 @@ namespace Game.Maps public override void InitVisibilityDistance() { - m_VisibleDistance = Global.WorldMgr.GetMaxVisibleDistanceInBGArenas(); - m_VisibilityNotifyPeriod = Global.WorldMgr.GetVisibilityNotifyPeriodInBGArenas(); + m_VisibleDistance = IsBattleArena() ? Global.WorldMgr.GetMaxVisibleDistanceInArenas() : Global.WorldMgr.GetMaxVisibleDistanceInBG(); + m_VisibilityNotifyPeriod = IsBattleArena() ? Global.WorldMgr.GetVisibilityNotifyPeriodInArenas() : Global.WorldMgr.GetVisibilityNotifyPeriodInBG(); } public override EnterState CannotEnter(Player player) diff --git a/Source/Game/Server/WorldManager.cs b/Source/Game/Server/WorldManager.cs index 8b42cae02..187fc04a5 100644 --- a/Source/Game/Server/WorldManager.cs +++ b/Source/Game/Server/WorldManager.cs @@ -1194,22 +1194,36 @@ namespace Game m_MaxVisibleDistanceInInstances = SharedConst.MaxVisibilityDistance; } - //visibility in BG/Arenas - m_MaxVisibleDistanceInBGArenas = ConfigMgr.GetDefaultValue("Visibility.Distance.BGArenas", SharedConst.DefaultVisibilityBGAreans); - if (m_MaxVisibleDistanceInBGArenas < 45 * rateCreatureAggro) + //visibility in BG + m_MaxVisibleDistanceInBG = ConfigMgr.GetDefaultValue("Visibility.Distance.BG", SharedConst.DefaultVisibilityBGAreans); + if (m_MaxVisibleDistanceInBG < 45 * rateCreatureAggro) { - Log.outError(LogFilter.ServerLoading, "Visibility.Distance.BGArenas can't be less max aggro radius {0}", 45 * rateCreatureAggro); - m_MaxVisibleDistanceInBGArenas = 45 * rateCreatureAggro; + Log.outError(LogFilter.ServerLoading, $"Visibility.Distance.BG can't be less max aggro radius {45 * rateCreatureAggro}"); + m_MaxVisibleDistanceInBG = 45 * rateCreatureAggro; } - else if (m_MaxVisibleDistanceInBGArenas > SharedConst.MaxVisibilityDistance) + else if (m_MaxVisibleDistanceInBG > SharedConst.MaxVisibilityDistance) { - Log.outError(LogFilter.ServerLoading, "Visibility.Distance.BGArenas can't be greater {0}", SharedConst.MaxVisibilityDistance); - m_MaxVisibleDistanceInBGArenas = SharedConst.MaxVisibilityDistance; + Log.outError(LogFilter.ServerLoading, $"Visibility.Distance.BG can't be greater {SharedConst.MaxVisibilityDistance}"); + m_MaxVisibleDistanceInBG = SharedConst.MaxVisibilityDistance; + } + + // Visibility in Arenas + m_MaxVisibleDistanceInArenas = ConfigMgr.GetDefaultValue("Visibility.Distance.Arenas", SharedConst.DefaultVisibilityBGAreans); + if (m_MaxVisibleDistanceInArenas < 45 * rateCreatureAggro) + { + Log.outError(LogFilter.ServerLoading, $"Visibility.Distance.Arenas can't be less max aggro radius {45 * rateCreatureAggro}"); + m_MaxVisibleDistanceInArenas = 45 * rateCreatureAggro; + } + else if (m_MaxVisibleDistanceInArenas > SharedConst.MaxVisibilityDistance) + { + Log.outError(LogFilter.ServerLoading, $"Visibility.Distance.Arenas can't be greater {SharedConst.MaxVisibilityDistance}"); + m_MaxVisibleDistanceInArenas = SharedConst.MaxVisibilityDistance; } m_visibility_notify_periodOnContinents = ConfigMgr.GetDefaultValue("Visibility.Notify.Period.OnContinents", SharedConst.DefaultVisibilityNotifyPeriod); m_visibility_notify_periodInInstances = ConfigMgr.GetDefaultValue("Visibility.Notify.Period.InInstances", SharedConst.DefaultVisibilityNotifyPeriod); - m_visibility_notify_periodInBGArenas = ConfigMgr.GetDefaultValue("Visibility.Notify.Period.InBGArenas", SharedConst.DefaultVisibilityNotifyPeriod); + m_visibility_notify_periodInBG = ConfigMgr.GetDefaultValue("Visibility.Notify.Period.InBG", SharedConst.DefaultVisibilityNotifyPeriod); + m_visibility_notify_periodInArenas = ConfigMgr.GetDefaultValue("Visibility.Notify.Period.InArenas", SharedConst.DefaultVisibilityNotifyPeriod); _guidWarningMsg = WorldConfig.GetDefaultValue("Respawn.WarningMessage", "There will be an unscheduled server restart at 03:00. The server will be available again shortly after."); _alertRestartReason = WorldConfig.GetDefaultValue("Respawn.AlertRestartReason", "Urgent Maintenance"); @@ -2527,11 +2541,13 @@ namespace Game public float GetMaxVisibleDistanceOnContinents() { return m_MaxVisibleDistanceOnContinents; } public float GetMaxVisibleDistanceInInstances() { return m_MaxVisibleDistanceInInstances; } - public float GetMaxVisibleDistanceInBGArenas() { return m_MaxVisibleDistanceInBGArenas; } + public float GetMaxVisibleDistanceInBG() { return m_MaxVisibleDistanceInBG; } + public float GetMaxVisibleDistanceInArenas() { return m_MaxVisibleDistanceInArenas; } public int GetVisibilityNotifyPeriodOnContinents() { return m_visibility_notify_periodOnContinents; } public int GetVisibilityNotifyPeriodInInstances() { return m_visibility_notify_periodInInstances; } - public int GetVisibilityNotifyPeriodInBGArenas() { return m_visibility_notify_periodInBGArenas; } + public int GetVisibilityNotifyPeriodInBG() { return m_visibility_notify_periodInBG; } + public int GetVisibilityNotifyPeriodInArenas() { return m_visibility_notify_periodInArenas; } public Locale GetAvailableDbcLocale(Locale locale) { @@ -2565,11 +2581,13 @@ namespace Game float m_MaxVisibleDistanceOnContinents = SharedConst.DefaultVisibilityDistance; float m_MaxVisibleDistanceInInstances = SharedConst.DefaultVisibilityInstance; - float m_MaxVisibleDistanceInBGArenas = SharedConst.DefaultVisibilityBGAreans; + float m_MaxVisibleDistanceInBG = SharedConst.DefaultVisibilityBGAreans; + float m_MaxVisibleDistanceInArenas = SharedConst.DefaultVisibilityBGAreans; int m_visibility_notify_periodOnContinents = SharedConst.DefaultVisibilityNotifyPeriod; int m_visibility_notify_periodInInstances = SharedConst.DefaultVisibilityNotifyPeriod; - int m_visibility_notify_periodInBGArenas = SharedConst.DefaultVisibilityNotifyPeriod; + int m_visibility_notify_periodInBG = SharedConst.DefaultVisibilityNotifyPeriod; + int m_visibility_notify_periodInArenas = SharedConst.DefaultVisibilityNotifyPeriod; bool m_isClosed; diff --git a/Source/WorldServer/WorldServer.conf.dist b/Source/WorldServer/WorldServer.conf.dist index 7fd2bde14..86cbab015 100644 --- a/Source/WorldServer/WorldServer.conf.dist +++ b/Source/WorldServer/WorldServer.conf.dist @@ -2127,7 +2127,8 @@ Visibility.GroupMode = 1 # # Visibility.Distance.Continents # Visibility.Distance.Instances -# Visibility.Distance.BGArenas +# Visibility.Distance.BG +# Visibility.Distance.Arenas # Description: Visibility distance to see other players or gameobjects. # Visibility on continents on retail ~100 yards. In BG/Arenas ~533. # For instances default ~170. @@ -2135,25 +2136,30 @@ Visibility.GroupMode = 1 # Min limit is max aggro radius (45) * Rate.Creature.Aggro # Default: 100 - (Visibility.Distance.Continents) # 170 - (Visibility.Distance.Instances) -# 533 - (Visibility.Distance.BGArenas) +# 533 - (Visibility.Distance.BG) +# 533 - (Visibility.Distance.Arenas) Visibility.Distance.Continents = 100 -Visibility.Distance.Instances = 170 -Visibility.Distance.BGArenas = 533 +Visibility.Distance.Instances = 170 +Visibility.Distance.BG = 533 +Visibility.Distance.Arenas = 533 # # Visibility.Notify.Period.OnContinents # Visibility.Notify.Period.InInstances -# Visibility.Notify.Period.InBGArenas +# Visibility.Notify.Period.InBG +# Visibility.Notify.Period.InArenas # Description: Time (in milliseconds) for visibility update period. Lower values may have # performance impact. # Default: 1000 - (Visibility.Notify.Period.OnContinents) # 1000 - (Visibility.Notify.Period.InInstances) -# 1000 - (Visibility.Notify.Period.InBGArenas) +# 1000 - (Visibility.Notify.Period.InBG) +# 1000 - (Visibility.Notify.Period.InArenas) Visibility.Notify.Period.OnContinents = 1000 Visibility.Notify.Period.InInstances = 1000 -Visibility.Notify.Period.InBGArenas = 1000 +Visibility.Notify.Period.InBG = 1000 +Visibility.Notify.Period.InArenas = 1000 # ###################################################################################################