Example #1
0
        // 显示排序(空闲、已邀请、游戏中)
        public int CompareTo(object o)
        {
            InvitePlayGamePlayerInfo info = (InvitePlayGamePlayerInfo)o;

            if (this.nGameState == (int)ACTOR_GAME_STATE.GAME_STATE_IDLE && (info.nGameState != (int)ACTOR_GAME_STATE.GAME_STATE_IDLE))
            {
                return(-1);
            }
            else if (this.nGameState != (int)ACTOR_GAME_STATE.GAME_STATE_IDLE && (info.nGameState == (int)ACTOR_GAME_STATE.GAME_STATE_IDLE))
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
Example #2
0
 private bool isCanInvite(InvitePlayGamePlayerInfo item)
 {
     return(!item.isInvited && item.nGameState == (int)ACTOR_GAME_STATE.GAME_STATE_IDLE);
 }
Example #3
0
        /// <summary>
        /// 显示主面板
        /// </summary>
        public void updateContent()
        {
            // 设置好友列表内容
            Data.Clear();

            Dictionary <string, List <InvitePlayGamePlayerInfo> > groups = new Dictionary <string, List <InvitePlayGamePlayerInfo> >();

            // 在线好友
            int nTotal = 0, nCanInvite = 0;
            List <InvitePlayGamePlayerInfo> group1 = new List <InvitePlayGamePlayerInfo>();

            foreach (var item in LogicDataCenter.snsDataManager.getOnlineBuddy())
            {
                string actorName = getBuddyName(item);

                if (isMatchSearchName(actorName) == false)
                {
                    continue;
                }

                InvitePlayGamePlayerInfo info = new InvitePlayGamePlayerInfo();
                info.nGroupID    = (int)InvitePlayGameGroup.emBuddyGroup;
                info.nUserID     = item.Info.nUserID;
                info.nGameState  = item.Info.nStatus;
                info.ActorName   = actorName;
                info.nHeadIconID = item.Info.dwHeadID;
                info.nRankIconID = item.Info.nRankIconID;
                info.RankName    = item.Info.szRankName;
                info.nSex        = item.Info.nSex;
                info.isInvited   = isInvitedPlayer(info.nUserID);
                info.isCanInvite = isCanInvite(info);

                if (info.isCanInvite)
                {
                    nCanInvite++;
                }
                nTotal++;

                group1.Add(info);
            }
            string groupName1 = String.Format("{0} {1}/{2}", ULocalizationService.Instance.Get("UIView", "Common", "OnlineBuddy"), nCanInvite, nTotal);

            group1.Sort();
            groups.Add(groupName1, group1);

            // 战队
            nTotal = nCanInvite = 0;
            List <InvitePlayGamePlayerInfo> group2 = new List <InvitePlayGamePlayerInfo>();

            foreach (var item in LogicDataCenter.kinDataManager.KinMemberList)
            {
                if (item.dwPDBID == 0)
                {
                    continue;
                }

                // 排除自己
                if (item.dwPDBID == EntityUtil.getMainHeroPdbid())
                {
                    continue;
                }

                // 排除离线
                if (item.bIsOnline == 0)
                {
                    continue;
                }

                string actorName = item.szName;

                if (isMatchSearchName(actorName) == false)
                {
                    continue;
                }

                InvitePlayGamePlayerInfo info = new InvitePlayGamePlayerInfo();
                info.nUserID     = item.dwUDBID;
                info.nGroupID    = (int)InvitePlayGameGroup.emKinGroup;
                info.nGameState  = item.byGameState;
                info.ActorName   = actorName;
                info.nHeadIconID = item.nFaceID;
                info.nRankIconID = 0;
                info.RankName    = item.szGradeName;
                info.nSex        = item.nSex;
                info.isInvited   = isInvitedPlayer(info.nUserID);
                info.isCanInvite = isCanInvite(info);

                if (info.isCanInvite)
                {
                    nCanInvite++;
                }
                nTotal++;

                group2.Add(info);
            }
            string groupName2 = String.Format("{0} {1}/{2}", ULocalizationService.Instance.Get("UIView", "Common", "Team"), nCanInvite, nTotal);

            group2.Sort();
            groups.Add(groupName2, group2);

            // 附近的人
            nTotal = nCanInvite = 0;
            List <InvitePlayGamePlayerInfo> group3 = new List <InvitePlayGamePlayerInfo>();

            foreach (var item in LogicDataCenter.snsDataManager.getNearbyPlayer())
            {
                string actorName = item.Info.szName;

                if (isMatchSearchName(actorName) == false)
                {
                    continue;
                }

                InvitePlayGamePlayerInfo info = new InvitePlayGamePlayerInfo();
                info.nGroupID    = (int)InvitePlayGameGroup.emNearbyGroup;
                info.nUserID     = item.Info.nUserID;
                info.nGameState  = item.Info.nStatus;
                info.ActorName   = item.Info.szName;
                info.nHeadIconID = item.Info.dwHeadID;
                info.nRankIconID = item.Info.nRankIconID;
                info.RankName    = item.Info.szRankName;
                info.nSex        = item.Info.nSex;
                info.isInvited   = isInvitedPlayer(info.nUserID);
                info.isCanInvite = isCanInvite(info);

                if (info.isCanInvite)
                {
                    nCanInvite++;
                }
                nTotal++;

                group3.Add(info);
            }
            string groupName3 = String.Format("{0} {1}/{2}", ULocalizationService.Instance.Get("UIView", "Common", "NearbyPeople"), nCanInvite, nTotal);

            group3.Sort();
            groups.Add(groupName3, group3);

            foreach (var group in groups)
            {
                // 添加一个分组
                UInvitePlayGameTreeViewDataSource data = new UInvitePlayGameTreeViewDataSource();
                data.Depth      = 0;
                data.IsExpanded = true;
                data.Name       = group.Key;

                Data.Add(data);

                // 添加该分组的玩家
                foreach (var player in group.Value)
                {
                    data             = new UInvitePlayGameTreeViewDataSource();
                    data.Depth       = 1;
                    data.nGroupID    = player.nGroupID;
                    data.nUserID     = player.nUserID;
                    data.nGameState  = player.nGameState;
                    data.Name        = player.ActorName;
                    data.nHeadIconID = player.nHeadIconID;
                    data.nRank       = player.nRankIconID;
                    data.RankName    = player.RankName;
                    data.nSex        = player.nSex;
                    data.bIsInvited  = player.isInvited;
                    data.isCanInvite = player.isCanInvite;

                    Data.Add(data);
                }
            }

            setInvitePlayGameTreeViewDataSource();
        }