Jump to content

Recommended Posts

Posted

Hello Maxcheaters ;),

 

Today I've finally achieved what I couldn't do before (I didn't have very good knowledge on how to compile e.t.c)...I've made my Npc's dialogue say my character's name and I thought I'd share :D!

 

Here you go:

 

Description:


I really wanted my server NPC to come 'closer' to the players so , I wanted to make them say the player name on their dialogue, here's a pic of what we're gonna do:

npcsaycharname.jpg

 

Let's start:


Copy this code:

 

if (npcId == yournpcid)
html.setFile("data/html/(path)/(filename).htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);

 

Then, open up Eclipse and go to : L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/L2Npc.java

open it, press Ctrl+F and find this : // Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance

 

Make sure that what you've found looks like this:

 

// Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance 
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(filename);

 

Next, copy the code and paste it under the one you've found so it'll look like this:

 

// Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance 
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(filename);
if (npcId == yournpcid)
html.setFile("data/html/(path)/(filename).htm");
html.replace("%playername%", player.getName());
player.sendPacket(html);

 

Now, you must change the following:

 

  • yournpcid
  • (path)/(filename)

 

 

Here's what I've changed and what you should change:

 

// Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance

NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

html.setFile(filename);

if (npcId == 10)

html.setFile("data/html/default/10.htm");

html.replace("%playername%", player.getName());

player.sendPacket(html);

 

If your NPC's ID is e.x: 77710 then it should be "if (npcId == 77710)" and "html.setFile("data/html/default/77710.htm");"

 

'default' is the folder that my html file is located, if your npc is a shop then you should replace "/(path)/" with "/merchant/"

 

The last step is to write in your NPC's html "%playername%" (without brackets).

 

Also , if you want to have it in many .htm files then you simply paste the code again and change the NPC ID and the path. ;)

 

I hope it helps!

 

 

 

Credits:


  • pokiokio - Idea
  • Ashitaka - Code
  • Intrepid - Final touch to the code
     
    Thank you Ashitaka and Intrepid ! I couldn't have made it without you :)

P.S.: You might think the code is no big deal, but for me , a person new to l2j it's quite an achievement!

Posted

Yeap simple getName method, but nice share for newbies. And its Java modification, so i think it should be posted in right section.

Posted

waw nice work pokiokio ;)

only idea is yours? :P

 

I'm afraid yes :P

I had the idea when I didn't know much from coding and today I thought "Why don't I give it a try?", I first used the code without "if (npcId == "npcid")" and every NPC had the same dialogue that I defined in the code. Then I asked Intrepid how to fix it and he told me to use the ""if (npcId == "npcid")" and...I've fixed it :)

Posted

Yeap simple getName method, but nice share for newbies. And its Java modification, so i think it should be posted in right section.

 

*Bumer* Yes, sorry I was a lil' bit in a hurry because I wanted to share :P

Posted

I'm afraid yes :P

I had the idea when I didn't know much from coding and today I thought "Why don't I give it a try?", I first used the code without "if (npcId == "npcid")" and every NPC had the same dialogue that I defined in the code. Then I asked Intrepid how to fix it and he told me to use the ""if (npcId == "npcid")" and...I've fixed it :)

tcp

nice work pantos ;)

Kane kana allo new Code.(kalo kai monos s kai 8a pareis +1 karma )

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