Beispiel #1
0
    void UpGrade(ref int current, ref int max, ref int lvl, bool isPlayer)
    {
        if (current >= max)
        {
            PlayerLevelUpNode playerNode = FSDataNodeTable <PlayerLevelUpNode> .GetSingleton().FindDataByType(!isPlayer ? playerData.GetInstance().selfData.level : lvl);

            if (null == playerNode)
            {
                return;
            }
            if (!isPlayer)
            {
                if (lvl >= playerNode.heroLvLimit)
                {
                    current = max;
                    return;
                }
            }
            current -= max;
            lvl++;
            if (isPlayer)
            {
                max = playerNode.exp;
            }
            else
            {
                HeroUpGradeNode node = FSDataNodeTable <HeroUpGradeNode> .GetSingleton().FindDataByType(lvl);

                if (null == node)
                {
                    return;
                }
                max = node.exp;
            }
            if (current >= max)
            {
                UpGrade(ref current, ref max, ref lvl, isPlayer);
            }
            else
            {
                return;
            }
        }
    }
Beispiel #2
0
    /// <summary>
    /// 升级函数
    /// </summary>
    void UpGradeLevel()
    {
        if (hd.exps >= hd.maxExps)
        {
            hd.exps -= hd.maxExps;

            hd.lvl++;

            upGradelvl++;

            heroUpNode = FSDataNodeTable <HeroUpGradeNode> .GetSingleton().FindDataByType(hd.lvl);

            hd.maxExps = heroUpNode.exp;

            UpGradeLevel();
        }
        else
        {
            return;
        }
    }