Weight limit check for extractable items.

This commit is contained in:
MobiusDev
2016-08-14 20:36:10 +00:00
parent 937a2006a6
commit c579e8a7d8
7 changed files with 36 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet; import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect; import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.L2EffectType;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance; import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.SystemMessageId; import com.l2jmobius.gameserver.network.SystemMessageId;
@@ -80,4 +81,10 @@ public final class Restoration extends AbstractEffect
effected.getActingPlayer().sendPacket(new PetItemList(effected.getInventory().getItems())); effected.getActingPlayer().sendPacket(new PetItemList(effected.getInventory().getItems()));
} }
} }
@Override
public L2EffectType getEffectType()
{
return L2EffectType.EXTRACT_ITEM;
}
} }

View File

@@ -26,6 +26,7 @@ import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.effects.AbstractEffect; import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.L2EffectType;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance; import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.skills.Skill;
@@ -104,4 +105,10 @@ public final class RestorationRandom extends AbstractEffect
player.addItem("Extract", createdItem.getId(), (long) (createdItem.getCount() * Config.RATE_EXTRACTABLE), effector, true); player.addItem("Extract", createdItem.getId(), (long) (createdItem.getCount() * Config.RATE_EXTRACTABLE), effector, true);
} }
} }
@Override
public L2EffectType getEffectType()
{
return L2EffectType.EXTRACT_ITEM;
}
} }

View File

@@ -57,6 +57,12 @@ public class ExtractableItems implements IItemHandler
return false; return false;
} }
if (!activeChar.isInventoryUnder80(false))
{
activeChar.sendPacket(SystemMessageId.YOU_VE_EXCEEDED_THE_LIMIT_AND_CANNOT_RETRIEVE_THE_ITEM_PLEASE_CHECK_YOUR_LIMIT_IN_THE_INVENTORY);
return false;
}
// destroy item // destroy item
if (!activeChar.destroyItem("Extract", item.getObjectId(), 1, activeChar, true)) if (!activeChar.destroyItem("Extract", item.getObjectId(), 1, activeChar, true))
{ {

View File

@@ -57,6 +57,12 @@ public class FatedSupportBox implements IItemHandler
final Race race = player.getRace(); final Race race = player.getRace();
final ClassId classId = player.getClassId(); final ClassId classId = player.getClassId();
if (!player.isInventoryUnder80(false))
{
player.sendPacket(SystemMessageId.YOU_VE_EXCEEDED_THE_LIMIT_AND_CANNOT_RETRIEVE_THE_ITEM_PLEASE_CHECK_YOUR_LIMIT_IN_THE_INVENTORY);
return false;
}
// Characters that have gone through their 2nd class transfer/1st liberation will be able to open the Fated Support Box at level 40. // Characters that have gone through their 2nd class transfer/1st liberation will be able to open the Fated Support Box at level 40.
if ((player.getLevel() < 40) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP) || ((race != Race.ERTHEIA) && player.isInCategory(CategoryType.SECOND_CLASS_GROUP))) if ((player.getLevel() < 40) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP) || ((race != Race.ERTHEIA) && player.isInCategory(CategoryType.SECOND_CLASS_GROUP)))
{ {

View File

@@ -79,6 +79,13 @@ public class ItemSkillsTemplate implements IItemHandler
if (itemSkill != null) if (itemSkill != null)
{ {
if (itemSkill.hasEffectType(L2EffectType.EXTRACT_ITEM) && (playable.getActingPlayer() != null) && !playable.getActingPlayer().isInventoryUnder80(false))
{
playable.getActingPlayer().sendPacket(SystemMessageId.YOU_VE_EXCEEDED_THE_LIMIT_AND_CANNOT_RETRIEVE_THE_ITEM_PLEASE_CHECK_YOUR_LIMIT_IN_THE_INVENTORY);
return false;
}
if (itemSkill.getItemConsumeId() > 0) if (itemSkill.getItemConsumeId() > 0)
{ {
hasConsumeSkill = true; hasConsumeSkill = true;

View File

@@ -12696,7 +12696,7 @@ public final class L2PcInstance extends L2Playable
} }
/** /**
* Test if player inventory is under 90% capaity * Test if player inventory is under 90% capacity
* @param includeQuestInv check also quest inventory * @param includeQuestInv check also quest inventory
* @return * @return
*/ */
@@ -12706,7 +12706,7 @@ public final class L2PcInstance extends L2Playable
} }
/** /**
* Test if player inventory is under 80% capaity * Test if player inventory is under 80% capacity
* @param includeQuestInv check also quest inventory * @param includeQuestInv check also quest inventory
* @return * @return
*/ */

View File

@@ -32,6 +32,7 @@ public enum L2EffectType
MAGICAL_DMG_OVER_TIME, MAGICAL_DMG_OVER_TIME,
DEATH_LINK, DEATH_LINK,
BLOCK_CONTROL, BLOCK_CONTROL,
EXTRACT_ITEM,
FISHING, FISHING,
FISHING_START, FISHING_START,
HATE, HATE,