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>

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • I think that solves the freeze thing, anyway great share! 
    • Introducing: Daily & Weekly Missions!   I've released a major panel update with a new Missions system and expanded language support.   Players can now complete daily and weekly missions directly through the panel and claim rewards such as balance or items. Mission progress is tied to in-game activity and supported panel actions, and the update also adds a dedicated Missions page, dashboard mission previews, claimable mission indicators, and full admin tools for creating and managing missions.   The Roll page now shows the potential reward drops below the roll container.   Alongside this, I’ve expanded the panel’s language support with new locale options, including Bulgarian, Czech, Georgian, Lithuanian, Polish, Romanian, Japanese, Simplified Chinese, and Traditional Chinese.     The Demo is now updated with the new features for you to try out!
    • I sell complete packs. If you want to add an item, NPC, etc., you have to do that yourselves. Your friend bought the pack; he's the one who needs to configure his server type. He received what he bought as agreed, and I'm saying this without knowing who you're talking about, because anyone who buys something receives what was agreed upon.   Regards. mmmmm L2Velmore ????   If that's the one, I see everything went well... if I remember correctly you were crying over $100, I gave you a better price, and I suppose you made thousands with that... And you're still coming back to complain? :=)
    • I know many people have struggled with this specific issue and had trouble setting up the correct behavior for Toggle skills in aCis. By default, toggles interrupt the player's movement (retail-like), which often feels clunky to players who prefer a smoother, more modern experience. I've prepared a clean solution that eliminates this "freeze" and allows for fluid movement while toggling your auras. Below is the code on how to achieve this. Hope it helps! Changes in PlayerAI.java: Modified doActiveIntention to properly update the active state without stalling. Removed the forced stop() during toggle casting. Added a MoveToLocation broadcast to ensure other players see your movement correctly (prevents visual "teleporting" or desync). Best regards 😃 diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java index ba0425a..1b2658d 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java @@ -28,6 +28,7 @@  import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;  import net.sf.l2j.gameserver.network.serverpackets.AutoAttackStart;  import net.sf.l2j.gameserver.network.serverpackets.ChairSit; +import net.sf.l2j.gameserver.network.serverpackets.MoveToLocation;  import net.sf.l2j.gameserver.network.serverpackets.MoveToLocationInVehicle;  import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn;  import net.sf.l2j.gameserver.network.serverpackets.StopMove; @@ -159,7 +160,10 @@      @Override      public synchronized void doActiveIntention()      { -        doIdleIntention(); +        prepareIntention(); +        _currentIntention.updateAsActive(); +        if (!getActor().isMoving()) +            thinkIdle();      }            @Override @@ -280,8 +284,9 @@                    if (skill.isToggle())          { -            getActor().getMove().stop();              getActor().getCast().doToggleCast(skill, target); +            if (getActor().isMoving()) +                getActor().broadcastPacket(new MoveToLocation(getActor()));          }          else          { https://pastebin.com/twZujZ3Y
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..