예제 #1
0
 public bool ProcessCmdPrestigeMedalInfo(GameClient client, int nID, byte[] bytes, string[] cmdParams)
 {
     try
     {
         if (cmdParams.Length != 1)
         {
             LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Client={1}, Recv={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket, false), cmdParams.Length), null, true);
             return(false);
         }
         int roleID = Convert.ToInt32(cmdParams[0]);
         if (KuaFuManager.getInstance().ClientCmdCheckFaild(nID, client, ref roleID))
         {
             LogManager.WriteLog(LogTypes.Error, string.Format("根据RoleID定位GameClient对象失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket, false), roleID), null, true);
             return(false);
         }
         PrestigeMedalData runeData = PrestigeMedalManager.GetPrestigeMedalData(client);
         client.sendCmd <PrestigeMedalData>(782, runeData, false);
         return(true);
     }
     catch (Exception ex)
     {
         DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(client.ClientSocket), false, false);
     }
     return(false);
 }
예제 #2
0
        public bool ProcessCmdPrestigeMedalInfo(GameClient client, int nID, byte[] bytes, string[] cmdParams)
        {
            try
            {
                //解析用户id,符文id
                if (cmdParams.Length != 1)
                {
                    LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Client={1}, Recv={2}",
                                                                      (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket), cmdParams.Length));
                    return(false);
                }

                int roleID = Convert.ToInt32(cmdParams[0]);
                if (null == client || client.ClientData.RoleID != roleID)
                {
                    LogManager.WriteLog(LogTypes.Error, string.Format("根据RoleID定位GameClient对象失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket), roleID));
                    return(false);
                }

                PrestigeMedalData runeData = GetPrestigeMedalData(client);
                client.sendCmd((int)TCPGameServerCmds.CMD_SPR_PRESTIGE_MEDAL_INFO, runeData);

                return(true);
            }
            catch (Exception ex)
            {
                DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(client.ClientSocket), false);
            }

            return(false);
        }
예제 #3
0
        /// <summary>
        /// 返回声望勋章数据
        /// </summary>
        /// <returns></returns>
        public static PrestigeMedalData GetPrestigeMedalData(GameClient client)
        {
            // 如果1.4.1的功能没开放
            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
            {
                return(null);
            }
            //开放等级  声望4阶
            if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal))
            {
                return(null);
            }

            PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;

            if (prestigeMedalData == null)
            {
                PrestigeMedalBasicData basic = null;
                prestigeMedalData = new PrestigeMedalData();

                List <int> data = Global.GetRoleParamsIntListFromDB(client, RoleParamName.PrestigeMedal);
                if (data == null || data.Count <= 0)
                {
                    basic = GetPrestigeMedalBasicDataByID(_defaultMedalID);
                    prestigeMedalData.RoleID  = client.ClientData.RoleID;
                    prestigeMedalData.MedalID = basic.MedalID;

                    ModifyPrestigeMedalData(client, prestigeMedalData, true);
                }
                else
                {
                    prestigeMedalData.RoleID     = client.ClientData.RoleID;
                    prestigeMedalData.MedalID    = data[0];
                    prestigeMedalData.LifeAdd    = data[1];
                    prestigeMedalData.AttackAdd  = data[2];
                    prestigeMedalData.DefenseAdd = data[3];
                    prestigeMedalData.HitAdd     = data[4];

                    if (prestigeMedalData.MedalID > _prestigeMedalBasicList.Count)
                    {
                        prestigeMedalData.UpResultType = 3;
                        basic = GetPrestigeMedalBasicDataByID(_prestigeMedalBasicList.Count);
                    }
                    else
                    {
                        basic = GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID);
                    }
                }

                prestigeMedalData.Diamond  = GetPrestigeMedalDiamond(client, GetPrestigeMedalUpCount(client));
                prestigeMedalData.Prestige = basic.PrestigeCost;

                client.ClientData.prestigeMedalData = prestigeMedalData;
            }

            prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client);

            return(prestigeMedalData);
        }
예제 #4
0
        public static void SetPrestigeMedalCount(GameClient client, int count)
        {
            count = ((count < 0) ? 0 : count);
            PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, count, true);
            PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;

            prestigeMedalData.Diamond           = PrestigeMedalManager.GetPrestigeMedalDiamond(client, PrestigeMedalManager.GetPrestigeMedalUpCount(client));
            client.ClientData.prestigeMedalData = prestigeMedalData;
        }
