/// <summary> /// 穿上装备 /// </summary> /// <param name="result">Result.</param> void UseEquipNetworkResp(GCUserDressEquip result) { Log.Net("UseEquipNetworkResp " + result); if (oldEquip != null) { PopEquipData(equipSlot); } var ed = new EquipData(result.DressEquip); EquipmentData.Add(ed); if (result.HasPackEquip) { var newBagItem = new BackpackData(result.PackEquip); PutItemInBackpackIndex(newBagItem); } MyEventSystem.PushEventStatic(MyEvent.EventType.UpdateItemCoffer); //更新角色属性面板的装备信息 //以及角色本身的装备信息 var evt = new MyEvent(MyEvent.EventType.CharEquipChanged); evt.localID = ObjectManager.objectManager.GetMyLocalId(); evt.equipData = ed; evt.boolArg = true; MyEventSystem.myEventSystem.PushEvent(evt); //通知角色属性面板 更新UI上面的icon evt = new MyEvent(MyEvent.EventType.RefreshEquip); MyEventSystem.myEventSystem.PushEvent(evt); }
public static void UserDressEquip(KBEngine.Packet packet) { var inpb = packet.protoBody as CGUserDressEquip; var pinfo = ServerData.Instance.playerInfo; PackInfo oldEquip = null; if (inpb.DestEquipId != 0) { foreach (var p in pinfo.DressInfoList) { if (p.PackEntry.Id == inpb.DestEquipId) { oldEquip = p; pinfo.DressInfoList.Remove(oldEquip); break; } } } PackInfo newEquip = null; if (inpb.SrcEquipId != 0) { foreach (var p in pinfo.PackInfoList) { if (p.PackEntry.Id == inpb.SrcEquipId) { newEquip = p; RemoveEquipFromPackage(inpb.SrcEquipId); break; } } } if (oldEquip != null) { PutEquipInPackage(oldEquip); } Log.Net("PutEquipInPackage " + oldEquip.PackEntry.Id); var newEquip2 = PackInfo.CreateBuilder(newEquip); newEquip2.PackEntry.Count = 1; pinfo.DressInfoList.Add(newEquip2.Build()); var au = GCUserDressEquip.CreateBuilder(); au.DressEquip = newEquip.PackEntry; if (oldEquip != null) { au.PackEquip = oldEquip.PackEntry; } ServerBundle.SendImmediate(au, packet.flowId); }