Try this:
Index: src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java
===================================================================
--- src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java (revision 8804)
+++ src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java (working copy)
@@ -18,6 +18,7 @@
import com.l2jfree.gameserver.ThreadPoolManager;
import com.l2jfree.gameserver.datatables.NpcTable;
import com.l2jfree.gameserver.datatables.SummonItemsData;
+import com.l2jfree.gameserver.datatables.SpawnTable;
import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.idfactory.IdFactory;
import com.l2jfree.gameserver.instancemanager.ClanHallManager;
@@ -134,6 +135,8 @@
spawn.setLocx(activeChar.getX());
spawn.setLocy(activeChar.getY());
spawn.setLocz(activeChar.getZ());
+ UnSpawn unSpawn = new UnSpawn(spawn);
+ ThreadPoolManager.getInstance().scheduleGeneral(unSpawn, 600000);
L2World.getInstance().storeObject(spawn.spawnOne(true));
activeChar.destroyItem("Summon", item.getObjectId(), 1, null, false);
activeChar.sendMessage("Created " + npcTemplate.getName() + " at x: " + spawn.getLocx() + " y: " + spawn.getLocy() + " z: " + spawn.getLocz());
@@ -285,6 +288,23 @@
petSummon.broadcastStatusUpdate();
}
}
+
+ private class UnSummon implements Runnable
+ {
+ private L2Spawn spawn;
+
+ private UnSummon(L2Spawn spawn)
+ {
+ this.spawn = spawn;
+ }
+
+ @Override
+ public void run()
+ {
+ SpawnTable.getInstance().deleteSpawn(spawn, false);
+ spawn.getLastSpawn().deleteMe();
+ }
+ }
@Override
public int[] getItemIds()