Bad RequestBypassToServer:
java.lang.NullPointerException
at net.sf.l2j.gameserver.handler.SkillLearnModTable.isStacking(SkillLear
nModTable.java:115)
at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.giveAvailable
Skills(L2PcInstance.java:2243)
at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.rewardSkills(
L2PcInstance.java:2186)
at net.sf.l2j.gameserver.model.actor.instance.L2ClassMasterInstance.onBy
passFeedback(L2ClassMasterInstance.java:279)
at net.sf.l2j.gameserver.clientpackets.RequestBypassToServer.runImpl(Req
uestBypassToServer.java:107)
at net.sf.l2j.gameserver.clientpackets.L2GameClientPacket.run(L2GameClie
ntPacket.java:76)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
===================================================================================
@L2PCInstance.java
/**
* Give all available skills to the player.
*
*/
private void giveAvailableSkills()
{
int unLearnable = 0;
int skillCounter = 0;
// Get available skills
L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(this, getClassId());
while (skills.length > unLearnable)
{
for (int i = 0; i < skills.length; i++)
{
L2SkillLearn s = skills[i];
L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());
if (sk == null || !sk.getCanLearn(getClassId()) || (sk.getId() == L2Skill.SKILL_DIVINE_INSPIRATION && !Config.AUTO_LEARN_DIVINE_INSPIRATION) || !SkillLearnModTable.getInstance().isStacking(_activeRequester, i))
{
unLearnable++;
continue;
}
if (getSkillLevel(sk.getId()) == -1)
skillCounter++;
addSkill(sk, true);
}
// Get new available skills
skills = SkillTreeTable.getInstance().getAvailableSkills(this, getClassId());
}
sendMessage("You have learned " + skillCounter + " new skills.");
}
That's what I changed :P Line 42