Example #1
0
        /// <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);
        }
Example #2
0
        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);
                }
            }
        }