From ffbc149f1b753e9b9ff9d46d092f651bab2fc7fa Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 10 十月 2020 15:02:20 +0800
Subject: [PATCH] 8536 【前端】协助伤害增加菜单 组队 未处理对方无队伍申请入队显示问题

---
 System/Tip/PlayerDetailWin.cs |  237 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 153 insertions(+), 84 deletions(-)

diff --git a/System/Tip/PlayerDetailWin.cs b/System/Tip/PlayerDetailWin.cs
index 98c6c32..7814252 100644
--- a/System/Tip/PlayerDetailWin.cs
+++ b/System/Tip/PlayerDetailWin.cs
@@ -46,14 +46,14 @@
 
         private float ratio = 1.0f;
 
-        public bool IsCrossServerPlayer {
-            get {
-                if (PlayerDetails.ServerGroupId == 0)
-                {
-                    return false;
-                }
-                return PlayerDetails.ServerGroupId != PlayerDatas.Instance.baseData.ServerGroupId;
-            }
+        public bool IsCrossServerPlayer {
+            get {
+                if (PlayerDetails.ServerGroupId == 0)
+                {
+                    return false;
+                }
+                return PlayerDetails.ServerGroupId != PlayerDatas.Instance.baseData.ServerGroupId;
+            }
         }
 
         #region Built-in
@@ -96,10 +96,18 @@
         public void ShowPlayerDetail()
         {
             m_ContainerDetail.localPosition = PlayerDetails.targetPos;
-            m_PlayerTxt.text = UIHelper.ServerStringTrim(PlayerDetails.PlayerName);
-            m_LevelSign.gameObject.SetActive(false);
+            m_PlayerTxt.text = UIHelper.ServerStringTrim(PlayerDetails.PlayerName);
+            m_LevelSign.gameObject.SetActive(false);
+            m_PlayerLevelTxt.gameObject.SetActive(PlayerDetails.LV!=0);
             m_PlayerLevelTxt.text = Language.Get("PlayerDetail_Level", PlayerDetails.LV);
-            CheckDetailType();
+            if (PlayerDetails.openType == PlayerDetails.OpenType.Assist)
+            {
+                CheckAssisType();
+            }
+            else
+            {
+                CheckDetailType();
+            }
             OnPlayerDetailRefresh();
 
             var _rt = m_ContainerDetail as RectTransform;
@@ -126,73 +134,87 @@
             m_ContainerDetail.localPosition = pos;
         }
 
+        private void CheckAssisType()
+        {
+            funcTypes.Clear();
+            funcTypes.Add(PlayerDetails.DetailType.Kill);
+            if (PlayerDetails.IsInTeam == 1)
+            {
+                funcTypes.Add(PlayerDetails.DetailType.ApplyTeam);
+            }
+            else
+            {
+                funcTypes.Add(PlayerDetails.DetailType.ApplyTeam);
+                funcTypes.Add(PlayerDetails.DetailType.InviteTeam);
+            }
+        }
         public void CheckDetailType()
         {
             funcTypes.Clear();
             funcTypes.Add(PlayerDetails.DetailType.ViewEquip);
-            funcTypes.Add(PlayerDetails.DetailType.LookFight);
-
-
-            if (!IsCrossServerPlayer && !CrossServerUtility.IsCrossServer())
-            {
-                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);
-                funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack);
-                if (!_isBlack)
-                {
-                    funcTypes.Add(PlayerDetails.DetailType.PrivateChat);
-                }
-            }
-
-            switch (PlayerDetails.openType)
-            {
-                case PlayerDetails.OpenType.Default:
-                case PlayerDetails.OpenType.Friend:
-                    if (IsCrossServerPlayer || CrossServerUtility.IsCrossServer())
-                    {
-                        return;
-                    }
-                    break;
-                case PlayerDetails.OpenType.Fairy:
-                    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)
-                        {
-                            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)
-                    {
-                        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);
-                        }
-                    }
-                    break;
-                case PlayerDetails.OpenType.Friend:
-                    funcTypes.Remove(PlayerDetails.DetailType.PrivateChat);
-                    break;
+            funcTypes.Add(PlayerDetails.DetailType.LookFight);
+
+
+            if (!IsCrossServerPlayer && !CrossServerUtility.IsCrossServer())
+            {
+                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);
+                funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack);
+                if (!_isBlack)
+                {
+                    funcTypes.Add(PlayerDetails.DetailType.PrivateChat);
+                }
+            }
+
+            switch (PlayerDetails.openType)
+            {
+                case PlayerDetails.OpenType.Default:
+                case PlayerDetails.OpenType.Friend:
+                    if (IsCrossServerPlayer || CrossServerUtility.IsCrossServer())
+                    {
+                        return;
+                    }
+                    break;
+                case PlayerDetails.OpenType.Fairy:
+                    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)
+                        {
+                            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)
+                    {
+                        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);
+                        }
+                    }
+                    break;
+                case PlayerDetails.OpenType.Friend:
+                    funcTypes.Remove(PlayerDetails.DetailType.PrivateChat);
+                    break;
             }
         }
 
