Jump to content

Recommended Posts

Posted
/*

* 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

 

Posted

Okay, it's a code but it's useless.

I'll tell you why.

1) Player's won't use it, since it will be insane to see mobs everywhere.

2) What's easier and better: To add this code, lose an item's use and spawn the mob, or to create a macro //spawn gremlin?

 

Anyway, thanks for sharing..

Posted

2) What's easier and better: To add this code, lose an item's use and spawn the mob, or to create a macro //spawn gremlin?

 

Next time look much better :

  private static int[] _npcLifeTime = { 20000 };
  • 3 weeks later...
  • 3 months later...
Posted

at interlude working? i have la2base pay version and i have errors:

 

D:\LA2Base\GameServer>ant
Buildfile: D:\LA2Base\GameServer\build.xml

compile:
    [javac] D:\LA2Base\GameServer\build.xml:43: warning: 'includeantruntime' was
not set, defaulting to build.sysclasspath=last; set to false for repeatable bui
lds
    [javac] Compiling 1 source file to D:\LA2Base\GameServer\build\classes
    [javac] D:\LA2Base\GameServer\java\net\sf\l2j\gameserver\handler\itemhandler
s\Buffer.java:35: class VendettaItem is public, should be declared in a file nam
ed VendettaItem.java
    [javac] public class VendettaItem implements IItemHandler
    [javac]        ^
    [javac] D:\LA2Base\GameServer\java\net\sf\l2j\gameserver\handler\itemhandler
s\Buffer.java:69: incomparable types: int[] and int
    [javac]          if (_itemIds == itemId)
    [javac]                       ^
    [javac] D:\LA2Base\GameServer\java\net\sf\l2j\gameserver\handler\itemhandler
s\Buffer.java:71: getTemplate(int) in net.sf.l2j.gameserver.datatables.NpcTable
cannot be applied to (int[])
    [javac]             template1 = NpcTable.getInstance().getTemplate(_npcIds);

    [javac]                                               ^
    [javac] D:\LA2Base\GameServer\java\net\sf\l2j\gameserver\handler\itemhandler
s\Buffer.java:72: incompatible types
    [javac] found   : int[]
    [javac] required: int
    [javac]             lifeTime = _npcLifeTime;
    [javac]                        ^
    [javac] D:\LA2Base\GameServer\java\net\sf\l2j\gameserver\handler\itemhandler
s\Buffer.java:85: spawnOne(boolean) in net.sf.l2j.gameserver.model.L2Spawn canno
t be applied to ()
    [javac]          L2World.getInstance().storeObject(spawn.spawnOne());
    [javac]                                                 ^
    [javac] 5 errors

BUILD FAILED
D:\LA2Base\GameServer\build.xml:43: Compile failed; see the compiler error outpu
t for details.

Total time: 11 seconds
D:\LA2Base\GameServer>

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...