|
@@ -31,63 +31,71 @@ import net.sf.l2j.gameserver.serverpackets.SystemMessage;
|
|
|
public final class RequestGiveItemToPet extends L2GameClientPacket
|
|
|
{
|
|
|
private static final String REQUESTCIVEITEMTOPET__C__8B = "[C] 8B RequestGiveItemToPet";
|
|
|
+
|
|
|
private static Logger _log = Logger.getLogger(RequestGetItemFromPet.class.getName());
|
|
|
-
|
|
|
+
|
|
|
private int _objectId;
|
|
|
+
|
|
|
private int _amount;
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected void readImpl()
|
|
|
{
|
|
|
_objectId = readD();
|
|
|
- _amount = readD();
|
|
|
+ _amount = readD();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected void runImpl()
|
|
|
{
|
|
|
L2PcInstance player = getClient().getActiveChar();
|
|
|
- if (player == null || !(player.getPet() instanceof L2PetInstance)) return;
|
|
|
-
|
|
|
- // Alt game - Karma punishment
|
|
|
- if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && player.getKarma() > 0) return;
|
|
|
-
|
|
|
- if (player.getPrivateStoreType() != 0)
|
|
|
- {
|
|
|
- player.sendMessage("Cannot exchange items while trading");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // Exploit Fix for Hero weapons Uses pet Inventory to buy New One.
|
|
|
- // [L2JOneo]
|
|
|
- L2ItemInstance item = player.getInventory().getItemByObjectId(_objectId);
|
|
|
-
|
|
|
- if (item == null) return;
|
|
|
-
|
|
|
- if (item.isHeroItem())
|
|
|
- {
|
|
|
- player.sendMessage("Duo To Hero Weapons Protection u Canot Use Pet's Inventory");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- L2PetInstance pet = (L2PetInstance)player.getPet();
|
|
|
+ if (player == null || !(player.getPet() instanceof L2PetInstance))
|
|
|
+ return;
|
|
|
+
|
|
|
+ // Alt game - Karma punishment
|
|
|
+ if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && player.getKarma() > 0)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (player.getPrivateStoreType() != 0)
|
|
|
+ {
|
|
|
+ player.sendMessage("Cannot exchange items while trading");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Exploit Fix for Hero weapons Uses pet Inventory to buy New One.
|
|
|
+ // [L2JOneo]
|
|
|
+ L2ItemInstance item = player.getInventory().getItemByObjectId(_objectId);
|
|
|
+
|
|
|
+ if (item == null)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (item.isHeroItem())
|
|
|
+ {
|
|
|
+ player.sendMessage("Duo To Hero Weapons Protection u Canot Use Pet's Inventory");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.isAugmented())
|
|
|
+ return;
|
|
|
+
|
|
|
+ L2PetInstance pet = (L2PetInstance) player.getPet();
|
|
|
if (pet.isDead())
|
|
|
{
|
|
|
sendPacket(new SystemMessage(SystemMessageId.CANNOT_GIVE_ITEMS_TO_DEAD_PET));
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- if(_amount < 0)
|
|
|
+
|
|
|
+ if (_amount < 0)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (player.transferItem("Transfer", _objectId, _amount, pet.getInventory(), pet) == null)
|
|
|
{
|
|
|
_log.warning("Invalid item transfer request: " + pet.getName() + "(pet) --> " + player.getName());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public String getType()
|
|
|
{
|