/// <summary> /// 装备宝石升级成功 /// </summary> /// <param name="update">Update.</param> public void EquipDataUpdate(GCPushEquipDataUpdate update) { int c = 0; foreach (var b in EquipmentData) { if (b.id == update.PackInfo.PackEntry.Id) { EquipmentData.RemoveAt(c); break; } c++; } EquipmentData.Add(new EquipData(update.PackInfo)); MyEventSystem.PushEventStatic(MyEvent.EventType.UpdateItemCoffer); }
public static void LevelUpEquip(KBEngine.Packet packet) { var playerInfo = ServerData.Instance.playerInfo; var inpb = packet.protoBody as CGLevelUpEquip; var eid = inpb.EquipId; var curLev = 0; PackInfo packInfo = null; foreach (var e in playerInfo.DressInfoList) { if (e.PackEntry.Id == eid) { packInfo = e; break; } } if (packInfo != null) { curLev = packInfo.PackEntry.Level + 1; var levCost = GMDataBaseSystem.SearchIdStatic <EquipLevelData>(GameData.EquipLevel, curLev); if (levCost == null) { SendNotify("装备已经升到顶级了"); return; } var myGold = playerInfo.Gold; if (levCost.gold > myGold) { SendNotify("金币不足"); return; } AddGold(-levCost.gold); var extraAtt = 0; var extraDef = 0; foreach (var g in inpb.GemIdList) { var pinfo = GetItemInPack(g); var itemData = Util.GetItemData(0, pinfo.PackEntry.BaseId); extraAtt += itemData.GetRndAtk(); extraDef += itemData.GetRndDef(); ReduceItem(g, 1); } var rate = Random.Range(0, 100); if (rate < levCost.rate) { packInfo.PackEntry.Level++; packInfo.PackEntry.ExtraAttack += extraAtt; packInfo.PackEntry.ExtraDefense += extraDef; SendNotify("装备升级成功, 本次概率" + rate); var update = GCPushEquipDataUpdate.CreateBuilder(); update.PackInfo = packInfo; ServerBundle.SendImmediatePush(update); } else { SendNotify("装备升级失败, 本次概率" + rate + " 需要概率 " + levCost.rate); } } }