少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-23 a974a2621a6dcb90b8fe52b23d075814873c0960
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