예제 #5
0
        /// <summary>
        /// 声望勋章——设置当天升级次数
        /// </summary>
        /// <param name="client"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        public static void SetPrestigeMedalCount(GameClient client, int count)
        {
            count = count < 0 ? 0 : count;
            ModifyPrestigeMedalUpCount(client, count, true);

            PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;

            prestigeMedalData.Diamond           = GetPrestigeMedalDiamond(client, GetPrestigeMedalUpCount(client));
            client.ClientData.prestigeMedalData = prestigeMedalData;
        }
예제 #6
0
 public static void initSetPrestigeMedalProps(GameClient client)
 {
     if (!GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
     {
         if (GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false))
         {
             PrestigeMedalData PrestigeMedalData = PrestigeMedalManager.GetPrestigeMedalData(client);
             PrestigeMedalManager.SetPrestigeMedalProps(client, PrestigeMedalData);
         }
     }
 }
예제 #7
0
        /// <summary>
        /// 修改声望勋章数据
        /// </summary>
        /// <returns></returns>
        public static void ModifyPrestigeMedalData(GameClient client, PrestigeMedalData data, bool writeToDB = false)
        {
            // 如果1.4.1的功能没开放
            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
            {
                return;
            }
            List <int> dataList = new List <int>();

            dataList.AddRange(new int[] { data.MedalID, data.LifeAdd, data.AttackAdd, data.DefenseAdd, data.HitAdd });

            Global.SaveRoleParamsIntListToDB(client, dataList, RoleParamName.PrestigeMedal, writeToDB);
        }
예제 #8
0
        public static void SetPrestigeMedalLevel(GameClient client, int level)
        {
            level = ((level <= 0) ? 1 : level);
            PrestigeMedalData      prestigeMedalData = new PrestigeMedalData();
            PrestigeMedalBasicData basic             = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(level);

            prestigeMedalData.RoleID  = client.ClientData.RoleID;
            prestigeMedalData.MedalID = basic.MedalID;
            if (prestigeMedalData.MedalID > PrestigeMedalManager._prestigeMedalBasicList.Count)
            {
                prestigeMedalData.UpResultType = 3;
            }
            PrestigeMedalManager.ModifyPrestigeMedalData(client, prestigeMedalData, true);
            client.ClientData.prestigeMedalData = prestigeMedalData;
            PrestigeMedalManager.SetPrestigeMedalProps(client, prestigeMedalData);
        }
예제 #9
0
        /// <summary>
        /// 设置声望勋章属性
        /// </summary>
        /// <param name="client"></param>
        public static void initSetPrestigeMedalProps(GameClient client)
        {
            // 如果1.4.1的功能没开放
            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
            {
                return;
            }

            //开放等级  声望4阶
            if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal))
            {
                return;
            }

            PrestigeMedalData PrestigeMedalData = GetPrestigeMedalData(client);

            SetPrestigeMedalProps(client, PrestigeMedalData);
        }
예제 #10
0
        /// <summary>
        /// 设置声望勋章属性
        /// </summary>
        /// <param name="client"></param>
        public static void SetPrestigeMedalProps(GameClient client, PrestigeMedalData PrestigeMedalData)
        {
            // 如果1.4.1的功能没开放
            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
            {
                return;
            }

            //加成
            int life    = PrestigeMedalData.LifeAdd;
            int attack  = PrestigeMedalData.AttackAdd;
            int defense = PrestigeMedalData.DefenseAdd;
            int hit     = PrestigeMedalData.HitAdd;

            foreach (PrestigeMedalBasicData d in _prestigeMedalBasicList.Values)
            {
                if (d.MedalID < PrestigeMedalData.MedalID)
                {
                    life    += d.LifeMax;
                    attack  += d.AttackMax;
                    defense += d.DefenseMax;
                    hit     += d.HitMax;
                }
            }

            //额外加成
            double zhuoYue = 0;
            double diKang  = 0;

            if (PrestigeMedalData.MedalID > 1)
            {
                PrestigeMedalSpecialData d = GetPrestigeMedalSpecialDataByID(PrestigeMedalData.MedalID - 1);
                zhuoYue += d.DoubleAttack;
                diKang  += d.DiDouble;
            }

            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.MaxLifeV, life);
            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.AddAttack, attack);
            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.AddDefense, defense);
            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.HitV, hit);
            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.DoubleAttack, zhuoYue);
            client.ClientData.PropsCacheManager.SetExtPropsSingle((int)PropsSystemTypes.PrestigeMedal, (int)ExtPropIndexes.DeDoubleAttack, diKang);
        }
