Example #1
0
        public static bool initPrestigeMedal()
        {
            bool result  = PrestigeMedalManager.LoadPrestigeMedalBasicData();
            bool result2 = PrestigeMedalManager.LoadPrestigeMedalSpecialData();

            return(result && result2);
        }
Example #2
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);
 }
Example #3
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;
        }
Example #4
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);
         }
     }
 }
Example #5
0
        public static PrestigeMedalData GetPrestigeMedalData(GameClient client)
        {
            PrestigeMedalData result;

            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1))
            {
                result = null;
            }
            else if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false))
            {
                result = null;
            }
            else
            {
                PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData;
                if (prestigeMedalData == null)
                {
                    prestigeMedalData = new PrestigeMedalData();
                    List <int>             data = Global.GetRoleParamsIntListFromDB(client, "PrestigeMedal");
                    PrestigeMedalBasicData basic;
                    if (data == null || data.Count <= 0)
                    {
                        basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(PrestigeMedalManager._defaultMedalID);
                        prestigeMedalData.RoleID  = client.ClientData.RoleID;
                        prestigeMedalData.MedalID = basic.MedalID;
                        PrestigeMedalManager.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 > PrestigeMedalManager._prestigeMedalBasicList.Count)
                        {
                            prestigeMedalData.UpResultType = 3;
                            basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(PrestigeMedalManager._prestigeMedalBasicList.Count);
                        }
                        else
                        {
                            basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID);
                        }
                    }
                    prestigeMedalData.Diamond           = PrestigeMedalManager.GetPrestigeMedalDiamond(client, PrestigeMedalManager.GetPrestigeMedalUpCount(client));
                    prestigeMedalData.Prestige          = basic.PrestigeCost;
                    client.ClientData.prestigeMedalData = prestigeMedalData;
                }
                prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client);
                result = prestigeMedalData;
            }
            return(result);
        }
Example #6
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);
        }
Example #7
0
        public static int GetPrestigeMedalUpCount(GameClient client)
        {
            int        count  = 0;
            int        dayOld = 0;
            List <int> data   = Global.GetRoleParamsIntListFromDB(client, "PrestigeMedalUpCount");

            if (data != null && data.Count > 0)
            {
                dayOld = data[0];
            }
            int day = TimeUtil.NowDateTime().DayOfYear;

            if (dayOld == day)
            {
                count = data[1];
            }
            else
            {
                PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, count, true);
            }
            return(count);
        }
Example #8
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
         });
     }
 }
Example #9
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);
        }
Example #10
0
 public bool startup()
 {
     TCPCmdDispatcher.getInstance().registerProcessorEx(782, 1, 1, PrestigeMedalManager.getInstance(), TCPCmdFlags.IsStringArrayParams);
     TCPCmdDispatcher.getInstance().registerProcessorEx(783, 2, 2, PrestigeMedalManager.getInstance(), TCPCmdFlags.IsStringArrayParams);
     return(true);
 }
Example #11
0
 public bool initialize()
 {
     return(PrestigeMedalManager.initPrestigeMedal());
 }