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 ShowAdvanceView() { XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos); if (equip == null) { return; } int itemID = equip.Id; if (EquipModule.Instance.IsFullStarLevel(equip)) { return; } GTItemHelper.ShowItemTexture(mEquipAdvance.nowEquipTexture, itemID); GTItemHelper.ShowItemQuality(mEquipAdvance.nowEquipQuality, itemID); GTItemHelper.ShowItemName(mEquipAdvance.nowEquipName, itemID); GTItemHelper.ShowItemTexture(mEquipAdvance.nexEquipTexture, itemID); GTItemHelper.ShowItemQuality(mEquipAdvance.nexEquipQuality, itemID); GTItemHelper.ShowItemName(mEquipAdvance.nexEquipName, itemID); Dictionary <EAttr, int> nowPropertys = AttrHelper.GetPropertys(equip); XEquip nexEquip = new XEquip(); GTTools.Copy(nexEquip, equip); nexEquip.AdvanceLevel++; Dictionary <EAttr, int> nexPropertys = AttrHelper.GetPropertys(nexEquip); GTItemHelper.ShowPropertyText(mEquipAdvance.nowEquipPropertys, nowPropertys, false); GTItemHelper.ShowPropertyText(mEquipAdvance.nexEquipPropertys, nexPropertys, false); mEquipAdvance.nowEquipFightValue.text = AttrHelper.GetFightValue(nowPropertys).ToString(); mEquipAdvance.nexEquipFightValue.text = AttrHelper.GetFightValue(nexPropertys).ToString(); DEquip equipDB = ReadCfgEquip.GetDataById(itemID); DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(equipDB.Quality * 1000 + equip.AdvanceLevel + 1); int hasItemNum = GTDataManager.Instance.GetItemCountById(db.CostItemId); GTItemHelper.ShowItemTexture(mEquipAdvance.costItemTexture, db.CostItemId); GTItemHelper.ShowPriceText(mEquipAdvance.costItemNum, hasItemNum, db.CostItemNum); GTItemHelper.ShowItemQuality(mEquipAdvance.costItemQuality, itemID); if (db.CostEquipNum > 0) { mEquipAdvance.costEquipBtn.SetActive(true); GTItemHelper.ShowItemTexture(mEquipAdvance.costEquipTexture, itemID); GTItemHelper.ShowItemQuality(mEquipAdvance.costEquipQuality, itemID); int hasSameEquipNum = EquipModule.Instance.GetBagSameEquipList(equip).Count; GTItemHelper.ShowPriceText(mEquipAdvance.costEquipNum, hasSameEquipNum, db.CostEquipNum); } else { mEquipAdvance.costEquipBtn.SetActive(false); } GTItemHelper.ShowItemTexture(mEquipAdvance.costMoneyTexture, db.CostMoneyId); GTItemHelper.ShowItemNum(mEquipAdvance.costMoneyNum, db.CostMoneyNum); GTItemHelper.ShowEquipAdvanceText(mEquipAdvance.advanceText, itemID, equip.AdvanceLevel); }
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); }