예제 #11
0
        public bool ProcessCmdPrestigeMedalUp(GameClient client, int nID, byte[] bytes, string[] cmdParams)
        {
            try
            {
                //解析用户id,符文id
                if (cmdParams.Length != 2)
                {
                    LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Client={1}, Recv={2}",
                                                                      (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket), cmdParams.Length));
                    return(false);
                }

                int roleID = Convert.ToInt32(cmdParams[0]);
                int runeID = Convert.ToInt32(cmdParams[1]);
                if (null == client || client.ClientData.RoleID != roleID)
                {
                    LogManager.WriteLog(LogTypes.Error, string.Format("根据RoleID定位GameClient对象失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket), roleID));
                    return(false);
                }

                // 如果1.4.1的功能没开放
                if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
                {
                    LogManager.WriteLog(LogTypes.Error, string.Format("ProcessCmdPrestigeMedalUp功能尚未开放, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket), roleID));
                    return(false);
                }

                PrestigeMedalData runeData = UpPrestigeMedal(client, runeID);
                client.sendCmd((int)TCPGameServerCmds.CMD_SPR_PRESTIGE_MEDAL_UP, runeData);

                return(true);
            }
            catch (Exception ex)
            {
                DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(client.ClientSocket), false);
            }

            return(false);
        }
예제 #12
0
        /// <summary>
        /// 声望勋章——提升
        /// </summary>
        /// <param name="client"></param>
        /// <param name="MedalID"></param>
        /// <returns></returns>
        public static PrestigeMedalData UpPrestigeMedal(GameClient client, int MedalID)
        {
            PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;

            if (prestigeMedalData != null && prestigeMedalData.UpResultType == (int)PrestigeMedalResultType.End)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.EOver;
                return(prestigeMedalData);
            }

            if (prestigeMedalData == null || prestigeMedalData.MedalID != MedalID)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.Fail;
                return(prestigeMedalData);
            }

            //开放等级  声望4阶
            bool isOpen = GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal);

            if (!isOpen)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.EnoOpen;
                return(prestigeMedalData);
            }

            PrestigeMedalBasicData basicMedal = GetPrestigeMedalBasicDataByID(MedalID);

            //声望
            int prestigeNow = GameManager.ClientMgr.GetShengWangValue(client);

            if (basicMedal.PrestigeCost > prestigeNow)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.EnoPrestige;
                return(prestigeMedalData);
            }

            //钻石
            int upCount     = GetPrestigeMedalUpCount(client);
            int diamondNeed = GetPrestigeMedalDiamond(client, upCount);

            if (diamondNeed > 0 && !GameManager.ClientMgr.SubUserMoney(client, diamondNeed, "声望勋章提升"))
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.EnoDiamond;
                return(prestigeMedalData);
            }

            try
            {
                GameManager.ClientMgr.ModifyShengWangValue(client, -basicMedal.PrestigeCost, "声望勋章提升");
            }
            catch (Exception)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.EnoPrestige;
                return(prestigeMedalData);
            }

            //几率
            int[] addNums = null;
            int   rate    = 0;
            int   r       = Global.GetRandomNumber(0, 100);

            for (int i = 0; i < basicMedal.RateList.Count; i++)
            {
                rate += basicMedal.RateList[i];
                if (r <= rate)
                {
                    addNums = basicMedal.AddNumList[i];
                    prestigeMedalData.BurstType = i;//暴击
                    break;
                }
            }

            //加成
            prestigeMedalData.LifeAdd += addNums[0] * _medalRate;
            prestigeMedalData.LifeAdd  = prestigeMedalData.LifeAdd > basicMedal.LifeMax ? basicMedal.LifeMax : prestigeMedalData.LifeAdd;

            prestigeMedalData.AttackAdd += addNums[1] * _medalRate;
            prestigeMedalData.AttackAdd  = prestigeMedalData.AttackAdd > basicMedal.AttackMax ? basicMedal.AttackMax : prestigeMedalData.AttackAdd;

            prestigeMedalData.DefenseAdd += addNums[2] * _medalRate;
            prestigeMedalData.DefenseAdd  = prestigeMedalData.DefenseAdd > basicMedal.DefenseMax ? basicMedal.DefenseMax : prestigeMedalData.DefenseAdd;

            prestigeMedalData.HitAdd += addNums[3] * _medalRate;
            prestigeMedalData.HitAdd  = prestigeMedalData.HitAdd > basicMedal.HitMax ? basicMedal.HitMax : prestigeMedalData.HitAdd;

            if (prestigeMedalData.LifeAdd < basicMedal.LifeMax || prestigeMedalData.DefenseAdd < basicMedal.DefenseMax ||
                prestigeMedalData.AttackAdd < basicMedal.AttackMax || prestigeMedalData.HitAdd < basicMedal.HitMax)
            {
                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.Success;
                prestigeMedalData.Prestige     = basicMedal.PrestigeCost;
                prestigeMedalData.Diamond      = GetPrestigeMedalDiamond(client, upCount + 1);
            }
            else
            {
                prestigeMedalData.MedalID   += 1;
                prestigeMedalData.LifeAdd    = 0;
                prestigeMedalData.AttackAdd  = 0;
                prestigeMedalData.DefenseAdd = 0;
                prestigeMedalData.HitAdd     = 0;

                prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.Next;
                if (prestigeMedalData.MedalID > _prestigeMedalBasicList.Count)
                {
                    prestigeMedalData.UpResultType = (int)PrestigeMedalResultType.End;
                    prestigeMedalData.Prestige     = 0;
                    prestigeMedalData.Diamond      = 0;
                }
                else
                {
                    basicMedal = GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID);
                    prestigeMedalData.Prestige = basicMedal.PrestigeCost;
                    prestigeMedalData.Diamond  = GetPrestigeMedalDiamond(client, upCount + 1);
                }
            }

            ModifyPrestigeMedalUpCount(client, upCount + 1, true);
            ModifyPrestigeMedalData(client, prestigeMedalData);

            client.ClientData.prestigeMedalData = prestigeMedalData;

            SetPrestigeMedalProps(client, prestigeMedalData);

            //通知客户端属性变化
            GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
            // 总生命值和魔法值变化通知(同一个地图才需要通知)
            GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);

            prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client);
            return(prestigeMedalData);
        }
