private void OnAck_AdvanceEquip(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckAdvanceEquip ack = Serializer.Deserialize <AckAdvanceEquip>(ms); XEquip equip = ack.TarEquip; List <XItem> list = ack.UseItems; DEquip equipDB = ReadCfgEquip.GetDataById(equip.Id); int advanceID = equipDB.Quality * 1000 + equip.AdvanceLevel + 1; DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(advanceID); GTDataManager.Instance.UseMoney(db.CostMoneyId, db.CostMoneyNum); GTDataManager.Instance.UseItemById(db.CostItemId, db.CostItemNum); if (list != null) { for (int i = 0; i < list.Count; i++) { GTDataManager.Instance.DelBagEquip(list[i].Pos); } } equip.AdvanceLevel++; DataDBSEquip.Update(equip.Instance, equip); CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR); GTEventCenter.FireEvent(GTEventID.TYPE_ADVANCE_EQUIP); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }
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); }