Jump to content

Recommended Posts

Posted

Well i was working on this .... and finaly i made it ....!!

 

You can add any item You want ... and wen the player press on it ... it show you some HTML , like Buffer ,teleport etc you can choose :)

 

Well let's start , This code made at l2jfree ... well you can make it and for other packs tested on l2j and work ..:) Just change the imports!

 

Go to gameserver/handler/itemhandlers and create one file like balloni.java  (ppl From Greece Don't Laugh :P )

 

And put this code inside of file ;

 

package com.l2jfree.gameserver.handler.itemhandlers;

import com.l2jfree.Config;
import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.GameServer;
import com.l2jfree.gameserver.cache.HtmCache;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.model.L2ItemInstance;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.model.actor.instance.L2PlayableInstance;



/**
* @author Cobra
*
*/
public class Balloni implements IItemHandler
{
private static final int[] ITEM_IDS = { 10639 };

public void useItem(L2PlayableInstance playable, L2ItemInstance item)
    {
      if (!(playable instanceof L2PcInstance))
         return;
      L2PcInstance activeChar = (L2PcInstance)playable;
       int itemId = item.getItemId();
      
   if (itemId == 10639)
       {
	String htmFile = "data/html/Teleport/Balloni.htm";
	String htmContent = HtmCache.getInstance().getHtm(htmFile);

		NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);
		infoHtml.setHtml(htmContent);
		activeChar.sendPacket(infoHtml);
       }
    }



    public int[] getItemIds()
    {
    	return ITEM_IDS;
    }
}   

 

Well those done ... now we need to regist those to gameserver/handler ItemHandler.java open it and regist the Balloni like registerItemHandler(new Balloni());

 

Compile Your core and you are done ...!!

 

I have put the mouse coin for this but feel free to change it :P

 

I think is useful for some ppl ... more thinks with java = - your lags on server :)

 

Well cye in next java Modify!

 

Best Regards Cobra!

 

 

 

 

Posted

PS : im talking about your title it's html code not htlm ^^

 

Oh thanks for the correction :P

 

LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL

 

Amazing Share !

 

+1 Karma For This By Me!

 

i will test it soon ! and i add this on my pack :D

 

Thanks Cobra You Are The Best !

 

Well thanks for the karma also we need more java modify .. no lags :)

Posted

When server loading i get this error:

Exception in thread "main" java.lang.NullPointerException
        at com.l2jfree.gameserver.handler.ItemHandler.registerItemHandler(ItemHa
ndler.java:122)
        at com.l2jfree.gameserver.handler.ItemHandler.<init>(ItemHandler.java:10
4)
        at com.l2jfree.gameserver.handler.ItemHandler.getInstance(ItemHandler.ja
va:45)
        at com.l2jfree.gameserver.GameServer.<init>(GameServer.java:352)
        at com.l2jfree.gameserver.GameServer.main(GameServer.java:444)

Posted

When server loading i get this error:

Exception in thread "main" java.lang.NullPointerException
        at com.l2jfree.gameserver.handler.ItemHandler.registerItemHandler(ItemHa
ndler.java:122)
        at com.l2jfree.gameserver.handler.ItemHandler.<init>(ItemHandler.java:10
4)
        at com.l2jfree.gameserver.handler.ItemHandler.getInstance(ItemHandler.ja
va:45)
        at com.l2jfree.gameserver.GameServer.<init>(GameServer.java:352)
        at com.l2jfree.gameserver.GameServer.main(GameServer.java:444)

 

Check  if you have register the Balloni at gameserver/handler ItemHandler.java

 

Like registerItemHandler(new Balloni()); Maybe for that reason it give you this error!

Posted

Check  if you have register the Balloni at gameserver/handler ItemHandler.java

 

Like registerItemHandler(new Balloni()); Maybe for that reason it give you this error!

Yes, i registered it.

EDIT:

Anyway i got working code. Thanks to Vaness11 from l2jfree forum.

package com.l2jfree.gameserver.handler.itemhandlers;

import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.cache.HtmCache;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfree.gameserver.model.L2ItemInstance;
import com.l2jfree.gameserver.model.actor.instance.L2PlayableInstance;


