少年修仙传客户端代码仓库
client_linchunjie
2018-09-20 05695e87f1c030cca68705df4f33cbab5676daaa
3696【前端】聊天禁言逻辑修改
7个文件已修改
62 ■■■■■ 已修改文件
Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/PlayerDatas.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCtrl.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatSendComponent.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/LanguageVerify.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs
@@ -54,6 +54,7 @@
    public int pkState;//是否在pk中 175 1--进入状态 2--退出状态
    public int bossState;//Boss状态  176 1--进入状态 2--退出状态
    public int OnlyFinalHurt;
    public int forbidenTalk;
    public int NpcHurtAddPer;//对怪物伤害加成 188
    public int FunalHurtPer;//对怪物伤害加成 189
}
Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -734,6 +734,9 @@
            case PlayerDataRefresh.FunalHurtPer:
                extersion.FunalHurtPer = (int)value;
                break;
            case PlayerDataRefresh.CDBPlayerRefresh_ForbidenTalk:
                extersion.forbidenTalk = (int)value;
                break;
        }
    }
System/Chat/ChatCenter.cs
@@ -304,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);
        }
@@ -829,8 +834,7 @@
        public void HandleChatBanned(ChatInfoType channel, string message, int toPlayer)
        {
            bool isBanned = IsChatBanned(channel, message);
            if (isBanned)
            if (IsChatBanned)
            {
                var playerId = PlayerDatas.Instance.baseData.PlayerID;
                var playerName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
@@ -888,43 +892,14 @@
            }
        }
        public bool IsChatBanned(ChatInfoType channel, string message)
        public bool IsChatBanned
        {
            var value = PlayerDatas.Instance.baseData.ExAttr11;
            var serverBanned = value == 1;
            if (!serverBanned)
            get
            {
                return false;
                var value = PlayerDatas.Instance.extersion.forbidenTalk;
                var serverBanned = value == 1;
                return serverBanned;
            }
            switch (channel)
            {
                case ChatInfoType.World:
                    if (ChatCtrl.Inst.IsInviteChat(message))
                    {
                        return false;
                    }
                    break;
                case ChatInfoType.Trumpet:
                    return false;
                case ChatInfoType.Fairy:
                    var dailyQuestModel = ModelCenter.Instance.GetModel<DailyQuestModel>();
                    DailyQuestOpenTime fairyFeastTime;
                    if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyFeast, out fairyFeastTime))
                    {
                        if (fairyFeastTime.InOpenTime())
                        {
                            return false;
                        }
                    }
                    break;
                case ChatInfoType.Friend:
                    if (ChatCtrl.KillRegex.IsMatch(message))
                    {
                        return false;
                    }
                    break;
            }
            return true;
        }
        #endregion
System/Chat/ChatCtrl.cs
@@ -210,7 +210,7 @@
    {
        try
        {
            if (chatCenter.IsChatBanned(chatType, content))
            if (chatCenter.IsChatBanned)
            {
                return;
            }
@@ -287,7 +287,7 @@
                 msg = CheckHasItem(result, _recentlyChat);
                 chatCenter.recentlyChat = null;
                 if (chatCenter.IsChatBanned(type, msg))
                 if (chatCenter.IsChatBanned)
                 {
                     var toPlayer = PteChatID;
                     if (info.HasValue && info.Value.infoint1 == 0)
System/Chat/ChatSendComponent.cs
@@ -84,6 +84,10 @@
            SinglePackModel singlePack = _packModel.GetSinglePackModel(PackType.rptItem);
            if (ChatCtrl.Inst.presentChatType == ChatInfoType.Trumpet)
            {
                if (chatCenter.IsChatBanned)
                {
                    return;
                }
                List<ItemModel> _list = null;
                var _count = singlePack.GetItemCountByID(chatCenter.bugleItem, out _list);
                if (_count < 1)
Utility/EnumHelper.cs
@@ -548,6 +548,7 @@
    BasicsScoreAHit = 181,//基础命中
    BasicsDodge = 182,//基础闪避
    OnlyFinalHurt = 183,// 额外伤害附加
    CDBPlayerRefresh_ForbidenTalk = 184,//禁言
    CDBPlayerRefresh_FuncDef = 185,  // 功能层防御  185
    CDBPlayerRefresh_TreasureScore = 186, //寻宝商店积分
    CDBPlayerRefresh_Danjing = 187,              // 丹精 187
Utility/LanguageVerify.cs
@@ -152,7 +152,7 @@
        int channel = 0;
        var chatCenter = ModelCenter.Instance.GetModel<ChatCenter>();
        if (!requireVerify || !GetChannel(channelType, out channel) || PlayerDatas.Instance.baseData.VIPLv >= 4
            || IsFairyFeast(channelType) || chatCenter.IsChatBanned(channelType, content))
            || IsFairyFeast(channelType) || chatCenter.IsChatBanned)
        {
            if (callback != null)
            {