예제 #13
0
 public static void SetPrestigeMedalProps(GameClient client, PrestigeMedalData PrestigeMedalData)
 {
     if (!GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
     {
         int life    = PrestigeMedalData.LifeAdd;
         int attack  = PrestigeMedalData.AttackAdd;
         int defense = PrestigeMedalData.DefenseAdd;
         int hit     = PrestigeMedalData.HitAdd;
         foreach (PrestigeMedalBasicData d in PrestigeMedalManager._prestigeMedalBasicList.Values)
         {
             if (d.MedalID < PrestigeMedalData.MedalID)
             {
                 life    += d.LifeMax;
                 attack  += d.AttackMax;
                 defense += d.DefenseMax;
                 hit     += d.HitMax;
             }
         }
         double zhuoYue = 0.0;
         double diKang  = 0.0;
         if (PrestigeMedalData.MedalID > 1)
         {
             PrestigeMedalSpecialData d2 = PrestigeMedalManager.GetPrestigeMedalSpecialDataByID(PrestigeMedalData.MedalID - 1);
             zhuoYue += d2.DoubleAttack;
             diKang  += d2.DiDouble;
         }
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             13,
             life
         });
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             45,
             attack
         });
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             46,
             defense
         });
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             18,
             hit
         });
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             36,
             zhuoYue
         });
         client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[]
         {
             9,
             53,
             diKang
         });
     }
 }
