Ejemplo n.º 1
0
    /// <summary>
    /// 打开Tip
    /// </summary>
    private void OpenTip(TeamMemberVO data)
    {
        if (m_TipPrefab)
        {
            if (!m_TipInstance1)
            {
                m_TipInstance1 = m_TipPrefab.Spawn(TipBoxLeft);
                m_TipInstance1.GetComponent <RectTransform>().anchoredPosition = Vector2.zero;
            }

            LayoutFriendTip(m_TipInstance1, data);
        }
        else if (!m_TipPrefabLoading)
        {
            m_TipPrefabLoading = true;

            LoadPrefabFromPool(TIP_PREFAB, (prefab) =>
            {
                if (Opened)
                {
                    m_TipPrefab = prefab;
                    OpenTipView();
                }
            });
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 获取队伍列表
    /// </summary>
    /// <param name="buf">协议内容</param>
    private void OnGetTeamList(KProtoBuf buf)
    {
        S2C_TEAM_MEMBER_LIST msg       = buf as S2C_TEAM_MEMBER_LIST;
        TeamProxy            teamProxy = GetTeamProxy();

        for (int i = 0; i < msg.members.Count; i++)
        {
            TeamMemberVO data = CreateMember(msg.members[i]);
            teamProxy.AddMember(data);
        }
        GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATE);
    }
Ejemplo n.º 3
0
    protected override void OnCellRenderer(int groupIndex, int cellIndex, object cellData, RectTransform cellView, bool selected)
    {
        UIViewListLayout style = State.GetPageLayoutStyle(State.GetPageIndex());

        Animator      animator = cellView.GetComponent <Animator>();
        RectTransform content  = FindComponent <RectTransform>(cellView, "Content");

        if (animator)
        {
            animator.SetBool("IsOn", selected);
        }

        int           page            = groupIndex;
        int           index           = cellIndex;
        ulong         infoVOId        = 0;
        SocialElement m_SocialElement = cellView.GetComponent <SocialElement>();

        if (m_SocialElement == null)
        {
            m_SocialElement = cellView.gameObject.AddComponent <SocialElement>();
            m_SocialElement.Initialize();
        }

        switch (m_SocialType)
        {
        case SocialType.Team:
            TeamMemberVO teamMemberVO = cellData as TeamMemberVO;
            m_SocialElement.SetTeamData(teamMemberVO, m_SocialType, new Vector2Int(groupIndex, cellIndex));
            infoVOId = teamMemberVO.UID;
            break;

        case SocialType.Friend:
            FriendInfoVO friendInfoVO = cellData as FriendInfoVO;
            m_SocialElement.SetFriendData(friendInfoVO, m_SocialType);
            infoVOId = friendInfoVO.UID;
            break;

        case SocialType.Ship:
            FriendInfoVO Ship = cellData as FriendInfoVO;
            m_SocialElement.SetFriendData(Ship, m_SocialType);
            infoVOId = Ship.UID;
            break;

        case SocialType.Other:
            FriendInfoVO Other = cellData as FriendInfoVO;
            m_SocialElement.SetFriendData(Other, m_SocialType);
            infoVOId = Other.UID;
            break;

        default:
            break;
        }
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 填充队伍数据
 /// </summary>
 public void SetTeamData(TeamMemberVO infoVO, UISocialList.SocialType socialType, Vector2Int vector2Int)
 {
     UIUtil.SetIconImage(m_TeamPosImage, (uint)m_TeamPosIcons[vector2Int.y]);
     if (infoVO.UID > 0)
     {
         m_NullElelment.gameObject.SetActive(false);
         m_Elelment.gameObject.SetActive(true);
         m_SocialType = socialType;
         SetContent();
         m_LevelText.text  = string.Format(TableUtil.GetLanguageString("character_text_1019"), infoVO.Level.ToString());
         m_DanText.text    = string.Format(TableUtil.GetLanguageString("social_text_1004"), infoVO.DanLevel.ToString());
         m_PlayerName.text = infoVO.Name;
         if (infoVO.IsOnline)
         {
             m_TeamOnLineImage.gameObject.SetActive(true);
         }
         if (infoVO.TID > 0)
         {
             if (m_CfgEternityProxy.GetPlayerByItemTId(infoVO.TID) != null)
             {
                 UIUtil.SetIconImage(m_TeamHeardImage, (uint)m_CfgEternityProxy.GetPlayerByItemTId(infoVO.TID).Value.HeadPortrait);
             }
         }
         if (m_FriendProxy.GetFriend(infoVO.UID) != null)            //好友
         {
             m_TeamFriendImage.gameObject.SetActive(true);
         }
         else
         {
             m_TeamFriendImage.gameObject.SetActive(false);
         }
         if (m_TeamProxy.GetMember(infoVO.UID) == null)
         {
             m_TeamHeaderImage.gameObject.SetActive(false);
         }
         else
         {
             if (m_TeamProxy.GetMember(infoVO.UID).IsLeader)                //队长
             {
                 m_TeamHeaderImage.gameObject.SetActive(true);
             }
             else
             {
                 m_TeamHeaderImage.gameObject.SetActive(false);
             }
         }
     }
     else
     {
         m_NullElelment.gameObject.SetActive(true);
         m_Elelment.gameObject.SetActive(false);
     }
 }
Ejemplo n.º 5
0
    /// <summary>
    /// 更新队长ID
    /// </summary>
    public void UpdateLeaderID()
    {
        ulong old = m_CurrentCaptainID;

        for (int t = 0; t < m_Members.Count; t++)
        {
            TeamMemberVO member = m_Members[t];
            if (member.IsLeader)
            {
                m_CurrentCaptainID = member.UID;
                break;
            }
        }
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 删除成员
    /// </summary>
    /// <param name="playerID">队员ID</param>
    public void DelMember(ulong playerID)
    {
        TeamMemberVO member = null;

        for (int i = m_Members.Count - 1; i >= 0; i--)
        {
            if (m_Members[i].UID == playerID)
            {
                member = m_Members[i];
                m_Members.RemoveAt(i);
            }
        }

        GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATE);
    }
Ejemplo n.º 7
0
 /// <summary>
 /// 加载队伍数据
 /// </summary>
 /// <param name="tip">tip物体</param>
 /// <param name="data">数据</param>
 private void LayoutFriendTip(GameObject tip, TeamMemberVO data)
 {
     if (data.UID > 0)
     {
         SetEmptyRootActive(false);
         Initialize();
         m_PlayerName.text = data.Name;
         m_Level.text      = string.Format(TableUtil.GetLanguageString("character_text_1019"), data.Level.ToString());
         m_Rank.text       = string.Format(TableUtil.GetLanguageString("social_text_1004"), data.DanLevel.ToString());
     }
     else
     {
         SetEmptyRootActive(true);
     }
 }
Ejemplo n.º 8
0
    /// <summary>
    /// 更新成员列表
    /// </summary>
    /// <param name="members">新的队员列表</param>
    public void UpdateMember(List <TeamMemberVO> members)
    {
        m_Members.Clear();
        m_CurrentCaptainID = 0;
        if (members != null)
        {
            for (int i = 0; i < members.Count; i++)
            {
                TeamMemberVO member = members[i];

                m_Members.Add(member);
            }
        }
        UpdateLeaderID();
        GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATE);
    }
Ejemplo n.º 9
0
    /// <summary>
    /// 改变成员
    /// </summary>
    /// <param name="id">队员ID</param>
    /// <param name="level">等级</param>
    /// <param name="isOnline">是否在线</param>
    /// <param name="isReady">是否准备好了</param>
    /// <param name="isLeader">是否为队长</param>
    public void SetMember(ulong id, int level, bool isOnline, bool isReady, bool isLeader, int areaId, ulong mapId, int danLevel)
    {
        TeamMemberVO member = GetMember(id);

        if (member != null)
        {
            member.Level    = level;
            member.DanLevel = danLevel;
            member.IsOnline = isOnline;
            member.IsLeader = isLeader;
            member.AreaId   = areaId;
            member.MapID    = mapId;
            GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATE, member);
            GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATEAREA, member);
        }
    }
