public void Init(MasterMember member) { if (member.IsValid() == false) { return; } //显示待审批成员 if (member.IsReserveMember() == false) { return; } m_MasterMember = member; if (m_NameLabel != null) { m_NameLabel.text = member.MemberName; } if (m_GuildNameLabel != null) { m_GuildNameLabel.text = member.GuildName; } if (m_LevelLabel != null) { m_LevelLabel.text = member.Level.ToString(); } if (m_ProfessionLabel != null) { m_ProfessionLabel.text = Utils.GetProfessionNameByType(member.Profession);//StrDictionary.GetClientDictionaryString("#{" + CharacterDefine.PROFESSION_DICNUM[member.Profession].ToString() + "}"); } if (m_CombatValueLabel != null) { m_CombatValueLabel.text = member.CombatValue.ToString(); } }
void OnLoadMasterReserveMemberItem(GameObject resItem, object param) { if (null == resItem) { LogModule.ErrorLog("load master reserve member item fail"); return; } Utils.CleanGrid(m_MasterReserveMemberGrid); //填充数据 int nMasterMemberItemIndex = 0; foreach (KeyValuePair <UInt64, MasterMember> info in GameManager.gameManager.PlayerDataPool.MasterInfo.MasterReserveMemberList) { MasterMember member = info.Value; if (member.IsValid() && member.IsReserveMember() == true) { GameObject newMasterMemberItem = Utils.BindObjToParent(resItem, m_MasterReserveMemberGrid, nMasterMemberItemIndex.ToString()); if (null != newMasterMemberItem && null != newMasterMemberItem.GetComponent <MasterReserveMemberItemLogic>()) { newMasterMemberItem.GetComponent <MasterReserveMemberItemLogic>().Init(member); } nMasterMemberItemIndex++; } } //Grid排序,防止列表异常 m_MasterReserveMemberGrid.GetComponent <UIGrid>().Reposition(); m_MasterReserveMemberGrid.GetComponent <UITopGrid>().Recenter(true); }
public void UpdateSpeakers() { if (m_ChatInfoLogic == null) { return; } if (m_LastSpeakerItem == null) { return; } Utils.CleanGrid(m_LastSpeakersGrid); m_LastSpeakersList.Clear(); switch (m_ChatInfoLogic.CurChannelType) { case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_WORLD: { List <ChatHistoryItem> historyList = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList; for (int i = 0; i < historyList.Count; ++i) { AddLastSpeakers(historyList[i]); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_TELL: { List <LastSpeaker> tellList = GameManager.gameManager.PlayerDataPool.TellChatSpeakers.LastSpeakerList; for (int i = 0; i < tellList.Count; i++) { AddNewLastSpeaker(tellList[i].Guid, tellList[i].Name); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_NORMAL: { foreach (KeyValuePair <string, Obj> objPair in Singleton <ObjManager> .Instance.ObjPools) { if (objPair.Value.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer objPlayer = objPair.Value as Obj_OtherPlayer; if (objPlayer != null) { AddNewLastSpeaker(objPlayer.GUID, objPlayer.BaseAttr.RoleName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_TEAM: { if (GameManager.gameManager.PlayerDataPool.IsHaveTeam()) { for (int i = 0; i < GlobeVar.MAX_TEAM_MEMBER; i++) { TeamMember member = GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(i); if (member != null && member.IsValid() && member.Guid != Singleton <ObjManager> .Instance.MainPlayer.GUID) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_GUILD: { if (GameManager.gameManager.PlayerDataPool.IsHaveGuild()) { m_GuildMemberSpeak.Clear(); // 帮会频道先加载最近说过话的 再加载剩下的 List <ChatHistoryItem> historyList = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList; for (int i = 0; i < historyList.Count; ++i) { if (historyList[i].EChannel == GC_CHAT.CHATTYPE.CHAT_TYPE_GUILD && m_LastSpeakersGrid != null && historyList[i].SenderGuid != GlobeVar.INVALID_GUID && historyList[i].SenderName != "") { if (false == m_GuildMemberSpeak.Contains(historyList[i].SenderGuid)) { AddNewLastSpeaker(historyList[i].SenderGuid, historyList[i].SenderName); m_GuildMemberSpeak.Add(historyList[i].SenderGuid); } } } foreach (KeyValuePair <UInt64, GuildMember> memberPair in GameManager.gameManager.PlayerDataPool.GuildInfo.GuildMemberList) { GuildMember member = memberPair.Value; if (member.Guid != GlobeVar.INVALID_GUID && member.Job != (int)Games.GlobeDefine.GameDefine_Globe.GUILD_JOB.RESERVE && false == m_GuildMemberSpeak.Contains(member.Guid)) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_MASTER: { if (GameManager.gameManager.PlayerDataPool.IsHaveMaster()) { foreach (KeyValuePair <UInt64, MasterMember> memberPair in GameManager.gameManager.PlayerDataPool.MasterInfo.MasterMemberList) { MasterMember member = memberPair.Value; if (member.Guid != GlobeVar.INVALID_GUID && !member.IsReserveMember()) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_FRIEND: { GameObject lastitem = null; // 两次循环 先加载不在未阅读好友列表的 再加载在的 保证有未阅读消息的好友在左侧列表最上方 foreach (KeyValuePair <UInt64, Relation> _relation in GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList) { if (!GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList.Contains(_relation.Key)) { lastitem = AddNewLastSpeaker(_relation.Key, _relation.Value.Name); } } for (int i = GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList.Count - 1; i >= 0; i--) { UInt64 senderGuid = GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList[i]; if (GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList.ContainsKey(senderGuid)) { string senderName = GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList[senderGuid].Name; lastitem = AddNewLastSpeaker(senderGuid, senderName); } } if (lastitem != null && lastitem.GetComponent <LastSpeakerItemLogic>() != null) { lastitem.GetComponent <LastSpeakerItemLogic>().ChooseSpeaker(); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_SYSTEM: break; } }
public void UpdateData(GC_MASTER_RET_INFO info) { //清空之前的数据 CleanUp(); //判断消息包数据合法性 if (info == null || info.MasterGuid == GlobeVar.INVALID_GUID) { return; } //填充数据 MasterGuid = info.MasterGuid; MasterName = info.MasterName; MasterChiefGuid = info.MasterChiefGuid; MasterTorch = info.MasterTorch; MasterNotice = info.MasterNotice; MasterOnlineNum = info.MemberNum; m_MasterCreateTime = info.CreateTime; //技能 if (info.Masterskill1 >= 0) { m_MasterSkillList.Add(info.Masterskill1, info.Masterskillname1); } if (info.Masterskill2 >= 0) { m_MasterSkillList.Add(info.Masterskill2, info.Masterskillname2); } if (info.Masterskill3 >= 0) { m_MasterSkillList.Add(info.Masterskill3, info.Masterskillname3); } if (info.Masterskill4 >= 0) { m_MasterSkillList.Add(info.Masterskill4, info.Masterskillname4); } if (info.Masterskill5 >= 0) { m_MasterSkillList.Add(info.Masterskill5, info.Masterskillname5); } if (info.Masterskill6 >= 0) { m_MasterSkillList.Add(info.Masterskill6, info.Masterskillname6); } //成员 for (int i = 0; i < info.memberGuidCount; ++i) { MasterMember member = new MasterMember(); member.CleanUp(); member.Guid = info.GetMemberGuid(i); if (info.memberNameCount > i) { member.MemberName = info.GetMemberName(i); } if (info.memberVIPCount > i) { member.VIP = info.GetMemberVIP(i); } if (info.memberGuildNameCount > i) { member.GuildName = info.GetMemberGuildName(i); } if (info.memberLevelCount > i) { member.Level = info.GetMemberLevel(i); } if (info.memberCombatValueCount > i) { member.CombatValue = info.GetMemberCombatValue(i); } if (info.memberTorchCount > i) { member.Torch = info.GetMemberTorch(i); } if (info.memberLastLoginCount > i) { member.LastLogin = info.GetMemberLastLogin(i); } if (info.memberProfCount > i) { member.Profession = info.GetMemberProf(i); } if (info.memberStateCount > i) { member.State = info.GetMemberState(i); } if (info.memberIsReserveCount > i) { member.IsReserve = info.GetMemberIsReserve(i); } if (member.Guid == m_MasterChiefGuid) { //掌门姓名 m_MasterChiefName = member.MemberName; } if (member.IsValid()) { if (member.IsReserveMember()) { MasterReserveMemberList.Add(member.Guid, member); } else { MasterMemberList.Add(member.Guid, member); } } } m_MasterMemberNum = MasterMemberList.Count; //按照薪火排序 SortMemberListByTorch(m_MasterMemberList); if (ChatInfoLogic.Instance() != null) { ChatInfoLogic.Instance().UpdateMasterChannel(); ChatInfoLogic.Instance().UpdateSpeakerList_Master(); } }
public void Init(MasterMember member) { if (member.IsValid() == false) { return; } //显示正式成员 if (member.IsReserveMember()) { return; } m_MasterMember = member; if (m_NameLabel != null) { m_NameLabel.text = member.MemberName; } if (m_GuildNameLabel != null) { if (member.GuildName != null && member.GuildName != "") { m_GuildNameLabel.text = member.GuildName; } else { //m_GuildNameLabel.text = "无"; m_GuildNameLabel.text = StrDictionary.GetClientDictionaryString("#{2865}"); } } if (m_LevelLabel != null) { m_LevelLabel.text = member.Level.ToString(); } if (m_ProfessionLabel != null) { m_ProfessionLabel.text = Utils.GetProfessionNameByType(member.Profession);//StrDictionary.GetClientDictionaryString("#{" + CharacterDefine.PROFESSION_DICNUM[member.Profession].ToString() + "}"); } if (m_CombatValueLabel != null) { m_CombatValueLabel.text = member.CombatValue.ToString(); } if (m_OffLineTimeLable != null) { //member.LastLogin为1970年1月1日至今的标准时间,需要转换为时分秒 if (member.State == 1) { //在线,显示在线 //m_OffLineTimeLable.text = "在线"; m_OffLineTimeLable.text = StrDictionary.GetClientDictionaryString("#{2866}"); } else { DateTime startTime = new DateTime(1970, 1, 1); DateTime sendDate = new DateTime((long)member.LastLogin * 10000000L + startTime.Ticks, DateTimeKind.Unspecified); sendDate = sendDate.ToLocalTime(); if (DateTime.Now.Subtract(sendDate).Days < 1) { m_OffLineTimeLable.text = sendDate.ToString("HH:mm"); } else { m_OffLineTimeLable.text = sendDate.ToString("MM-dd"); } } } }