Exemplo n.º 1
0
        public sbyte UpBodyChannel(CSTable.ISkillLevelTable tpl)
        {
            var btemp = CSCommon.RoleCommon.Instance;

            if (btemp == null)
            {
                return((sbyte)eRet_UpSkillLv.NoSkill);
            }
            if (PlayerData.RoleDetail.FreeUpMuscleTimes >= btemp.FreeCount) //免费次数用完
            {
                if (PlayerData.RoleDetail.UpMuscleTimes >= btemp.PayCount)  //花钱次数用完
                {
                    return((sbyte)eRet_UpSkillLv.UpNum);
                }

                if (!_IsMoneyEnough(CSCommon.eCurrenceType.Rmb, btemp.PayMoneyNum))
                {
                    return((sbyte)eRet_UpSkillLv.LessMoney);
                }
                _ChangeMoney(CSCommon.eCurrenceType.Rmb, eMoneyChangeType.UpSkill, -btemp.PayMoneyNum);
                PlayerData.RoleDetail.UpMuscleTimes++;
                PlayerData.RoleDetail.LastUpMuscleTime = System.DateTime.Now;
            }
            else
            {
                PlayerData.RoleDetail.FreeUpMuscleTimes++;
                PlayerData.RoleDetail.LastUpMuscleTime = System.DateTime.Now;
            }
            return((sbyte)eRet_UpSkillLv.Succeed);
        }
Exemplo n.º 2
0
        public sbyte UpCheats(CSTable.ISkillLevelTable tpl, byte costType)
        {
            var           ctpl     = tpl as CSTable.CheatsData;
            int           cost     = 0;
            float         rate     = 0;
            eCurrenceType costtype = eCurrenceType.Gold;

            if (costType == (byte)CSCommon.eUpCheatsType.Normal)
            {
                cost     = ctpl.goldcost;
                rate     = ctpl.goldcostrate;
                costtype = eCurrenceType.Gold;
            }
            else if (costType == (byte)CSCommon.eUpCheatsType.Normal)
            {
                cost     = ctpl.rmbcost;
                rate     = ctpl.rmbcostrate;
                costtype = eCurrenceType.Rmb;
            }
            if (!_IsMoneyEnough(costtype, cost))
            {
                return((sbyte)eRet_UpSkillLv.LessMoney);
            }
            _ChangeMoney(costtype, eMoneyChangeType.UpSkill, -cost);
            float rand = (float)mRandom.NextDouble();

            if (rand > rate)
            {
                return((sbyte)eRet_UpSkillLv.Failure);
            }
            return((sbyte)eRet_UpSkillLv.Succeed);
        }
Exemplo n.º 3
0
        public sbyte UpActiveSkill(CSTable.ISkillLevelTable tpl)
        {
            var dict = ServerFrame.Util.ParsingStr(tpl.cost);

            foreach (var i in dict)
            {
                if (!_IsMoneyEnough((CSCommon.eCurrenceType)i.Key, i.Value))
                {
                    return((sbyte)eRet_UpSkillLv.LessMoney);
                }
            }
            foreach (var cost in dict)
            {
                _ChangeMoney((CSCommon.eCurrenceType)cost.Key, eMoneyChangeType.LearnSkill, -cost.Value);
            }
            return((sbyte)eRet_UpSkillLv.Succeed);
        }