Browse Source

Fix CREATE_ITEM work with L2Pet.

JIV 15 years ago
parent
commit
1c899b006e

+ 15 - 3
L2_GameServer/java/com/l2jserver/gameserver/skills/l2skills/L2SkillCreateItem.java

@@ -17,8 +17,11 @@ package com.l2jserver.gameserver.skills.l2skills;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.PetItemList;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.templates.StatsSet;
 import com.l2jserver.util.Rnd;
@@ -47,21 +50,30 @@ public class L2SkillCreateItem extends L2Skill
 	@Override
 	public void useSkill(L2Character activeChar, L2Object[] targets)
 	{
+		L2PcInstance player = activeChar.getActingPlayer();
 		if (activeChar.isAlikeDead())
 			return;
-		if (activeChar instanceof L2PcInstance)
+		if (activeChar instanceof L2Playable)
 		{
 			if (_createItemId == null || _createItemCount == 0)
 			{
 				SystemMessage sm = new SystemMessage(SystemMessageId.S1_PREPARED_FOR_REUSE);
 				sm.addSkillName(this);
-				activeChar.sendPacket(sm);
+				player.sendPacket(sm);
 				return;
 			}
 
 			int count = _createItemCount + Rnd.nextInt(_randomCount);
 			int rndid = Rnd.nextInt(_createItemId.length);
-			((L2PcInstance)activeChar).addItem("Skill", _createItemId[rndid], count, activeChar, true);
+			if (activeChar instanceof L2PcInstance)
+			{
+				player.addItem("Skill", _createItemId[rndid], count, activeChar, true);
+			}
+			else if (activeChar instanceof L2PetInstance)
+			{
+				activeChar.getInventory().addItem("Skill", _createItemId[rndid], count, player, activeChar);
+				player.sendPacket(new PetItemList((L2PetInstance) activeChar));
+			}
 		}
 	}
 }