コード例 #1
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);
    }
コード例 #2
0
    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;
            }
        }
    }