/**
* @author Cobra
*
*/
public class Balloni implements IItemHandler
{
private static final int[] ITEM_IDS = { 10639 };

public void useItem(L2PlayableInstance playable, L2ItemInstance item)
    {
      if (!(playable instanceof L2PcInstance))
         return;
      L2PcInstance activeChar = (L2PcInstance)playable;
       int itemId = item.getItemId();
      
   if (itemId == 10639)
       {
	String htmFile = "data/html/Teleport/Balloni.htm";
	String htmContent = HtmCache.getInstance().getHtm(htmFile);

		NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);
		infoHtml.setHtml(htmContent);
		activeChar.sendPacket(infoHtml);
       }
    }



    public int[] getItemIds()
    {
    	return ITEM_IDS;
    }
}  

But with this item you can't teleport. The bypass -h npc_%objectid%_goto doesnt work with items. So any solution?

Posted

the prob with all this is ..

 

all is dead (links), u must create new event handler for items at

 

requesttobypasstoserver.java

 

for links only (dont work for tp/bufer/gmshop) only to go next page

 

make this

 

after this

else if (_command.startsWith("player_help "))
		{
			playerHelp(activeChar, _command.substring(12));

 

Put This

 

else if (_command.startsWith("player_Balloni "))
		{
			playerBalloni(activeChar, _command.substring(12));

 

After go Down and after this

 

private void playerHelp(L2PcInstance activeChar, String path)
{
        if (path.indexOf("..") != -1)
            return;
        
        StringTokenizer st = new StringTokenizer(path);
        String[] cmd = st.nextToken().split("#");
        
        if (cmd.length > 1)
        {
        	int itemId = 0;
        	itemId = Integer.parseInt(cmd[1]);
        	String filename = "data/html/help/"+cmd[0];
        	NpcHtmlMessage html = new NpcHtmlMessage(1,itemId);
        	html.setFile(filename);
        	activeChar.sendPacket(html);
        }
        else
        {
        	String filename = "data/html/help/"+path;
        	NpcHtmlMessage html = new NpcHtmlMessage(1);
        	html.setFile(filename);
        	activeChar.sendPacket(html);
        }
}

 

ADD THIS

 

private void playerBalloni(L2PcInstance activeChar, String path)
{
        if (path.indexOf("..") != -1)
            return;
        
        StringTokenizer st = new StringTokenizer(path);
        String[] cmd = st.nextToken().split("#");
        
        if (cmd.length > 1)
        {
        	int itemId = 0;
        	itemId = Integer.parseInt(cmd[1]);
        	String filename = "data/html/Teleport/"+cmd[0];
        	NpcHtmlMessage html = new NpcHtmlMessage(1,itemId);
        	html.setFile(filename);
        	activeChar.sendPacket(html);
        }
        else
        {
        	String filename = "data/html/Teleport/"+path;
        	NpcHtmlMessage html = new NpcHtmlMessage(1);
        	html.setFile(filename);
        	activeChar.sendPacket(html);
        }
}

 

at HTML file as action put this

 

<a action="bypass -h player_Balloni name.htm#name">

 

Remember: This is only link for next html page nothing more u cant teleport/takebuff/gmshop

Posted

Yes, i registered it.

EDIT:

Anyway i got working code. Thanks to Vaness11 from l2jfree forum.

package com.l2jfree.gameserver.handler.itemhandlers;

import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.cache.HtmCache;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfree.gameserver.model.L2ItemInstance;
import com.l2jfree.gameserver.model.actor.instance.L2PlayableInstance;


/**
* @author Cobra
*
*/
public class Balloni implements IItemHandler
{
private static final int[] ITEM_IDS = { 10639 };

public void useItem(L2PlayableInstance playable, L2ItemInstance item)
    {
      if (!(playable instanceof L2PcInstance))
         return;
      L2PcInstance activeChar = (L2PcInstance)playable;
       int itemId = item.getItemId();
      
   if (itemId == 10639)
       {
	String htmFile = "data/html/Teleport/Balloni.htm";
	String htmContent = HtmCache.getInstance().getHtm(htmFile);

		NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);
		infoHtml.setHtml(htmContent);
		activeChar.sendPacket(infoHtml);
       }
    }



    public int[] getItemIds()
    {
    	return ITEM_IDS;
    }
}  

But with this item you can't teleport. The bypass -h npc_%objectid%_goto doesnt work with items. So any solution?

 

You need to create a bypass HTLM like  <a action="bypass -h npc_%objectId%_Balloni">Teleport</a>

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...