Change class should not remove equipped item skills.
This commit is contained in:
parent
04d2ed51da
commit
c043af33f8
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1467,11 +1469,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1469,11 +1471,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1471,10 +1473,30 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(currentClass, hashCode) && !isRemoveSkill(currentClass, skill.getId()) && !isAwakenSaveSkill(currentClass, skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
while (currentClass.getParent() != null)
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
@ -50,9 +50,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1457,10 +1459,30 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(currentClass, hashCode) && !isRemoveSkill(currentClass, skill.getId()) && !isAwakenSaveSkill(currentClass, skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
while (currentClass.getParent() != null)
|
||||
|
@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.base.SocialClass;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
@ -1455,11 +1457,31 @@ public class SkillTreesData implements IXmlReader
|
||||
final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl);
|
||||
|
||||
if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel()))
|
||||
{
|
||||
// Do not remove equipped item skills.
|
||||
boolean isItemSkill = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills();
|
||||
if (itemSkills != null)
|
||||
{
|
||||
for (ItemSkillHolder itemSkillHolder : itemSkills)
|
||||
{
|
||||
if (itemSkillHolder.getSkillId() == skill.getId())
|
||||
{
|
||||
isItemSkill = true;
|
||||
break SEARCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isItemSkill)
|
||||
{
|
||||
player.removeSkill(skill, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user