|
Архив - только для чтения |
| Модератор форума: andycrowz |
| Форум Корзина форума Корзина Общий чат в определённой зоне. |
| Общий чат в определённой зоне. |
Здраствуйте уважаемые пользователи Wowjp, я бы хотел уточнить как мне сделать общий чат Орда/Альянс в определённой зоне?+сами не обижу спасибо заранее.
P/s у меня стоит последняя версия TrinityCore, если не там создал тему извеняюсь.
Сообщение # 1 написано 28.04.2014 в 14:33
|
В ChatHandler:
Код if(sender->GetAreaId() == xxxx && !HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT)) lang = LANG_UNIVERSAL; Где xxxx - ид зоны Удобнее конечно с выводом в конфиг Код if(sender->GetAreaId() == sWorld->getIntConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT_AREA)) lang = LANG_UNIVERSAL; И дописать по строке в world.cpp и world.h и разумеется в сам конфиг.
Сообщение # 2 написано 29.04.2014 в 19:49
|
Вот на всякий случай готовое
Код diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index dad8a26..284db35 100755 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -134,7 +134,8 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data) else { // send in universal language if player in .gmon mode (ignore spell effects) - if (sender->isGameMaster()) + // and allow players interact in chat on specific area + if (sender->isGameMaster() || sender->GetAreaId() == sWorld->getIntConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT_AREA)) lang = LANG_UNIVERSAL; else { diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 53c71fe..f97ff93 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -581,6 +581,7 @@ void World::LoadConfigSettings(bool reload) m_bool_configs[CONFIG_CLEAN_CHARACTER_DB] = ConfigMgr::GetBoolDefault("CleanCharacterDB", false); m_int_configs[CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS] = ConfigMgr::GetIntDefault("PersistentCharacterCleanFlags", 0); m_int_configs[CONFIG_CHAT_CHANNEL_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Channel", 1); + m_int_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT_AREA] = ConfigMgr::GetIntDefault("AllowTwoSide.Interaction.Chat.Area", -1); m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Whisper", 1); m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Say", 1); m_int_configs[CONFIG_TRADE_LEVEL_REQ] = ConfigMgr::GetIntDefault("LevelReq.Trade", 1); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 2938eed..6af015f 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -272,6 +275,7 @@ enum WorldIntConfigs CONFIG_CHAT_CHANNEL_LEVEL_REQ, CONFIG_CHAT_WHISPER_LEVEL_REQ, CONFIG_CHAT_SAY_LEVEL_REQ, + CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT_AREA, CONFIG_TRADE_LEVEL_REQ, CONFIG_TICKET_LEVEL_REQ, CONFIG_AUCTION_LEVEL_REQ, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index b74f5bf..f52f83e 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1772,6 +1772,13 @@ AllowTwoSide.Accounts = 1 AllowTwoSide.Interaction.Chat = 0 # +# AllowTwoSide.Interaction.Chat.Area +# Description: Allow say chat between factions on specific area. +# Default: -1 - (Disabled) + +AllowTwoSide.Interaction.Chat.Area = -1 + +# # AllowTwoSide.Interaction.Channel # Description: Allow channel chat between factions. # Default: 0 - (Disabled) Источник trinity-core.ru |
| |||
| |||