From 2af5893d52709d076db45aef545ba55cb5b8f2ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viste=28=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=BB=29?= Date: Wed, 20 Mar 2019 02:04:59 +0300 Subject: [PATCH] feat(Core/Chat): Add config option to allow use LFG anywhere not only in city (#1586) --- src/server/game/Entities/Player/Player.cpp | 6 +++++- src/server/game/World/World.cpp | 3 +++ src/server/game/World/World.h | 1 + src/server/worldserver/worldserver.conf.dist | 8 ++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e30b6f40f..af11ae5ca 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5615,7 +5615,11 @@ void Player::RepopAtGraveyard() } bool Player::CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, AreaTableEntry const* zone) -{ +{ + // Player can join LFG anywhere + if (channel->flags & CHANNEL_DBC_FLAG_LFG && sWorld->getBoolConfig(CONFIG_LFG_LOCATION_ALL)) + return true; + if (channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP && zone->flags & AREA_FLAG_ARENA_INSTANCE) return false; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 15226b51f..696be0fba 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1315,6 +1315,9 @@ void World::LoadConfigSettings(bool reload) m_bool_configs[CONFIG_CALCULATE_CREATURE_ZONE_AREA_DATA] = sConfigMgr->GetBoolDefault("Calculate.Creature.Zone.Area.Data", false); m_bool_configs[CONFIG_CALCULATE_GAMEOBJECT_ZONE_AREA_DATA] = sConfigMgr->GetBoolDefault("Calculate.Gameoject.Zone.Area.Data", false); + // Player can join LFG anywhere + m_bool_configs[CONFIG_LFG_LOCATION_ALL] = sConfigMgr->GetBoolDefault("LFG.Location.All", false); + // call ScriptMgr if we're reloading the configuration sScriptMgr->OnAfterConfigLoad(reload); } diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 7e4843d98..4e158768a 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -167,6 +167,7 @@ enum WorldBoolConfigs CONFIG_CALCULATE_GAMEOBJECT_ZONE_AREA_DATA, CONFIG_CHECK_GOBJECT_LOS, CONFIG_CLOSE_IDLE_CONNECTIONS, + CONFIG_LFG_LOCATION_ALL, // Player can join LFG anywhere BOOL_CONFIG_VALUE_COUNT }; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 8a2dec9b2..097f75663 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3214,5 +3214,13 @@ Calculate.Creature.Zone.Area.Data = 0 Calculate.Gameoject.Zone.Area.Data = 0 +# LFG SETTINGS +# +# Includes satellite to search for work elsewhere LFG +# Default: 0 - Disable +# 1 - Enable + +LFG.Location.All = 0 + # ###################################################################################################