//更新关系人所有数据 //由于消息包不同,所以该方法会被重载 public void RebuildRelationList(GC_SYC_FULL_FRIEND_LIST packet) { if (null == m_RelationDataList || null == packet) { return; } m_RelationDataList.Clear(); for (int i = 0; i < packet.guidCount; ++i) { Relation _relation = new Relation(); _relation.Guid = packet.GetGuid(i); _relation.Level = packet.GetLevel(i); _relation.Name = packet.GetName(i); _relation.Profession = packet.GetProf(i); _relation.CombatNum = packet.GetCombat(i); _relation.State = packet.GetState(i); _relation.TimeInfo = packet.GetTimeInfo(i); // 修改消息后要加上timeInfo if (_relation.IsValid()) { m_RelationDataList.Add(_relation.Guid, _relation); } } // SortByRelationState ((int)CharacterDefine.RELATION_TYPE.ONLINE); }
public uint Execute(PacketDistributed ipacket) { GC_SYC_FULL_FRIEND_LIST packet = (GC_SYC_FULL_FRIEND_LIST)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic if (null != GameManager.gameManager.PlayerDataPool.FriendList) { GameManager.gameManager.PlayerDataPool.FriendList.RebuildRelationList(packet); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }