Reworked Item giveSkillsToOwner method.

Thanks to veriongt.
This commit is contained in:
MobiusDevelopment
2024-04-15 00:33:41 +03:00
parent de4e7e7ae7
commit 19522ce00e
31 changed files with 633 additions and 316 deletions

View File

@@ -68,6 +68,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType;
import org.l2jmobius.gameserver.model.options.EnchantOptions;
import org.l2jmobius.gameserver.model.options.Options;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.functions.AbstractFunction;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.DropItem;
@@ -1741,21 +1742,23 @@ public class Item extends WorldObject
public void giveSkillsToOwner()
{
if (!hasPassiveSkills())
if (!isEquipped() && !hasPassiveSkills())
{
return;
}
final Player player = getActingPlayer();
if (player != null)
if (player == null)
{
for (SkillHolder sh : _itemTemplate.getSkills())
return;
}
for (SkillHolder holder : _itemTemplate.getSkills())
{
final Skill skill = holder.getSkill();
if (skill.isPassive())
{
if (sh.getSkill().isPassive())
{
player.addSkill(sh.getSkill(), false);
}
player.addSkill(skill, false);
}
}
}
@@ -1768,14 +1771,14 @@ public class Item extends WorldObject
}
final Player player = getActingPlayer();
if (player != null)
{
for (SkillHolder sh : _itemTemplate.getSkills())
for (SkillHolder holder : _itemTemplate.getSkills())
{
if (sh.getSkill().isPassive())
final Skill skill = holder.getSkill();
if (skill.isPassive())
{
player.removeSkill(sh.getSkill(), false, true);
player.removeSkill(skill, false, true);
}
}
}