void GLCHARLOGIC::LEARN_SKILL_NONSCROLL ( SNATIVEID skill_id )
{
PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( skill_id.wMainID, skill_id.wSubID );
if ( !pSkill ) return;
SKILL::SLEARN_LVL &sSKILL_LEARN_LVL = pSkill->m_sLEARN.sLVL_STEP[0];
if ( m_dwSkillPoint < sSKILL_LEARN_LVL.dwSKP ) return;
SCHARSKILL* pCharSkill = GETLEARNED_SKILL( skill_id );
if ( !pCharSkill )
{
if ( m_lnMoney < int(GLCONST_CHAR::lnSKILL_PREREQ[skill_id.wMainID][skill_id.wSubID])) return; // sSKILL_LEARN_LVL.dwMoneyReq ) return;
}
if ( m_lnVoteP < sSKILL_LEARN_LVL.dwVotePoint ) return;
if ( m_lnPremP < sSKILL_LEARN_LVL.dwPremPoint ) return;
m_dwSkillPoint -= sSKILL_LEARN_LVL.dwSKP;
if ( !pCharSkill )
{
m_lnMoney -= int(GLCONST_CHAR::lnSKILL_PREREQ[skill_id.wMainID][skill_id.wSubID]); //sSKILL_LEARN_LVL.dwMoneyReq;
}
m_lnVoteP -= sSKILL_LEARN_LVL.dwVotePoint;
m_lnPremP -= sSKILL_LEARN_LVL.dwPremPoint;
m_ExpSkills.insert ( std::make_pair(skill_id.dwID,SCHARSKILL(skill_id,0)) );
if ( pSkill->m_sBASIC.emROLE == SKILL::EMROLE_PASSIVE )
{
INIT_DATA ( FALSE, FALSE );
}
}