// 显示排序(空闲、已邀请、游戏中) 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); } }
private bool isCanInvite(InvitePlayGamePlayerInfo item) { return(!item.isInvited && item.nGameState == (int)ACTOR_GAME_STATE.GAME_STATE_IDLE); }
/// <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(); }