Jump to content

[Share] Pres on a item and spawn a mob


Recommended Posts

/*

* This program is free software: you can redistribute it and/or modify it under

* the terms of the GNU General Public License as published by the Free Software

* Foundation, either version 3 of the License, or (at your option) any later

* version.

*

* This program is distributed in the hope that it will be useful, but WITHOUT

* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

* details.

*

* You should have received a copy of the GNU General Public License along with

* this program. If not, see <http://www.gnu.org/licenses/>.

*/

package net.sf.l2j.gameserver.handler.itemhandlers;

 

import net.sf.l2j.gameserver.ThreadPoolManager;

import net.sf.l2j.gameserver.datatables.NpcTable;

import net.sf.l2j.gameserver.handler.IItemHandler;

import net.sf.l2j.gameserver.idfactory.IdFactory;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.L2Spawn;

import net.sf.l2j.gameserver.model.L2World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;

import net.sf.l2j.gameserver.network.SystemMessageId;

import net.sf.l2j.gameserver.serverpackets.SystemMessage;

import net.sf.l2j.gameserver.templates.L2NpcTemplate;

 

/**

* @author x.v3ndetta@yahoo.com

*

*/

public class VendettaItem implements IItemHandler

{

public class DeSpawnScheduleTimerTask implements Runnable

{

L2Spawn spawnedPlant = null;

 

public DeSpawnScheduleTimerTask(L2Spawn spawn)

{

spawnedPlant = spawn;

}

 

public void run()

{

try

{

spawnedPlant.getLastSpawn().decayMe();

} catch (Throwable t)

{

}

}

}

 

private static int[] _itemIds = { 6391 };

private static int[] _npcIds = { 18342 };

private static int[] _npcLifeTime = { 20000 };

 

public void useItem(L2PlayableInstance playable, L2ItemInstance item)

{

L2PcInstance activeChar = (L2PcInstance) playable;

L2NpcTemplate template1 = null;

int lifeTime = 0;

int itemId = item.getItemId();

for (int i = 0; i < _itemIds.length; i++)

{

if (_itemIds == itemId)

{

template1 = NpcTable.getInstance().getTemplate(_npcIds);

lifeTime = _npcLifeTime;

break;

}

}

if (template1 == null)

return;

try

{

L2Spawn spawn = new L2Spawn(template1);

spawn.setId(IdFactory.getInstance().getNextId());

spawn.setLocx(activeChar.getX());

spawn.setLocy(activeChar.getY());

spawn.setLocz(activeChar.getZ());

L2World.getInstance().storeObject(spawn.spawnOne());

ThreadPoolManager.getInstance().scheduleGeneral(new DeSpawnScheduleTimerTask(spawn), lifeTime);

activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false);

} catch (Exception e)

{

SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);

sm.addString("Exception in useItem() of VendettaItem.java");

activeChar.sendPacket(sm);

}

}

 

public int[] getItemIds()

{

return _itemIds;

}

}

 

Credits: me !

Item: Pollen

Mob: Gremlin

 

Link to comment
Share on other sites

  • 5 months later...
Guest
This topic is now closed to further replies.


×
×
  • Create New...