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); }
void OnSkillItemLernClick(UISkillItem item) { SKTLearnResult r = _SkillMgr.SKTLearn(item.data._skillType); if (r == SKTLearnResult.SKTLearnResult_DontHaveEnoughExp) { if (_curTipCooldown >= _TipCooldown) { new PeTipMsg(PELocalization.GetString(8000159), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc); _curTipCooldown = 0; } } }