diff options
Diffstat (limited to 'src/server/game/Entities/Player')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 8742deb2eb5..7052615e9c1 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5522,14 +5522,14 @@ void Player::RepopAtGraveyard() bool Player::CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, AreaTableEntry const* zone) { - if (channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP) - { - if (zone->flags & AREA_FLAG_ARENA_INSTANCE) - return false; + if (channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP && zone->flags & AREA_FLAG_ARENA_INSTANCE) + return false; - if ((channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY) && !(zone->flags & AREA_FLAG_CAPITAL)) - return false; - } + if ((channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY) && (!(zone->flags & AREA_FLAG_SLAVE_CAPITAL))) + return false; + + if ((channel->flags & CHANNEL_DBC_FLAG_GUILD_REQ) && GetGuildId()) + return false; return true; } @@ -5577,12 +5577,6 @@ void Player::UpdateLocalChannels(uint32 newZone) { if (ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(i)) { - if (!(channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP)) - continue; // Not zone dependent, don't handle it here - - if ((channel->flags & CHANNEL_DBC_FLAG_GUILD_REQ) && GetGuildId()) - continue; // Should not join to these channels automatically - Channel* usedChannel = NULL; for (JoinedChannelsList::iterator itr = m_channels.begin(); itr != m_channels.end(); ++itr) |
