From 56091a5a2b3df0681996731982f812003daf85e9 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期四, 20 九月 2018 15:52:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Chat/ChatCenter.cs |  100 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 94 insertions(+), 6 deletions(-)

diff --git a/System/Chat/ChatCenter.cs b/System/Chat/ChatCenter.cs
index 05adb6c..16f48d2 100644
--- a/System/Chat/ChatCenter.cs
+++ b/System/Chat/ChatCenter.cs
@@ -46,10 +46,12 @@
             var _funcCfg = Config.Instance.Get<FuncConfigConfig>("BugleItem");
             bugleItem = int.Parse(_funcCfg.Numerical1);
             chatChannels = new List<ChatInfoType>();
-            for (int i = (int)ChatInfoType.System; i <= (int)ChatInfoType.Friend; i++)
-            {
-                chatChannels.Add((ChatInfoType)i);
-            }
+            chatChannels.Add(ChatInfoType.System);
+            chatChannels.Add(ChatInfoType.World);
+            chatChannels.Add(ChatInfoType.Area);
+            chatChannels.Add(ChatInfoType.Invite);
+            chatChannels.Add(ChatInfoType.Trumpet);
+            chatChannels.Add(ChatInfoType.Friend);
         }
 
         public event Action<string, bool, bool> UpdateChatValueEvent;
@@ -302,6 +304,11 @@
         const string downloadUrl = "http://{0}.voice.2460web.com:53001/voice/download";
         private void SendSpeech(byte[] encode, long _tick)
         {
+            if (IsChatBanned)
+            {
+                SaveSpeech((int)PlayerDatas.Instance.PlayerId, _tick, encode);
+                return;
+            }
             VoiceHttpRequest.Instance.Enqueue(encode, _tick, (int)PlayerDatas.Instance.PlayerId);
         }
 
@@ -755,10 +762,11 @@
                 return;
             }
             openChatAfterCollect = false;
-            if (!WindowCenter.Instance.CheckOpen<ChatWin>())
+            if (!WindowCenter.Instance.CheckOpen<SocialWin>())
             {
                 ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
-                WindowCenter.Instance.Open<ChatWin>();
+                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
+                WindowCenter.Instance.Open<SocialWin>(false, 2);
             }
         }
         #endregion
@@ -815,6 +823,86 @@
         }
         #endregion
 
+        #region 鑱婂ぉ榛戝悕鍗�
+
+        public string SetChatExtra()
+        {
+            var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
+            var job = PlayerDatas.Instance.baseData.Job;
+            return StringUtility.Contact(vipLevel.ToString().PadLeft(2, '0'), 0, job);
+        }
+
+        public void HandleChatBanned(ChatInfoType channel, string message, int toPlayer)
+        {
+            if (IsChatBanned)
+            {
+                var playerId = PlayerDatas.Instance.baseData.PlayerID;
+                var playerName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
+                switch (channel)
+                {
+                    case ChatInfoType.World:
+                        ChatCtrl.Inst.RevChatInfo(new H0201_tagTalkGong()
+                        {
+                            Content = message,
+                            Extras = SetChatExtra(),
+                            PlayerID = playerId,
+                            Name = playerName,
+                        });
+                        break;
+                    case ChatInfoType.Area:
+                        ChatCtrl.Inst.RevChatInfo(new H0207_tagTalkArea()
+                        {
+                            Content = message,
+                            Extras = SetChatExtra(),
+                            PlayerID = playerId,
+                            SrcName = playerName,
+                        });
+                        break;
+                    case ChatInfoType.Team:
+                        ChatCtrl.Inst.RevChatInfo(new H0205_tagTalkDui()
+                        {
+                            PlayerID = playerId,
+                            Name = playerName,
+                            Content = message,
+                            Extras = SetChatExtra(),
+                        });
+                        break;
+                    case ChatInfoType.Fairy:
+                        ChatCtrl.Inst.RevChatInfo(new H0203_tagTalkBang()
+                        {
+                            PlayerID = playerId,
+                            Content = message,
+                            Extras = SetChatExtra(),
+                            Name = playerName,
+                        });
+                        break;
+                    case ChatInfoType.Friend:
+                        ChatCtrl.Inst.RevChatInfo(new H0206_tagTalkMi()
+                        {
+                            PlayerID = playerId,
+                            SrcName = playerName,
+                            Content = message,
+                            Extras = SetChatExtra(),
+                            ToPlayerID = (uint)toPlayer,
+                            ToName = string.Empty,
+                            TalkType = 1,
+                        });
+                        break;
+                }
+            }
+        }
+
+        public bool IsChatBanned
+        {
+            get
+            {
+                var value = PlayerDatas.Instance.extersion.forbidenTalk;
+                var serverBanned = value == 1;
+                return serverBanned;
+            }
+        }
+        #endregion
+
     }
 }
 

--
Gitblit v1.8.0