private void OnReq_AdvanceEquip(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); ReqAdvanceEquip req = Serializer.Deserialize <ReqAdvanceEquip>(ms); DEquip cfg = ReadCfgEquip.GetDataById(req.TarEquip.Id); int advanceID = cfg.Quality * 1000 + req.TarEquip.AdvanceLevel + 1; DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(advanceID); AckAdvanceEquip ack = new AckAdvanceEquip(); ack.UseItems.AddRange(req.UseItems); ack.TarEquip = req.TarEquip; NetworkManager.Instance.Send(MessageID.MSG_ACK_ADVANCE_EQUIP, ack, 0, 0); }
public void TryAdvanceEquip(XEquip equip) { if (EquipModule.Instance.IsFullAdvanceLevel(equip)) { GTItemHelper.ShowTip("进阶等级已满"); return; } DEquip cfg = ReadCfgEquip.GetDataById(equip.Id); int advanceID = cfg.Quality * 1000 + equip.AdvanceLevel + 1; DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(advanceID); if (!GTItemHelper.CheckItemEnongh(db.CostMoneyId, db.CostMoneyNum)) { return; } if (!GTItemHelper.CheckItemEnongh(db.CostItemId, db.CostItemNum)) { return; } List <XItem> list; if (db.CostEquipNum > 0) { list = EquipModule.Instance.GetBagSameEquipList(equip); if (list.Count < db.CostEquipNum) { GTItemHelper.ShowTip("缺少同样的装备"); return; } list.RemoveRange(db.CostEquipNum, list.Count - db.CostEquipNum); } else { list = new List <XItem>(); } ReqAdvanceEquip req = new ReqAdvanceEquip(); req.TarEquip = equip; req.UseItems.AddRange(list); NetworkManager.Instance.Send <ReqAdvanceEquip>(MessageID.MSG_REQ_ADVANCE_EQUIP, req); }