Exemple #1
0
    //更新关系人所有数据
    //由于消息包不同,所以该方法会被重载
    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);
        }