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:
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!