예제 #14
0
        public static PrestigeMedalData UpPrestigeMedal(GameClient client, int MedalID)
        {
            PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;
            PrestigeMedalData result;

            if (prestigeMedalData != null && prestigeMedalData.UpResultType == 3)
            {
                prestigeMedalData.UpResultType = -4;
                result = prestigeMedalData;
            }
            else if (prestigeMedalData == null || prestigeMedalData.MedalID != MedalID)
            {
                prestigeMedalData.UpResultType = 0;
                result = prestigeMedalData;
            }
            else if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false))
            {
                prestigeMedalData.UpResultType = -1;
                result = prestigeMedalData;
            }
            else
            {
                PrestigeMedalBasicData basicMedal = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(MedalID);
                int prestigeNow = GameManager.ClientMgr.GetShengWangValue(client);
                if (basicMedal.PrestigeCost > prestigeNow)
                {
                    prestigeMedalData.UpResultType = -2;
                    result = prestigeMedalData;
                }
                else
                {
                    int upCount     = PrestigeMedalManager.GetPrestigeMedalUpCount(client);
                    int diamondNeed = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount);
                    if (diamondNeed > 0 && !GameManager.ClientMgr.SubUserMoney(client, diamondNeed, "声望勋章提升", true, true, true, true, DaiBiSySType.ShengWangYinJi))
                    {
                        prestigeMedalData.UpResultType = -3;
                        result = prestigeMedalData;
                    }
                    else
                    {
                        try
                        {
                            GameManager.ClientMgr.ModifyShengWangValue(client, -basicMedal.PrestigeCost, "声望勋章提升", false, true);
                        }
                        catch (Exception)
                        {
                            prestigeMedalData.UpResultType = -2;
                            return(prestigeMedalData);
                        }
                        int[] addNums = null;
                        int   rate    = 0;
                        int   r       = Global.GetRandomNumber(0, 100);
                        for (int i = 0; i < basicMedal.RateList.Count; i++)
                        {
                            rate += basicMedal.RateList[i];
                            if (r <= rate)
                            {
                                addNums = basicMedal.AddNumList[i];
                                prestigeMedalData.BurstType = i;
                                break;
                            }
                        }
                        prestigeMedalData.LifeAdd    += addNums[0] * PrestigeMedalManager._medalRate;
                        prestigeMedalData.LifeAdd     = ((prestigeMedalData.LifeAdd > basicMedal.LifeMax) ? basicMedal.LifeMax : prestigeMedalData.LifeAdd);
                        prestigeMedalData.AttackAdd  += addNums[1] * PrestigeMedalManager._medalRate;
                        prestigeMedalData.AttackAdd   = ((prestigeMedalData.AttackAdd > basicMedal.AttackMax) ? basicMedal.AttackMax : prestigeMedalData.AttackAdd);
                        prestigeMedalData.DefenseAdd += addNums[2] * PrestigeMedalManager._medalRate;
                        prestigeMedalData.DefenseAdd  = ((prestigeMedalData.DefenseAdd > basicMedal.DefenseMax) ? basicMedal.DefenseMax : prestigeMedalData.DefenseAdd);
                        prestigeMedalData.HitAdd     += addNums[3] * PrestigeMedalManager._medalRate;
                        prestigeMedalData.HitAdd      = ((prestigeMedalData.HitAdd > basicMedal.HitMax) ? basicMedal.HitMax : prestigeMedalData.HitAdd);
                        if (prestigeMedalData.LifeAdd < basicMedal.LifeMax || prestigeMedalData.DefenseAdd < basicMedal.DefenseMax || prestigeMedalData.AttackAdd < basicMedal.AttackMax || prestigeMedalData.HitAdd < basicMedal.HitMax)
                        {
                            prestigeMedalData.UpResultType = 1;
                            prestigeMedalData.Prestige     = basicMedal.PrestigeCost;
                            prestigeMedalData.Diamond      = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount + 1);
                        }
                        else
                        {
                            prestigeMedalData.MedalID++;
                            prestigeMedalData.LifeAdd      = 0;
                            prestigeMedalData.AttackAdd    = 0;
                            prestigeMedalData.DefenseAdd   = 0;
                            prestigeMedalData.HitAdd       = 0;
                            prestigeMedalData.UpResultType = 2;
                            if (prestigeMedalData.MedalID > PrestigeMedalManager._prestigeMedalBasicList.Count)
                            {
                                prestigeMedalData.UpResultType = 3;
                                prestigeMedalData.Prestige     = 0;
                                prestigeMedalData.Diamond      = 0;
                            }
                            else
                            {
                                basicMedal = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID);
                                prestigeMedalData.Prestige = basicMedal.PrestigeCost;
                                prestigeMedalData.Diamond  = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount + 1);
                            }
                        }
                        PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, upCount + 1, true);
                        PrestigeMedalManager.ModifyPrestigeMedalData(client, prestigeMedalData, true);
                        client.ClientData.prestigeMedalData = prestigeMedalData;
                        PrestigeMedalManager.SetPrestigeMedalProps(client, prestigeMedalData);
                        GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
                        GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7);
                        prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client);
                        result = prestigeMedalData;
                    }
                }
            }
            return(result);
        }