/// <summary> /// 好友当前状态 /// </summary> /// <param name="buf">协议内容</param> private void OnSyncPlayerInfoBack(KProtoBuf buf) { S2C_SYNC_PLAYERINFO msg = buf as S2C_SYNC_PLAYERINFO; ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy; shipItemsProxy.InitShipItemsByByRespond(msg); }
/// <summary> /// 好友信息解析 /// </summary> /// <param name="respond"></param> public void InitShipItemsByByRespond(S2C_SYNC_PLAYERINFO respond) { PackageProxy packageProxy = GameFacade.Instance.RetrieveProxy(ProxyName.PackageProxy) as PackageProxy; ulong uid = respond.uid; Debug.Log("收到并解析玩家数据" + uid); Dictionary <ulong, ItemContainer> items = new Dictionary <ulong, ItemContainer>(); foreach (var item in respond.item_list) { ItemContainer itemcon = packageProxy.CreateItem(item.uid, item.tid, item.parent, item.pos, 0, 0, 0, 0); itemcon.Lv = item.lv; items.Add(item.uid, itemcon); } RelationData(items); // 用最新的 if (m_ShipItems.ContainsKey(uid)) { RemoveShipItems(uid); } m_ShipItems.Add(uid, items); GameFacade.Instance.SendNotification(NotificationName.MSG_FRIEND_SHIPDATA_CHANGE, uid); }