}
public int getSkillCost(L2PcInstance player, L2Skill skill)
{
int skillCost = 100000000;
ClassId classId = player.getSkillLearningClassId();
int skillHashCode = SkillTable.getSkillHashCode(skill);
if(getSkillTrees().get(classId).containsKey(skillHashCode))
{
L2SkillLearn skillLearn = getSkillTrees().get(classId).get(skillHashCode);
if(skillLearn.getMinLevel() <= player.getLevel())
{
skillCost = skillLearn.getSpCost();
if(!player.getClassId().equalsOrChildOf(classId))
{
if(skill.getCrossLearnAdd() < 0)
return skillCost;
skillCost += skill.getCrossLearnAdd();
skillCost *= skill.getCrossLearnMul();
}
if(classId.getRace() != player.getRace() && !player.isSubClassActive())
{
skillCost *= skill.getCrossLearnRace();
}
if(classId.isMage() != player.getClassId().isMage())
{
skillCost *= skill.getCrossLearnProf();
}
}
}