diff --git a/sqlmgcore/V6.3_mangos_mangos_string(.zy).sql b/sqlmgcore/V6.3_mangos_mangos_string(.zy).sql
new file mode 100644
index 0000000..ce4e978
--- /dev/null
+++ b/sqlmgcore/V6.3_mangos_mangos_string(.zy).sql
@@ -0,0 +1 @@
+REPLACE INTO `mangos_string` VALUES ('15029', '|Cff00ff00[阵营聊天]|Cfff0ff00[|r', null, null, null, null, null, null, null, null);
diff --git a/sqlmgcore/V6.3_mangosd.conf b/sqlmgcore/V6.3_mangosd.conf
new file mode 100644
index 0000000..5b620da
--- /dev/null
+++ b/sqlmgcore/V6.3_mangosd.conf
@@ -0,0 +1,41 @@
+Index: mangosd.conf.dist.in
+===================================================================
+--- mangosd.conf.dist.in (revision 389)
++++ mangosd.conf.dist.in (working copy)
+-WorldOfChatPrice = 100000
+ Player.Logon.Announce = true
+ PlayerLoginMessage = 宸茬粡鐧婚檰鑺掓灉涓栫晫,澶у娆㈣繋
+ World.Receive.Time = [涓栫晫閫氱煡]:棰嗗彇宸ヨ祫鐨勬椂闂村埌浜?+@@ -1708,4 +1706,17 @@
+ # Mangos搴撶殑spell_cost琛ㄤ腑鍘诲鍔犱慨鏀广€傝缁嗚璁哄潧鐨勬暀绋嬪尯www.mgcore.com
+ #####################################################################################################
+
+-Spell.Cost.On.Off = 0
+\ No newline at end of file
++Spell.Cost.On.Off = 0
++
++WorldOfChatPrice = 10000
++World.Team.Chat.Price = 10000
+\ No newline at end of file
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 374598a..fc0a97f 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -653,6 +653,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "sj", SEC_PLAYER, false, &ChatHandler::HandleWorldCast, "", NULL }, //世界聊天命令
{ "kan", SEC_PLAYER, false, &ChatHandler::HandleWorldKan, "", NULL }, //装备查看命令
{ "addtemp", SEC_GAMEMASTER, false, &ChatHandler::HandleTempAddSpwCommand, "", NULL },//灾变系统
+ { "zy", SEC_PLAYER, false, &ChatHandler::HandleWorldZyCast, "", NULL }, //世界阵营聊天命令
{ "damage", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDamageCommand, "", NULL },
{ "combatstop", SEC_GAMEMASTER, false, &ChatHandler::HandleCombatStopCommand, "", NULL },
{ "flusharenapoints",SEC_ADMINISTRATOR, false, &ChatHandler::HandleFlushArenaPointsCommand, "", NULL },
diff --git a/src/game/Chat.h b/src/game/Chat.h
index 1f3d47e..82614bf 100644
--- a/src/game/Chat.h
+++ b/src/game/Chat.h
@@ -262,6 +262,7 @@ class ChatHandler
bool HandleWorldCast(const char* args); //世界聊天命令
bool HandleWorldKan(const char* args); //查看装备命令
bool HandleTempAddSpwCommand(const char* args);//灾变系统
+ bool HandleWorldZyCast(const char* args); //世界阵营聊天命令
bool HandleModifyRepCommand(const char* args);
bool HandleModifyArenaCommand(const char* args);
bool HandleModifyPhaseCommand(const char* args);
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index bbb95cb..8f9bb16 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -5955,6 +5955,28 @@ bool ChatHandler::HandleWorldKan(const char* args)//装
return true;
}//装备查看命令(试衣间)
+bool ChatHandler::HandleWorldZyCast(const char* args) //世界阵营聊天命令
+{
+ Player* player = m_session->GetPlayer();
+ uint32 price=player->GetMyintConfig("World.Team.Chat.Price");
+ if(!*args||m_session->GetPlayer()->GetMoney()<price)
+ return false;
+ std::string str =GetMangosString(15029);//"|cfff0ff00[阵营频道][|r"
+ str +=m_session->GetPlayerName();
+ str +="|r]:";
+ str += args;
+ if (player->GetTeam()==ALLIANCE)
+ {
+ sWorld.SendWorldTextCnTeam(str.c_str(), NULL, ALLIANCE);
+ }
+ else if (player->GetTeam()==HORDE)
+ {
+ sWorld.SendWorldTextCnTeam(str.c_str(), NULL, HORDE);
+ }
+ m_session->GetPlayer()->ModifyMoney(-int32(price));
+ return true;
+}//世界阵营聊天命令
+
bool ChatHandler::HandleTempAddSpwCommand(const char* args)//灾变系统
{
Player *chr = m_session->GetPlayer();
diff --git a/src/game/World.cpp b/src/game/World.cpp
index 7fcdfb3..0033f07 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -2240,6 +2240,23 @@ void World::SendWorldTextCn(const char* text, WorldSession *self)
free(buf);
}
+void World::SendWorldTextCnTeam(const char* text, WorldSession *self, uint32 team)
+{
+ WorldPacket data;
+
+ // need copy to prevent corruption by strtok call in LineFromMessage original string
+ char* buf = strdup(text);
+ char* pos = buf;
+
+ while(char* line = ChatHandler::LineFromMessage(pos))
+ {
+ ChatHandler::FillMessageData(&data, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, line, NULL);
+ SendGlobalMessage(&data, self, team);
+ }
+
+ free(buf);
+}
+
void World::SendRNDBroadcast() //自动公告系统函数,升级后版本
{
std::string msg;
diff --git a/src/game/World.h b/src/game/World.h
index 7717feb..61982a7 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -448,6 +448,7 @@ class World
void LoadConfigSettings(bool reload = false);
void SendWorldTextCn(const char *text, WorldSession *self = 0);
+ void SendWorldTextCnTeam(const char *text, WorldSession *self = 0, uint32 team = 0);
void SendWorldText(int32 string_id, ...);
void SendGlobalText(const char* text, WorldSession *self);
void SendGlobalMessage(WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
index 2c9d38e..00d06fc 100644
--- a/src/mangosd/mangosd.conf.dist.in
+++ b/src/mangosd/mangosd.conf.dist.in
@@ -1555,7 +1555,6 @@ Item.Armor.Penetration = 0
-Spell.Cost.On.Off = 0
\ No newline at end of file
+Spell.Cost.On.Off = 0
+
+WorldOfChatPrice = 10000
+World.Team.Chat.Price = 10000
\ No newline at end of file