ClassMaster auto learn skill fixes.
This commit is contained in:
parent
4756112896
commit
79646b1e2a
@ -52,7 +52,6 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLogin
|
|||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
||||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
||||||
@ -403,19 +402,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
{
|
|
||||||
if (Config.AUTO_LEARN_SKILLS) // needs better cleanup
|
|
||||||
{
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId().getParent(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.removeSkill(skill, true);
|
|
||||||
}
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.addSkill(skill, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
@ -423,6 +409,9 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
}
|
}
|
||||||
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
@ -802,6 +791,20 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
|
{
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
|
}
|
||||||
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4219,7 +4219,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
// Remove all its Func objects from the L2Character calculator set
|
// Remove all its Func objects from the L2Character calculator set
|
||||||
if (oldSkill != null)
|
if (oldSkill != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Stop casting if this skill is used right now
|
// Stop casting if this skill is used right now
|
||||||
abortCast(s -> s.getSkill().getId() == skillId);
|
abortCast(s -> s.getSkill().getId() == skillId);
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLogin
|
|||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
||||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
||||||
@ -403,19 +402,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
{
|
|
||||||
if (Config.AUTO_LEARN_SKILLS) // needs better cleanup
|
|
||||||
{
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId().getParent(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.removeSkill(skill, true);
|
|
||||||
}
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.addSkill(skill, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
@ -423,6 +409,9 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
}
|
}
|
||||||
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
@ -802,6 +791,20 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
|
{
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
|
}
|
||||||
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4223,7 +4223,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
// Remove all its Func objects from the L2Character calculator set
|
// Remove all its Func objects from the L2Character calculator set
|
||||||
if (oldSkill != null)
|
if (oldSkill != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Stop casting if this skill is used right now
|
// Stop casting if this skill is used right now
|
||||||
abortCast(s -> s.getSkill().getId() == skillId);
|
abortCast(s -> s.getSkill().getId() == skillId);
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLogin
|
|||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
||||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
||||||
@ -403,19 +402,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
{
|
|
||||||
if (Config.AUTO_LEARN_SKILLS) // needs better cleanup
|
|
||||||
{
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId().getParent(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.removeSkill(skill, true);
|
|
||||||
}
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.addSkill(skill, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
@ -423,6 +409,9 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
}
|
}
|
||||||
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
@ -802,6 +791,20 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
|
{
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
|
}
|
||||||
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4223,7 +4223,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
// Remove all its Func objects from the L2Character calculator set
|
// Remove all its Func objects from the L2Character calculator set
|
||||||
if (oldSkill != null)
|
if (oldSkill != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Stop casting if this skill is used right now
|
// Stop casting if this skill is used right now
|
||||||
abortCast(s -> s.getSkill().getId() == skillId);
|
abortCast(s -> s.getSkill().getId() == skillId);
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLogin
|
|||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
||||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
||||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
||||||
@ -371,19 +370,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
{
|
|
||||||
if (Config.AUTO_LEARN_SKILLS) // needs better cleanup
|
|
||||||
{
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId().getParent(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.removeSkill(skill, true);
|
|
||||||
}
|
|
||||||
for (Skill skill : SkillTreesData.getInstance().getAllAvailableSkills(player, player.getClassId(), Config.AUTO_LEARN_FS_SKILLS, true))
|
|
||||||
{
|
|
||||||
player.addSkill(skill, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
@ -391,6 +377,9 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
}
|
}
|
||||||
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
@ -770,6 +759,20 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
|
if (player.isInCategory(CategoryType.AWAKEN_GROUP))
|
||||||
|
{
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
|
{
|
||||||
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
||||||
|
}
|
||||||
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class and the money payed for class change.
|
||||||
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4223,7 +4223,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
// Remove all its Func objects from the L2Character calculator set
|
// Remove all its Func objects from the L2Character calculator set
|
||||||
if (oldSkill != null)
|
if (oldSkill != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Stop casting if this skill is used right now
|
// Stop casting if this skill is used right now
|
||||||
abortCast(s -> s.getSkill().getId() == skillId);
|
abortCast(s -> s.getSkill().getId() == skillId);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user