Ejemplo n.º 10
0
    /// <summary>
    /// 界面添加队伍数据
    /// </summary>
    /// <param name="title">标题</param>
    /// <param name="list">数据</param>
    /// <param name=""></param>
    public void AddTeamDataToView(List <TeamMemberVO> list, string title = null)
    {
        List <object> listRef = new List <object>();

        if (list.Count == 0)//没有队伍
        {
            //Debug.Log("没有队伍啦");
            TeamMemberVO vo = new TeamMemberVO();
            vo.UID      = m_ServerListProxy.GetCurrentCharacterVO().UId;
            vo.Level    = m_ServerListProxy.GetCurrentCharacterVO().Level;
            vo.DanLevel = m_ServerListProxy.GetCurrentCharacterVO().DanLevel;
            vo.Name     = m_ServerListProxy.GetCurrentCharacterVO().Name;
            vo.TID      = m_ServerListProxy.GetCurrentCharacterVO().Tid;
            listRef.Add(vo);
            for (int i = 0; i < 4; i++)
            {
                TeamMemberVO teamMemberVO = new TeamMemberVO();
                teamMemberVO.UID = 0;
                listRef.Add(teamMemberVO);
            }
        }
        else
        {
            for (int i = 0; i < list.Count; i++)
            {
                listRef.Add((object)list[i]);
            }
            if (listRef.Count < 5)
            {
                while (listRef.Count < 5)
                {
                    TeamMemberVO teamMemberVO = new TeamMemberVO();
                    teamMemberVO.UID = 0;
                    listRef.Add(teamMemberVO);
                }
            }
        }
        if (title == null)
        {
            AddDatas(null, listRef);
        }
        else
        {
            AddDatas(title, listRef);
        }
    }
