• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Общий чат в определённой зоне.
yasin9494
Скаут
Здраствуйте уважаемые пользователи Wowjp, я бы хотел уточнить как мне сделать общий чат Орда/Альянс в определённой зоне?+сами не обижу спасибо заранее.
P/s у меня стоит последняя версия TrinityCore, если не там создал тему извеняюсь.
Сообщение # 1 написано 28.04.2014 в 14:33
infinium
Маршал
В 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
Horon
Рыцарь
Вот на всякий случай готовое
Код
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
Сообщение # 3 отредактировано Horon - Вторник, 29.04.2014, 23:05
yasin9494
Скаут
Спасибо большое, проблему решил, обоим +
Сообщение # 4 написано 05.05.2014 в 17:35
  • Страница 1 из 1
  • 1
Поиск: