少年修仙传客户端代码仓库
client_linchunjie
2019-01-15 4dabf6ced48098c45944f27aae8d9a6e3a017b78
5725【1.5】跨服聊天
3个文件已修改
104 ■■■■■ 已修改文件
System/Chat/ChatSendComponent.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/PlayerDetailWin.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatSendComponent.cs
@@ -79,6 +79,14 @@
                FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Chat);
                return;
            }
            if (ChatCtrl.Inst.presentChatType == ChatInfoType.CrossServer)
            {
                if (!FuncOpen.Instance.IsFuncOpen(162))
                {
                    SysNotifyMgr.Instance.ShowTip("CrossServerHint");
                    return;
                }
            }
            ChatExtraData? info = null;
            var _packModel = ModelCenter.Instance.GetModel<PlayerPackModel>();
            SinglePackModel singlePack = _packModel.GetSinglePackModel(PackType.rptItem);
System/Chat/ChatWin.cs
@@ -196,6 +196,14 @@
        private void OnChannelSelect(CellView _cell)
        {
            if ((ChatInfoType)_cell.index == ChatInfoType.CrossServer)
            {
                if (!FuncOpen.Instance.IsFuncOpen(162))
                {
                    SysNotifyMgr.Instance.ShowTip("CrossServerHint");
                    return;
                }
            }
            OnChannelSelect((ChatInfoType)_cell.index);
        }
System/Tip/PlayerDetailWin.cs
@@ -144,11 +144,13 @@
        {
            funcTypes.Clear();
            funcTypes.Add(PlayerDetails.DetailType.ViewEquip);
            funcTypes.Add(PlayerDetails.DetailType.LookFight);
            if (!IsCrossServerPlayer)
            funcTypes.Add(PlayerDetails.DetailType.LookFight);
            if (!IsCrossServerPlayer && !CrossServerUtility.IsCrossServer())
            {
                funcTypes.Add(PlayerDetails.IsInTeam == 1 ?
                    PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam);
                funcTypes.Add(PlayerDetails.IsInTeam == 1 ?
                   PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam);
                bool _isFriend = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 2) != null;
                bool _isBlack = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 4) != null;
                funcTypes.Add(_isFriend ? PlayerDetails.DetailType.DeleteFriend : PlayerDetails.DetailType.AddFriend);
@@ -157,40 +159,58 @@
                {
                    funcTypes.Add(PlayerDetails.DetailType.PrivateChat);
                }
                switch (PlayerDetails.openType)
                {
                    case PlayerDetails.OpenType.Default:
                        if (PlayerDatas.Instance.fairyData.HasFairy)
            }
            switch (PlayerDetails.openType)
            {
                case PlayerDetails.OpenType.Default:
                case PlayerDetails.OpenType.Friend:
                    if (IsCrossServerPlayer || CrossServerUtility.IsCrossServer())
                    {
                        return;
                    }
                    break;
                case PlayerDetails.OpenType.Fairy:
                    if (IsCrossServerPlayer)
                    {
                        return;
                    }
                    break;
            }
            switch (PlayerDetails.openType)
            {
                case PlayerDetails.OpenType.Default:
                    if (PlayerDatas.Instance.fairyData.HasFairy)
                    {
                        if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) &&
                            PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null)
                        {
                            if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) &&
                                PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null)
                            {
                                funcTypes.Add(PlayerDetails.DetailType.InviteFairy);
                            }
                            funcTypes.Add(PlayerDetails.DetailType.InviteFairy);
                        }
                        break;
                    case PlayerDetails.OpenType.Fairy:
                        PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine;
                        PlayerFairyData.FairyMember _fairyMember =
                            PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember);
                        if (_fairyMember != null)
                    }
                    break;
                case PlayerDetails.OpenType.Fairy:
                    PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine;
                    PlayerFairyData.FairyMember _fairyMember =
                        PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember);
                    if (_fairyMember != null)
                    {
                        if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle)
                            && _mine.FamilyLV > _fairyMember.FamilyLV)
                        {
                            if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle)
                                && _mine.FamilyLV > _fairyMember.FamilyLV)
                            {
                                funcTypes.Add(PlayerDetails.DetailType.FairyLv);
                            }
                            if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick)
                                && _mine.FamilyLV > _fairyMember.FamilyLV)
                            {
                                funcTypes.Add(PlayerDetails.DetailType.KickFairy);
                            }
                            funcTypes.Add(PlayerDetails.DetailType.FairyLv);
                        }
                        break;
                    case PlayerDetails.OpenType.Friend:
                        funcTypes.Remove(PlayerDetails.DetailType.PrivateChat);
                        break;
                }
                        if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick)
                            && _mine.FamilyLV > _fairyMember.FamilyLV)
                        {
                            funcTypes.Add(PlayerDetails.DetailType.KickFairy);
                        }
                    }
                    break;
                case PlayerDetails.OpenType.Friend:
                    funcTypes.Remove(PlayerDetails.DetailType.PrivateChat);
                    break;
            }
        }