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; } } }
/// <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; } }