Ejemplo n.º 11
0
    /// <summary>
    /// 创建队员数据
    /// </summary>
    /// <param name="msg">协议数据</param>
    /// <returns>队员数据</returns>
    private TeamMemberVO CreateMember(TeamMember msg)
    {
        TeamMemberVO member = new TeamMemberVO();

        member.UID  = msg.id;
        member.TID  = msg.tempid;
        member.Name = msg.name;
        Debug.Log(msg.position + "新成员名字===" + msg.name + "状态==" + msg.isOnline + "TID==" + msg.tempid + "死亡==" + msg.alive);
        Debug.Log(msg.areaid + "区域===地图" + msg.mapid + "===等级" + msg.level + "段位===" + msg.dan_level);
        member.Level    = msg.level;
        member.DanLevel = msg.dan_level;
        member.IsOnline = msg.isOnline == 1;
        member.IsLeader = msg.position == 1;
        member.JoinTime = msg.jointime;
        member.IsDead   = msg.alive == 0;
        member.AreaId   = msg.areaid;
        member.MapID    = msg.mapid;
        return(member);
    }
Ejemplo n.º 12
0
    /// <summary>
    /// 邀请玩家组队
    /// </summary>
    /// <param name="playerID">玩家ID</param>
    public void Invite(ulong playerID)
    {
        Debug.Log("邀请======>" + playerID);
        CfgLanguageProxy languageProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgLanguageProxy) as CfgLanguageProxy;
        TeamMemberVO     member        = GetTeamProxy().GetMember(playerID);

        if (member != null)
        {
            //已在队伍里
            Debug.Log("已在队伍里");
            return;
        }

        C2S_TEAM_INVITE msg = new C2S_TEAM_INVITE();

        msg.protocolID = (ushort)KC2S_Protocol.c2s_team_invite;
        msg.playerID   = playerID;
        NetworkManager.Instance.SendToGameServer(msg);
    }
Ejemplo n.º 13
0
    /// <summary>
    /// 添加成员
    /// </summary>
    /// <param name="member">新的队伍成员</param>
    public void AddMember(TeamMemberVO member)
    {
        for (int i = m_Members.Count - 1; i >= 0; i--)
        {
            if (m_Members[i].UID == member.UID)
            {
                member.Name       = m_Members[i].Name;
                member.HP         = m_Members[i].HP;
                member.MaxHP      = m_Members[i].MaxHP;
                member.Defense    = m_Members[i].Defense;
                member.MaxDefense = m_Members[i].MaxDefense;
                //member.IsDead = m_Members[i].IsDead ;

                m_Members.RemoveAt(i);
            }
        }

        m_Members.Add(member);
    }
Ejemplo n.º 14
0
    /// <summary>
    /// 切换队长
    /// </summary>
    public void SwitchingCaptain(ulong CurrentID)
    {
        TeamMemberVO OldCaptain = null;

        if (m_CurrentCaptainID > 0)
        {
            if (GetMember(m_CurrentCaptainID) != null)
            {
                OldCaptain          = GetMember(m_CurrentCaptainID);
                OldCaptain.IsLeader = false;
            }
        }

        if (CurrentID > 0)
        {
            for (int i = 0; i < m_Members.Count; i++)
            {
                m_Members[i].IsLeader = false;
            }

            TeamMemberVO CurrCaptain = GetMember(CurrentID);
            if (CurrCaptain != null)
            {
                CurrCaptain.IsLeader = true;
                m_CurrentCaptainID   = CurrentID;
            }
            else
            {
                if (OldCaptain != null)
                {
                    OldCaptain.IsLeader = true;
                }
            }
        }

        GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_MEMBER_UPDATE);
    }