From a974a2621a6dcb90b8fe52b23d075814873c0960 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 23 十月 2018 20:53:49 +0800
Subject: [PATCH] Merge branch 'master' into leonard

---
 System/Chat/ChatCtrl.cs |   55 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/System/Chat/ChatCtrl.cs b/System/Chat/ChatCtrl.cs
index a592d6f..e964c81 100644
--- a/System/Chat/ChatCtrl.cs
+++ b/System/Chat/ChatCtrl.cs
@@ -312,13 +312,22 @@
                  switch (type)
                  {
                      case ChatInfoType.World:
+                     case ChatInfoType.Fairy:
+                         if (IsAssitChat(msg) != 0)
+                         {
+                             teamModel.RequestAssistAutoMatch();
+                         }
+                         break;
+                 }
+
+                 switch (type)
+                 {
+                     case ChatInfoType.World:
                          {
                              C0201_tagCTalkGong chatPack = new C0201_tagCTalkGong();
                              chatPack.Len = (ushort)GetUTF8InfoLen(msg);
                              chatPack.Content = msg;
                              GameNetSystem.Instance.SendInfo(chatPack);
-
-                             CheckSendAssitChat(msg);
                          }
                          break;
                      case ChatInfoType.Area:
@@ -358,8 +367,6 @@
                              chatPack.Len = (ushort)GetUTF8InfoLen(msg);
                              chatPack.Content = msg;
                              GameNetSystem.Instance.SendInfo(chatPack);
-
-                             CheckSendAssitChat(msg);
                          }
                          break;
                      case ChatInfoType.Trumpet:
@@ -403,9 +410,10 @@
     public void RevChatInfo(H0201_tagTalkGong vNetData)
     {
         ChatData chatData = null;
+        var content = vNetData.Content;
         if (IsInviteChat(vNetData.Content))
         {
-            string content = InviteRegex.Replace(vNetData.Content, "");
+            content = InviteRegex.Replace(vNetData.Content, "");
             if (teamModel.myTeam.GetIndexOfMember((int)vNetData.PlayerID) != -1)
             {
                 content = StringUtility.Contact("<color=#f8983b>", vNetData.Name, "</color>", "锛�", content);
@@ -418,7 +426,11 @@
             KeepChatInfo(chatData);
             return;
         }
-        chatData = new ChatWorldData(vNetData.Content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras);
+        if (IsAssitChat(content, true) == 2 && vNetData.PlayerID != PlayerDatas.Instance.baseData.PlayerID)
+        {
+            content = StringUtility.Contact(content, Language.Get("InviteTeam", vNetData.PlayerID));
+        }
+        chatData = new ChatWorldData(content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras);
         KeepChatInfo(chatData);
     }
     /// <summary>
@@ -446,7 +458,12 @@
     /// <param name="vNetData"></param>
     public void RevChatInfo(H0203_tagTalkBang vNetData)
     {
-        ChatData chatData = new ChatFamilyData(vNetData.Content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras);
+        var content = vNetData.Content;
+        if (IsAssitChat(content, true) == 1 && vNetData.PlayerID != PlayerDatas.Instance.baseData.PlayerID)
+        {
+            content = StringUtility.Contact(content, Language.Get("InviteTeam", vNetData.PlayerID));
+        }
+        ChatData chatData = new ChatFamilyData(content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras);
         KeepChatInfo(chatData);
         ReceiveNewChat(ChatInfoType.Fairy);
     }
@@ -955,36 +972,26 @@
     }
 
     public bool needCheckAssitChat { get; set; }
-    void CheckSendAssitChat(string message)
+    int IsAssitChat(string message, bool force = false)
     {
-        if (needCheckAssitChat)
+        int assitChat = 0;
+        if (needCheckAssitChat || force)
         {
-            bool requestTeam = false;
             for (int i = 0; i < 2; i++)
             {
                 if (message.Equals(Language.Get(realmRandomChats[i])))
                 {
-                    requestTeam = true;
+                    assitChat = 1;
                     break;
                 }
-
-                var content = message;
-                if (i == 1)
+                if (message.Equals(Language.Get(dungeonRandomChats[i])))
                 {
-                    content = Regex.Replace(content, "[0-9]+", "{0}");
-                }
-
-                if (content.Equals(Language.Get(dungeonRandomChats[i])))
-                {
-                    requestTeam = true;
+                    assitChat = 2;
                     break;
                 }
-            }
-            if (requestTeam)
-            {
-                teamModel.RequestAssistAutoMatch();
             }
         }
+        return assitChat;
     }
     #endregion
 

--
Gitblit v1.8.0