Example #1
0
        public static void OnChangeCurExp(CCreature obj, int newV, int oldV)
        {
            // 逻辑层
            // 到达满级时,不再执行
            if (newV == oldV && newV != 0)
            {
                return;
            }

            // 通过当前总经验值获取等级。
            PlayerExpCsv playerCsv = CsvManager.Inst.GetCsv <PlayerExpCsv>((int)eAllCSV.eAC_PlayerExp);
            int          lv        = playerCsv.GetLevelByExp(newV);

            if (lv >= playerCsv.m_maxLv.Level)  // 已满级
            {
                int maxExp = playerCsv.GetMaxExpByLv(lv);
                obj.SetPropNum(eCreatureProp.CurExp, maxExp);
                obj.SetPropNum(eCreatureProp.Exp, maxExp);
            }
            else
            {
                int maxExp = playerCsv.GetMaxExpByLv(lv + 1);  // 下一级所需经验
                obj.SetPropNum(eCreatureProp.Exp, maxExp);
            }
            obj.SetPropNum(eCreatureProp.Lv, lv);

            // 表现层
            obj.UpdateUI_Exp();
        }