少年修仙传客户端代码仓库
8536 【前端】协助伤害增加菜单 组队
未处理对方无队伍申请入队显示问题
2个文件已添加
5个文件已修改
420 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/BossHurtRankBehaviour.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarDamageRankWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamModel.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/PlayerDetailWin.cs 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/PlayerDetails.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// B9 11 请求加入队伍 #tagCGRequestJoinTeam
public class CB911_tagCGRequestJoinTeam : GameNetPackBasic {
    public uint TeamID;    // 目标队伍ID
    public CB911_tagCGRequestJoinTeam () {
        combineCmd = (ushort)0x1801;
        _cmd = (ushort)0xB911;
    }
    public override void WriteToBytes () {
        WriteBytes (TeamID, NetDataType.DWORD);
    }
}
Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 83b61950137ffd847aaa445325a7abf7
timeCreated: 1602245091
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Dungeon/BossHurtRankBehaviour.cs
@@ -10,6 +10,7 @@
    {
        [SerializeField] List<Text> playerNameTexts;
        [SerializeField] List<Text> valueTexts;
        [SerializeField] List<Button> helpBtns;
        [SerializeField] Text mineValueText;
@@ -18,6 +19,7 @@
        private object RegexPlayerDatas;
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TeamModel m_TeamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        public void Init(int mapID)
        {
@@ -46,8 +48,54 @@
                        (model.BossHurtRank.bossHurtInfo[i].HurtType == 2 ? Language.Get("ChatType_Team") : "");
                        valueTexts[i].text = UIHelper.ReplaceLargeNum(model.BossHurtRank.bossHurtInfo[i].totalHurt);
                    }
                        //自己,自己队伍,协助对象(队伍) 不显示;
                        bool isShowHelp = true;
                        if (model.BossHurtRank.bossHurtInfo[i].HurtID == 0)
                        {
                            isShowHelp = false;
                        }
                        else if (CrossServerUtility.IsCrossServer())
                        {
                            isShowHelp = false;
                        }
                        else if (model.BossHurtRank.bossHurtInfo[i].HurtType == 1
                        && PlayerDatas.Instance.baseData.PlayerID == model.BossHurtRank.bossHurtInfo[i].HurtID)
                        {
                            isShowHelp = false;
                        }
                        else if (model.BossHurtRank.bossHurtInfo[i].HurtType == 2
                        && m_TeamModel.myTeam.teamId == model.BossHurtRank.bossHurtInfo[i].HurtID)
                        {
                            isShowHelp = false;
                        }
                        else if (PlayerDatas.Instance.baseData.ExAttr1 != 0 && model.BossHurtRank.bossHurtInfo[i].HurtType == 2)
                        {
                            var assistActor = GAMgr.Instance.GetBySID(PlayerDatas.Instance.baseData.ExAttr1) as GA_Player;
                            if (assistActor != null && assistActor.ActorInfo.teamID == model.BossHurtRank.bossHurtInfo[i].HurtID)
                            {
                                isShowHelp = false;
                            }
                            else if (assistActor == null)
                            {
                                //无法确认队伍关系的不显示
                                isShowHelp = false;
                            }
                        }
                        else if (PlayerDatas.Instance.baseData.ExAttr1 == model.BossHurtRank.bossHurtInfo[i].HurtID)
                        {
                            isShowHelp = false;
                        }
                        helpBtns[i].gameObject.SetActive(isShowHelp);
                        var id = (int)model.BossHurtRank.bossHurtInfo[i].HurtID;
                        var name = playerNameTexts[i].text;
                        var inTeam = model.BossHurtRank.bossHurtInfo[i].HurtType == 2 ? 1:0;
                        helpBtns[i].SetListener(()=>{
                            PlayerDetails.ShowBossHurtPlayer(id, name, inTeam);
                        });
                    }
                }
            }
            else if (model.selectHurtModel == 2)
@@ -58,7 +106,7 @@
                    {
                        playerNameTexts[i].text = model.BossHurtRank.assistBossHurtInfo[i].playerName;
                        valueTexts[i].text = UIHelper.ReplaceLargeNum(model.BossHurtRank.assistBossHurtInfo[i].totalHurt);
                        helpBtns[i].gameObject.SetActive(false);
                    }
                }
            }
@@ -66,6 +114,7 @@
            {
                playerNameTexts[i].text = string.Empty;
                valueTexts[i].text = string.Empty;
                helpBtns[i].gameObject.SetActive(false);
                i++;
            }
