Do not drop items when casting known skills to avoid exploits.
This commit is contained in:
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
|||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.Skill;
|
||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
@@ -55,17 +56,27 @@ public class RequestDropItem extends ClientBasePacket
|
|||||||
_log.warning("tried to drop an item that is not in the inventory ?!?:" + objectId);
|
_log.warning("tried to drop an item that is not in the inventory ?!?:" + objectId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final int oldCount = oldItem.getCount();
|
final int oldCount = oldItem.getCount();
|
||||||
ItemInstance dropedItem = null;
|
ItemInstance dropedItem = null;
|
||||||
if (oldCount < count)
|
if (oldCount < count)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((activeChar.getDistance(x, y) > 150.0) || (Math.abs(z - activeChar.getZ()) > 50))
|
if ((activeChar.getDistance(x, y) > 150.0) || (Math.abs(z - activeChar.getZ()) > 50))
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(new SystemMessage(SystemMessage.CANNOT_DISCARD_DISTANCE_TOO_FAR));
|
activeChar.sendPacket(new SystemMessage(SystemMessage.CANNOT_DISCARD_DISTANCE_TOO_FAR));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
final Skill skill = activeChar.getSkill();
|
||||||
|
if ((skill != null) && activeChar.isSkillDisabled(skill.getId()) && (activeChar.getSkillLevel(skill.getId()) > 0))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (oldItem.isEquipped())
|
if (oldItem.isEquipped())
|
||||||
{
|
{
|
||||||
dropedItem = activeChar.getInventory().dropItem(objectId, count);
|
dropedItem = activeChar.getInventory().dropItem(objectId, count);
|
||||||
@@ -82,6 +93,7 @@ public class RequestDropItem extends ClientBasePacket
|
|||||||
dropedItem.setY(y);
|
dropedItem.setY(y);
|
||||||
dropedItem.setZ(z);
|
dropedItem.setZ(z);
|
||||||
dropedItem.setOnTheGround(true);
|
dropedItem.setOnTheGround(true);
|
||||||
|
|
||||||
final DropItem di = new DropItem(dropedItem, activeChar.getObjectId());
|
final DropItem di = new DropItem(dropedItem, activeChar.getObjectId());
|
||||||
activeChar.sendPacket(di);
|
activeChar.sendPacket(di);
|
||||||
activeChar.addKnownObjectWithoutCreate(dropedItem);
|
activeChar.addKnownObjectWithoutCreate(dropedItem);
|
||||||
@@ -89,6 +101,7 @@ public class RequestDropItem extends ClientBasePacket
|
|||||||
{
|
{
|
||||||
player.addKnownObjectWithoutCreate(dropedItem);
|
player.addKnownObjectWithoutCreate(dropedItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
final InventoryUpdate iu = new InventoryUpdate();
|
final InventoryUpdate iu = new InventoryUpdate();
|
||||||
if (oldCount == dropedItem.getCount())
|
if (oldCount == dropedItem.getCount())
|
||||||
{
|
{
|
||||||
@@ -99,6 +112,7 @@ public class RequestDropItem extends ClientBasePacket
|
|||||||
iu.addModifiedItem(oldItem);
|
iu.addModifiedItem(oldItem);
|
||||||
}
|
}
|
||||||
activeChar.sendPacket(iu);
|
activeChar.sendPacket(iu);
|
||||||
|
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessage.YOU_DROPPED_S1);
|
final SystemMessage sm = new SystemMessage(SystemMessage.YOU_DROPPED_S1);
|
||||||
sm.addItemName(dropedItem.getItemId());
|
sm.addItemName(dropedItem.getItemId());
|
||||||
activeChar.sendPacket(sm);
|
activeChar.sendPacket(sm);
|
||||||
|
@@ -165,16 +165,24 @@ public class RequestDropItem extends GameClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cannot discard item that the skill is consuming.
|
|
||||||
if (player.isCastingNow())
|
if (player.isCastingNow())
|
||||||
{
|
{
|
||||||
final SkillDat skillDat = player.getCurrentSkill();
|
final SkillDat skill = player.getCurrentSkill();
|
||||||
if ((skillDat != null) && (skillDat.getSkill().getItemConsumeId() == item.getItemId()) //
|
if (skill != null)
|
||||||
&& ((player.getInventory().getInventoryItemCount(item.getItemId(), -1) - skillDat.getSkill().getItemConsume()) < _count))
|
{
|
||||||
|
// Cannot discard item that the skill is consuming.
|
||||||
|
if ((skill.getSkill().getItemConsumeId() == item.getItemId()) && ((player.getInventory().getInventoryItemCount(item.getItemId(), -1) - skill.getSkill().getItemConsume()) < _count))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.getKnownSkill(skill.getSkillId()) != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.isGM())
|
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.isGM())
|
||||||
|
@@ -140,28 +140,44 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cannot discard item that the skill is consuming.
|
|
||||||
if (player.isCastingNow())
|
if (player.isCastingNow())
|
||||||
{
|
{
|
||||||
final SkillUseHolder skill = player.getCurrentSkill();
|
final SkillUseHolder skill = player.getCurrentSkill();
|
||||||
if ((skill != null) && (skill.getSkill().getItemConsumeId() == item.getId()) //
|
if (skill != null)
|
||||||
&& ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getSkill().getItemConsumeCount()) < _count))
|
{
|
||||||
|
// Cannot discard item that the skill is consuming.
|
||||||
|
if ((skill.getSkill().getItemConsumeId() == item.getId()) && ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getSkill().getItemConsumeCount()) < _count))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.getKnownSkill(skill.getSkillId()) != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cannot discard item that the skill is consuming.
|
|
||||||
if (player.isCastingSimultaneouslyNow())
|
if (player.isCastingSimultaneouslyNow())
|
||||||
{
|
{
|
||||||
final Skill skill = player.getLastSimultaneousSkillCast();
|
final Skill skill = player.getLastSimultaneousSkillCast();
|
||||||
if ((skill != null) && (skill.getItemConsumeId() == item.getId()) //
|
if (skill != null)
|
||||||
&& ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getItemConsumeCount()) < _count))
|
{
|
||||||
|
// Cannot discard item that the skill is consuming.
|
||||||
|
if ((skill.getItemConsumeId() == item.getId()) && ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getItemConsumeCount()) < _count))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.getKnownSkill(skill.getId()) != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS))
|
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS))
|
||||||
|
@@ -140,28 +140,44 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cannot discard item that the skill is consuming.
|
|
||||||
if (player.isCastingNow())
|
if (player.isCastingNow())
|
||||||
{
|
{
|
||||||
final SkillUseHolder skill = player.getCurrentSkill();
|
final SkillUseHolder skill = player.getCurrentSkill();
|
||||||
if ((skill != null) && (skill.getSkill().getItemConsumeId() == item.getId()) //
|
if (skill != null)
|
||||||
&& ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getSkill().getItemConsumeCount()) < _count))
|
{
|
||||||
|
// Cannot discard item that the skill is consuming.
|
||||||
|
if ((skill.getSkill().getItemConsumeId() == item.getId()) && ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getSkill().getItemConsumeCount()) < _count))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.getKnownSkill(skill.getSkillId()) != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cannot discard item that the skill is consuming.
|
|
||||||
if (player.isCastingSimultaneouslyNow())
|
if (player.isCastingSimultaneouslyNow())
|
||||||
{
|
{
|
||||||
final Skill skill = player.getLastSimultaneousSkillCast();
|
final Skill skill = player.getLastSimultaneousSkillCast();
|
||||||
if ((skill != null) && (skill.getItemConsumeId() == item.getId()) //
|
if (skill != null)
|
||||||
&& ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getItemConsumeCount()) < _count))
|
{
|
||||||
|
// Cannot discard item that the skill is consuming.
|
||||||
|
if ((skill.getItemConsumeId() == item.getId()) && ((player.getInventory().getInventoryItemCount(item.getId(), -1) - skill.getItemConsumeCount()) < _count))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.getKnownSkill(skill.getId()) != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS))
|
if ((Item.TYPE2_QUEST == item.getItem().getType2()) && !player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS))
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
@@ -22,11 +22,14 @@ import org.l2jmobius.gameserver.data.xml.impl.AdminData;
|
|||||||
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
import org.l2jmobius.gameserver.enums.PrivateStoreType;
|
||||||
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
import org.l2jmobius.gameserver.model.PlayerCondOverride;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
import org.l2jmobius.gameserver.model.items.type.ActionType;
|
||||||
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.items.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
@@ -168,6 +171,24 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not drop items when casting known skills to avoid exploits.
|
||||||
|
if (player.isCastingNow())
|
||||||
|
{
|
||||||
|
for (SkillCaster skillCaster : player.getSkillCasters())
|
||||||
|
{
|
||||||
|
final Skill skill = skillCaster.getSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final SkillUseHolder skill = player.getQueuedSkill();
|
||||||
|
if ((skill != null) && (player.getKnownSkill(skill.getSkillId()) != null))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
player.getInventory().unEquipItemInSlot(item.getLocationSlot());
|
||||||
|
Reference in New Issue
Block a user