@@ -228,12 +250,12 @@
                     }
                     break;
                 case PlayerDetails.DetailType.ViewEquip:
-                    if (!IsCrossServerPlayer)
-                    {
+                    if (!IsCrossServerPlayer)
+                    {
                         m_RoleParticularModel.ViewRoleEquip(PlayerDetails.PlayerID);
                     }
-                    else
-                    {
+                    else
+                    {
                         m_RoleParticularModel.ViewCrossServerPlayerEquip(PlayerDetails.PlayerID);
                     }
                     break;
@@ -270,7 +292,16 @@
                                 if (_ok)
                                 {
                                     m_TeamModel.RequestExitTeam();
-                                    m_TeamModel.RequestApplyForJoin(PlayerDetails.PlayerID);
+                                    if (PlayerDetails.openType == PlayerDetails.OpenType.Assist && 
+                                    PlayerDetails.IsInTeam == 1)
+                                    {
+                                        //姝ゅ浠h〃闃熶紞ID
+                                        m_TeamModel.RequestApplyForJoinByTeam(PlayerDetails.PlayerID);
+                                    }
+                                    else
+                                    {
+                                        m_TeamModel.RequestApplyForJoin(PlayerDetails.PlayerID);
+                                    }
                                 }
                             }
                             );
@@ -287,18 +318,56 @@
                     m_FriendModel.OnClickRemoveBlack((uint)PlayerDetails.PlayerID);
                     break;
                 case PlayerDetails.DetailType.LookFight:
-                    if (!IsCrossServerPlayer)
-                    {
+                    if (!IsCrossServerPlayer)
+                    {
                         m_RoleParticularModel.ViewRoleFightPower(PlayerDetails.PlayerID);
                     }
-                    else
-                    {
-                        m_RoleParticularModel.ViewCrossPlayerFightPower(PlayerDetails.PlayerID);
+                    else
+                    {
+                        m_RoleParticularModel.ViewCrossPlayerFightPower(PlayerDetails.PlayerID);
                     }
                     break;
                 case PlayerDetails.DetailType.InviteFairy:
                     m_FairyModel.SendInviteFairy(PlayerDetails.PlayerID, PlayerDetails.PlayerName);
                     break;
+                case PlayerDetails.DetailType.Kill:
+                    uint tagetID = 0;
+                    //闃熶紞涓殑鏀诲嚮鐩爣
+                    if (PlayerDetails.IsInTeam == 1)
+                    {
+                        List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.Player);
+                        if (_list == null || _list.Count == 0)
+                        {
+                            break;
+                        }
+                        foreach(var actor in _list)
+                        {
+                            var tagetPlayer = actor as GA_Player;
+                            if (tagetPlayer.ActorInfo.teamID == PlayerDetails.PlayerID)
+                            {
+                                tagetID = tagetPlayer.ActorInfo.sid;
+                                break;
+                            }
+                        }
+                        if (tagetID == 0)
+                        {
+                            break;
+                        }
+                    }
+                    else
+                    {
+                        tagetID = (uint)PlayerDetails.PlayerID;
+                    }
+                    
+                    var _hero = PlayerDatas.Instance.hero;
+                    var taget = GAMgr.Instance.GetBySID(tagetID);
+                    if (taget != null)
+                    {
+                        _hero.SelectTarget = _hero.LockTarget = taget;
+                        GA_Hero.CallLockTargetChanged(_hero.LockTarget.ServerInstID);
+
+                    }
+                    break;
             }
         }
 

--
Gitblit v1.8.0