System/FindPrecious/DemonJarDamageRankWin.cs
@@ -48,6 +48,9 @@
        private void ShowButton()
        {
            ShowAssistTips.gameObject.SetActive(!CrossServerUtility.IsCrossServer());
            SendAssist.gameObject.SetActive(!CrossServerUtility.IsCrossServer());
            if (PlayerDatas.Instance.baseData.ExAttr1 > 0)
            {
                SendAssist.SetColorful(null, false);
System/Team/TeamModel.cs
@@ -246,6 +246,13 @@
            GameNetSystem.Instance.SendInfo(apply);
        }
        public void RequestApplyForJoinByTeam(int _teamID)
        {
            var apply = new CB911_tagCGRequestJoinTeam();
            apply.TeamID = (uint)_teamID;
            GameNetSystem.Instance.SendInfo(apply);
        }
        public void RequestCreateTeam(int _mapId, int _lineId, int _levelMin = 1, int _levelMax = 1)
        {
            var mapId = _mapId == NONE_MISSION ? 0 : _mapId == CURRENTMAP_MISSION ? PlayerDatas.Instance.baseData.MapID : _mapId;
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)
                                    {
                                        //此处代表队伍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;
            }
        }
System/Tip/PlayerDetails.cs
@@ -22,9 +22,9 @@
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
        }
        public static void ShowCrossServerChatPlayer(ChatUeseData data)
        {
            openType = OpenType.CrossPlayer;
        public static void ShowCrossServerChatPlayer(ChatUeseData data)
        {
            openType = OpenType.CrossPlayer;
            PlayerID = (int)data.player;
            LV = data.level;
            Job = data.job;
@@ -32,8 +32,8 @@
            PlayerName = data.name;
            OnlineType = 0;
            IsInTeam = 0;
            ServerGroupId = data.serverGroupId;
            ServerGroupId = data.serverGroupId;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
            if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>())
@@ -42,9 +42,9 @@
            }
        }
        public static void ShowCrossServerPlayer(int playerId, int level, string name, int serverGroupId)
        {
            openType = OpenType.CrossPlayer;
        public static void ShowCrossServerPlayer(int playerId, int level, string name, int serverGroupId)
        {
            openType = OpenType.CrossPlayer;
            PlayerID = playerId;
            LV = level;
            Job = 1;
@@ -52,33 +52,53 @@
            PlayerName = name;
            OnlineType = 0;
            IsInTeam = 0;
            ServerGroupId = serverGroupId;
            ServerGroupId = serverGroupId;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
            if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>())
            {
                WindowCenter.Instance.Open<PlayerDetailWin>();
            }
            }
        }
        public static void ShowAreaPlayer(int _playerId)
        {
        public static void ShowBossHurtPlayer(int playerId, string name, int inTeam)
        {
            openType = OpenType.Assist;
            PlayerID = playerId;
            LV = 0;
            Job = 1;
            RealmLV = 0;
            PlayerName = name;
            OnlineType = 0;
            IsInTeam = inTeam;
            ServerGroupId = 0;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
            if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>())
            {
                WindowCenter.Instance.Open<PlayerDetailWin>();
            }
        }
        public static void ShowAreaPlayer(int _playerId)
        {
            openType = OpenType.Default;
            onClickFuncEvent = null;
            DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent -= OnPlayerShortInfoEvent;
            DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent += OnPlayerShortInfoEvent;
            CB306_tagCGViewPlayerShortInfo _pak = new CB306_tagCGViewPlayerShortInfo();
            _pak.PlayerID = (uint)_playerId;
            if (CrossServerUtility.IsCrossServer())
            {
                GameNetSystem.Instance.SendToCrossServer(_pak);
            if (CrossServerUtility.IsCrossServer())
            {
                GameNetSystem.Instance.SendToCrossServer(_pak);
            }
            else
            {
            else
            {
                GameNetSystem.Instance.SendInfo(_pak);
            }
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
        }
        private static void OnPlayerShortInfoEvent(HB309_tagGCAnswerPlayerShortInfo _package)
@@ -105,27 +125,28 @@
            {
                onClickFuncEvent(_type);
            }
            if(updateDetailTypeEvent != null)
            {
                updateDetailTypeEvent(_type);
            if(updateDetailTypeEvent != null)
            {
                updateDetailTypeEvent(_type);
            }
        }
        public enum DetailType
        {
            PrivateChat = 0,//私聊
            ViewEquip = 1,//查看装备
            AddFriend = 2,//加为好友
            DeleteFriend = 3,//删除好友
            AddBlack = 4,//加入黑名单
            AddTeam = 5,//加入队伍
            FairyLv = 6,//更改仙盟职权
            KickFairy = 7,//提出仙盟
            ApplyTeam = 8, //申请入队
            InviteTeam = 9, //邀请入队
            RemoveBlack = 10, //移出黑名单
            LookFight = 11,//查看战力
            InviteFairy = 12,//邀请入盟
            ViewEquip,//查看装备
            AddFriend,//加为好友
            DeleteFriend,//删除好友
            AddBlack,//加入黑名单
            AddTeam,//加入队伍
            FairyLv,//更改仙盟职权
            KickFairy,//提出仙盟
            Kill, //击杀
            ApplyTeam, //申请入队
            InviteTeam, //邀请入队
            RemoveBlack, //移出黑名单
            LookFight,//查看战力
            InviteFairy,//邀请入盟
        }
        public enum OpenType
@@ -134,6 +155,7 @@
            Fairy,
            Friend,
            CrossPlayer,
            Assist,
        }
        public static int PlayerID = 0;