Adjustments for cleanSkillUponChangeClass calls.
This commit is contained in:
parent
88570ccc47
commit
30bad9f604
@ -419,18 +419,21 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
{
|
{
|
||||||
|
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
{
|
{
|
||||||
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)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true);
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_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();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
@ -858,18 +861,21 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
{
|
{
|
||||||
|
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
{
|
{
|
||||||
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)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true);
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_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();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
@ -421,14 +421,15 @@ public class AdminEditChar implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true);
|
|
||||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
{
|
{
|
||||||
|
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true);
|
||||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
{
|
{
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
player.store(false);
|
player.store(false);
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
@ -102,18 +102,21 @@ public class ExRequestClassChange implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
{
|
{
|
||||||
|
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); // TODO: Move to skill learn method?
|
||||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
{
|
{
|
||||||
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)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true);
|
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, Config.AUTO_LEARN_FP_SKILLS, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
@ -33,7 +33,6 @@ import org.l2jmobius.Config;
|
|||||||
import org.l2jmobius.commons.util.IXmlReader;
|
import org.l2jmobius.commons.util.IXmlReader;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
|
import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
|
import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
|
|
||||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||||
import org.l2jmobius.gameserver.enums.CategoryType;
|
import org.l2jmobius.gameserver.enums.CategoryType;
|
||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
@ -384,13 +383,13 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
// {
|
// {
|
||||||
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
// {
|
// {
|
||||||
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
// }
|
// }
|
||||||
|
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||||
// }
|
// }
|
||||||
if (Config.AUTO_LEARN_SKILLS)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
@ -793,13 +792,13 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
// {
|
// {
|
||||||
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
// {
|
// {
|
||||||
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
// }
|
// }
|
||||||
|
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||||
// }
|
// }
|
||||||
if (Config.AUTO_LEARN_SKILLS)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
|
@ -32,7 +32,6 @@ import org.l2jmobius.Config;
|
|||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
|
import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
|
import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
|
|
||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.enums.SubclassInfoType;
|
import org.l2jmobius.gameserver.enums.SubclassInfoType;
|
||||||
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
||||||
@ -414,7 +413,10 @@ public class AdminEditChar implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true);
|
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
|
// {
|
||||||
|
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||||
|
// }
|
||||||
player.store(false);
|
player.store(false);
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
@ -19,13 +19,16 @@ package org.l2jmobius.gameserver.network.clientpackets.classchange;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.network.PacketReader;
|
import org.l2jmobius.commons.network.PacketReader;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
|
import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
|
|
||||||
import org.l2jmobius.gameserver.enums.CategoryType;
|
import org.l2jmobius.gameserver.enums.CategoryType;
|
||||||
|
import org.l2jmobius.gameserver.enums.UserInfoType;
|
||||||
|
import org.l2jmobius.gameserver.model.ElementalSpirit;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Mobius
|
* @author Mobius
|
||||||
@ -94,11 +97,32 @@ public class ExRequestClassChange implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
player.setBaseClass(player.getActiveClass());
|
player.setBaseClass(player.getActiveClass());
|
||||||
}
|
}
|
||||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
|
||||||
|
// Elemental Spirits.
|
||||||
|
if (player.isInCategory(CategoryType.THIRD_CLASS_GROUP))
|
||||||
|
{
|
||||||
|
if (player.getSpirits() == null)
|
||||||
|
{
|
||||||
|
player.initElementalSpirits();
|
||||||
|
}
|
||||||
|
for (ElementalSpirit spirit : player.getSpirits())
|
||||||
|
{
|
||||||
|
if (spirit.getStage() == 0)
|
||||||
|
{
|
||||||
|
spirit.upgrade();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final UserInfo userInfo = new UserInfo(player);
|
||||||
|
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||||
|
player.sendPacket(userInfo);
|
||||||
|
player.sendPacket(new ElementalSpiritInfo(player, player.getActiveElementalSpiritType(), (byte) 0x01));
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.AUTO_LEARN_SKILLS)
|
if (Config.AUTO_LEARN_SKILLS)
|
||||||
{
|
{
|
||||||
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
|
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.
|
player.store(false); // Save player cause if server crashes before this char is saved, he will lose class.
|
||||||
player.broadcastUserInfo();
|
player.broadcastUserInfo();
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
Loading…
Reference in New Issue
Block a user