Jump to content

[Share] Make an NPC dialogue say your character's name!


Sindelia

Recommended Posts

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!

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 )

Link to comment
Share on other sites

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.




  • Posts

    • What unique features ? 
    • Welcome to SmurfsZone   Buy League of Legends accounts across all servers and jump straight into Ranked Games with amazing quality and support.   Why Choose SmurfsZone? 24/7 Instant Delivery: Get your full access LoL smurf account immediately. 100% Hand-Leveled: High-quality accounts leveled by hand. Versatile MMR Options: High MMR, Standard MMR, Fresh MMR (ARAMs), and Ranked accounts available. Valorant Accounts: Expand your gaming experience. Our Commitment to You: Unopened Loot: Customize your champion pool. Lifetime Warranty: Valid if you change the email, username, and password upon purchase. Password Changeable: Ensure your account's security. Full Recovery Information: Complete access to account recovery details. Unverified and Changeable Email: Easy to personalize and secure your account. Completely Unranked: Fresh start with no ranked history in any season. Responsive Customer Support: Our dedicated team is available to assist you 24/7.   Experience the best place to buy League of Legends accounts with exceptional quality and dedicated support. We're here for YOU!
    • Thanks! I'll take a second look and let you know if my implementation of the clearCircle() helps with the stuttering once I find time for some extensive testing.
    • Thank you for your reply. I have removed it from the L2Server.exe file, but the L2Server still crashes. It doesn't crash if I don't start l2npc, otherwise it will crash within a few days at the latest.
    • Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Telegram : https://t.me/ultrastore1 Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11
  • Topics

×
×
  • Create New...