Jump to content
  • 0

Tattoos updater


Question

Posted

Hello, I need your help. I need to create NPC that will check lvl tattoo (7 lvl tattoo), and depending on what lvl you, when you click "Upgrade", gets some reward and your tattoo, and then gives the better tattoo. Please tell me at least a template script or function to give, take, check.

Script in JAVA!

Recommended Posts

  • 0
Posted

do a bypass of the voiced command they give you...

But all gamers can write in chat: .upgrade (if they know this command)

I don't want this. I want do instance java file, and do bypass to him

 

P.S. If I wrong, sory

  • 0
Posted

Edit L2SymbolMakerInstance (if you count to reuse existing instance) and add whatever on onBypassFeedback.

 

Your code can be seriously cutted up also, using a loop (find id for item you destroy, and give id +1 for the item you want to add = no need a code for each case).

 

Finally in your code,

private static TIntIntHashMap pageVal = new TIntIntHashMap();

is pointless.

 

And in order it works your npc template on sql must be L2TattooBlabla.

  • 0
Posted

Edit L2SymbolMakerInstance (if you count to reuse existing instance) and add whatever on onBypassFeedback.

 

Your code can be seriously cutted up also, using a loop (find id for item you destroy, and give id +1 for the item you want to add = no need a code for each case).

 

Finally in your code,

private static TIntIntHashMap pageVal = new TIntIntHashMap();

is pointless.

 

And in order it works your npc template on sql must be L2TattooBlabla.

 

I created a new instant, made with the main NPC dialogue, and a dialogue 1. If the call to start bipass XTM and all plows Event and goes ok. And if the blabla-1.htm nothing happens.

  • 0
Posted

just do a

 

+			else if (_command.startsWith("tattoo"))
+            {
+          IVoicedCommandHandler vch = VoicedCommandHandler.getInstance().getVoicedCommandHandler("tattoo");
+              vch.useVoicedCommand(_command, activeChar, null);
+            }

 

and then bypass it like this

 

bypass -h tattoo

  • 0
Posted

just do a

 

+			else if (_command.startsWith("tattoo"))
+            {
+          IVoicedCommandHandler vch = VoicedCommandHandler.getInstance().getVoicedCommandHandler("tattoo");
+              vch.useVoicedCommand(_command, activeChar, null);
+            }

 

and then bypass it like this

 

bypass -h tattoo

Thanks, but i don't like this. I want do:

public void onBypassFeedback(L2PcInstance player, String command)
{
	if (player == null)
	{
		return;
	}

	if (command.equals("showInfo"))
	{
		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
		if (player.getInventory().getInventoryItemCount(10041, 0) >= 1)
		{
			html.setFile("data/html-en/toti/L2TattooMenager/50010-1.htm", player);
		}
                             }
                    }
.........

All works, but only if bypass in 50010.htm, if bypass in 50010-1.htm not work. This is a problem

  • 0
Posted

Thanks, but i don't like this. I want do:

public void onBypassFeedback(L2PcInstance player, String command)
{
	if (player == null)
	{
		return;
	}

	if (command.equals("showInfo"))
	{
		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
		if (player.getInventory().getInventoryItemCount(10041, 0) >= 1)
		{
			html.setFile("data/html-en/toti/L2TattooMenager/50010-1.htm", player);
		}
                             }
                    }
.........

All works, but only if bypass in 50010.htm, if bypass in 50010-1.htm not work. This is a problem

 

 

no idea of why are you doing this instead of simply just do a vch bypass, or do what tryskell said.

  • 0
Posted

 

no idea of why are you doing this instead of simply just do a vch bypass, or do what tryskell said.

Because I don't understand how its work. My bypass working, but only if bypass in 50010.htm. I ask, why if bypass in 50010-1.htm (50010 and 50010-1 in one dir) he didn't work?

   

  • 0
Posted

Because I don't understand how its work. My bypass working, but only if bypass in 50010.htm. I ask, why if bypass in 50010-1.htm (50010 and 50010-1 in one dir) he didn't work?

   

 

i just dont get the point of doing a bypass to do a call a html, thats why im sayin.

  • 0
Posted

i just dont get the point of doing a bypass to do a call a html, thats why im sayin.

Can you show my, how do script:

When I click button in 50010.htm, show 50010-1.htm, and if i press button in 50010-1.htm, in my inventory add some item

Thanks

Guest
This topic is now closed to further replies.


  • Posts

    • I'll give you my wallet if you want, haha
    • To make up for some of the waiting time we’re hosting a 3v3 Tournament on open Beta, and this time we’re raising the stakes with a $1,300 prize pool 💰   🏆 PRIZE POOL BREAKDOWN (Over 2000$ Worth of prices total)   🥇 1st Place — $700 🥈 2nd Place —$300 🥉 3rd Place — $200 🏅 4th Place — $100  5th -6th Place - $100 in Gold Coins each    All Participating Teams: $50 in Gold!   All Prices will be Paid out instantly after the tour, no waiting time and conditions. This is not simply a marketing move, we want to give back to the community.   📅 Date: Wednesday 06.05.2026 ⏰ Time: 20:00 Central European Timezone (Berlin) 📍Format: 3v3   ⚔️Why join? Cash Prices for top 4 and rewards for all participants Payments to winners sent out straight after the tournament - No waiting time or rules that you have to play live server to obtain the reward. Clean format, smooth matches, and solid prize pool and a chance to experience our brand new files   📝How to join: Form your 3-player team Group Leader Sign up here: ⁠📍・3v3-tour-registration (Include Name of Group, Name of Group Leader)   Be ready on match day!     A separate post with rules for the tournament and class setups will follow shortly.   Tag your teammates, lock in your roster, and get ready to compete. We'll be happy to see you on the OBT!   💬 Questions? Ask in ⁠🎫・ticket or send us a message   See you on L2Dark! 😏   Discord: https://discord.gg/FAJwnFpb8M
    • You should check if that condition is supported by your current sources. You can find this in  DocumentBase#parsePlayerCondition If it isnt there and you want to follow the same pattern of the other item conditions, create a custom condition to parse the classId (or multiple class ids) (there are examples to copy the code). Alternatively, you can create your own condition handler. Your condition should look like this: <cond msgId="1518"> <player classId="ADVENTURER,PALADIN" /> </cond> or <cond msgId="1518"> <player classId="93,5" /> </cond>  
    • it's Interlude client forgot to mention
    • idk if acis have this option, but you can put inside item smth like that atleast on H5         <cond msgId="1518">             <player class_id_restriction="93, 101, 108, 117" /> <!-- Dagger Masters -->         </cond>
  • 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..