public ulong GetNextExpBySkillType(int skillType) { SkillTreeUnit skill = FindSkillUnit(skillType); SkillTreeUnit nextSkill; if (skill != null) { int nextLevel = skill._level + 1; nextSkill = SkillTreeInfo.GetSkillUnit(skillType, nextLevel); if (nextSkill != null) { return(nextSkill._exp); } else { return(0); } } else { nextSkill = SkillTreeInfo.GetMinLevelSkillByType(skillType); if (nextSkill != null) { return(nextSkill._exp); } else { return(0); } } }
public SKTLearnResult SKTLearn(int skillType) { SkillTreeUnit skill = FindSkillUnit(skillType); SkillTreeUnit nextSkill; if (skill != null) { int nextLevel = skill._level + 1; nextSkill = SkillTreeInfo.GetSkillUnit(skillType, nextLevel); if (nextSkill != null) { SKTLearnResult result = CheckLevelUpCondition(nextSkill); if (result != SKTLearnResult.SKTLearnResult_Success) { return(result); } if (!DecExp(nextSkill._exp)) { return(SKTLearnResult.SKTLearnResult_DontHaveEnoughExp); } RemoveSkillUnit(skill); AddSkillUnit(nextSkill); } else { return(SKTLearnResult.SKTLearnResult_DataError); } } else { nextSkill = SkillTreeInfo.GetMinLevelSkillByType(skillType); if (nextSkill != null) { SKTLearnResult result = CheckLevelUpCondition(nextSkill); if (result != SKTLearnResult.SKTLearnResult_Success) { return(result); } if (!DecExp(nextSkill._exp)) { return(SKTLearnResult.SKTLearnResult_DontHaveEnoughExp); } ; AddSkillUnit(nextSkill); } else { return(SKTLearnResult.SKTLearnResult_DataError); } } SkillTreeInfo.RefreshUI(nextSkill._mainType); if (GameConfig.IsMultiMode && _net != null) { _net.RPCServer(EPacketType.PT_InGame_SKTLevelUp, skillType, PlayerNetwork.mainPlayerId); } return(SKTLearnResult.SKTLearnResult_Success); }