Hi everyone another time, today is a good day, I hope you enjoy this guide.
Today we are going to learn how to make our own NPC Buffer, you can add the buff you want, superhaste, chants, dances, hero buffs, noblesse buffs, songs, hierophant buffs, souls, etc... etc...
I have noted that all people is allways searching for a NPC Buffer, but the true is that you will never find a perfect one so that's the reason I'm making this guide for you.
First of all you need to be patient, this is not an easy guide, but if you follow everything I type, I know you will understand and you will get the skill to create your own
First of all, If you have an HTML editor like dreamweaver, use it, if not, use notepad, if you don't like notepad, download the notepad++ Is pretty cool, Don't know where to get it??
If you want to make your own new NPC follow this little guide below, If you want to use an existing one just skip this step, but you have to enter the game and shift click the npc you wanna edit and see it's ID, then write it on a paper or in a place you will remember
STEP ONE:. CREATING THE NEW NPC
Enter Lineage II game, find a NPC you like, I don't know which, you can chose a granite golem. Antharas, Valakas, Baium, Gremlin, etc... etc.., in a few words just chose your favirite NPC template
Press the Shift key and click on it, there you will see the NPC ID like in image
Enter your MySQL Database and create a new row there you put in the column ID the number you want but make sure is not in use, try using some number like 99999
The other columns just copy them from the original NPC, but make sure the aggro colunm is 0 and the type must be "L2Npc"
In name and tittle just put what you want
In serversidename and serversidetittle put 1
Save your database and that's all
STEP TWO:. EDITING YOUR NPC HTML (THE TEXT IT SAYS)
Open your HTML editor or the notepad, and paste this code
go to menu file/save as..
name it as "ID of your npc".html for example 1234.html
Don't forget the .html, is very important
YOU MUST SAVE THE FILE INSITDE THE FOLDER \GAMESERVER\DATA\HTML\DEFAULT\
Explanation of the code,
"<html>" & "</html>" are telling us that is an html document
"<body>" & "</body>" are telling us that everything inside them is the content of the html document
"<center>" tell us that the next line will be centered
"<tr><td>" & "</tr></td>" tell us that will create a table
"<font color="FF44FF">" & "</font>" defines the color of the text inside them (color must be in hex format)
"<br>" means a line jump
"<button value="Buff Me please" will create a buton with the text buff me please action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" this is the action of the button, in this case is get the quest with the name 9999_NPCBuffer width=75 width of the button height=21 height of the button back="L2UI_ch3.Btn1_normalOn" this is tha background of the button fore="L2UI_ch3.Btn1_normal" this is the foreground of the button>"
Note that the background and the foreground are clientside images
so so sorry this guide is incomplete cause I click on submit post instead of preview, I will finish soon just sorry for the mistake LoL
STEP THREE:. CREATING THE BUFF FILES
Because of in our html we type 9999_NPCBuffer, we have to create a folder with this name in the folder gameserver\data\jscript\custom, if you want other name just change it on your HTML file and then create a folder with the same name
Go to your new folder, in this case gameserver\data\jscript\custom\9999_NPCBuffer\
There create a file with a name "__init__.py" if you don't know how, just open your notepad and click save as and you paste it, don't forget that must have the .py, without that, that's just a simple txt file
Open your __init__.py there is wher you will put the buffs, I will just explain how to do it, I will not do all the buffer, that will be your homework
Inside the __init__.py you will paste this code
I will explain this just a little cause is a lot of code, just remember things in red have to be deleted to make the code works,
This code is very easy, what it do is just check if you have adena and the minimum level
After that code you have to put the buffs in this format
Note: for each buff you have to put this code, just change the ID of the buff, the level and the prize.. and of course the event number (if event == "2")
In that code you are chosing buff and prize, after that code you have to paste this
I will not explain that code, just paste it, there is nothing interesting
Note: Remember the event number of each skill, or better write them in some paper
Now once you have created the __int__.py you have to create a file with name 1.html that will be the buffer selection screen
Inside the 1.html you just have to paste this code (I will explain this one)
Pay a lot of attemption to this code and remember the number after 999_NPCBuffer is very important, to call the correct event, to add another buff just add this line to the code
Just change the number of event and the button value
For the last step you just need to add this line of code inside the __int__.py that is inside the folder gameserver\data\jscript\custom\
STEP FOUR:. TESTING THE BUFFER
Enter the game and now type //spawn "ID of your NPC"
if your NPC Buffer works correctly then you did it well, if not, just send a reply and tell me your problem, I will try to fix it.
Thanks to read this post
Cya in the next tutorial i think will be [GUIDE] Making your custom GMshop
Today we are going to learn how to make our own NPC Buffer, you can add the buff you want, superhaste, chants, dances, hero buffs, noblesse buffs, songs, hierophant buffs, souls, etc... etc...
I have noted that all people is allways searching for a NPC Buffer, but the true is that you will never find a perfect one so that's the reason I'm making this guide for you.
First of all you need to be patient, this is not an easy guide, but if you follow everything I type, I know you will understand and you will get the skill to create your own
First of all, If you have an HTML editor like dreamweaver, use it, if not, use notepad, if you don't like notepad, download the notepad++ Is pretty cool, Don't know where to get it??
To view the content, you need to sign in or register
If you want to make your own new NPC follow this little guide below, If you want to use an existing one just skip this step, but you have to enter the game and shift click the npc you wanna edit and see it's ID, then write it on a paper or in a place you will remember
STEP ONE:. CREATING THE NEW NPC
Enter Lineage II game, find a NPC you like, I don't know which, you can chose a granite golem. Antharas, Valakas, Baium, Gremlin, etc... etc.., in a few words just chose your favirite NPC template
Press the Shift key and click on it, there you will see the NPC ID like in image
![antorni - [GUIDE] Make your own npc buffer!! - RaGEZONE Forums antorni - [GUIDE] Make your own npc buffer!! - RaGEZONE Forums](https://forum.ragezone.com/images/404_image.png)
Enter your MySQL Database and create a new row there you put in the column ID the number you want but make sure is not in use, try using some number like 99999
The other columns just copy them from the original NPC, but make sure the aggro colunm is 0 and the type must be "L2Npc"
In name and tittle just put what you want
In serversidename and serversidetittle put 1
Save your database and that's all
STEP TWO:. EDITING YOUR NPC HTML (THE TEXT IT SAYS)
Open your HTML editor or the notepad, and paste this code
Code:
<html>
<body>
<center>
<tr><td><font color="FF44FF">L2 Antorni Buffer</font></tr></td><br>
<br>
Welcome
<br>
I can buff you
<br>
<button value="Buff Me please" action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
</body>
</html>
name it as "ID of your npc".html for example 1234.html
Don't forget the .html, is very important
YOU MUST SAVE THE FILE INSITDE THE FOLDER \GAMESERVER\DATA\HTML\DEFAULT\
Explanation of the code,
"<html>" & "</html>" are telling us that is an html document
"<body>" & "</body>" are telling us that everything inside them is the content of the html document
"<center>" tell us that the next line will be centered
"<tr><td>" & "</tr></td>" tell us that will create a table
"<font color="FF44FF">" & "</font>" defines the color of the text inside them (color must be in hex format)
"<br>" means a line jump
"<button value="Buff Me please" will create a buton with the text buff me please action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" this is the action of the button, in this case is get the quest with the name 9999_NPCBuffer width=75 width of the button height=21 height of the button back="L2UI_ch3.Btn1_normalOn" this is tha background of the button fore="L2UI_ch3.Btn1_normal" this is the foreground of the button>"
Note that the background and the foreground are clientside images
so so sorry this guide is incomplete cause I click on submit post instead of preview, I will finish soon just sorry for the mistake LoL
STEP THREE:. CREATING THE BUFF FILES
Because of in our html we type 9999_NPCBuffer, we have to create a folder with this name in the folder gameserver\data\jscript\custom, if you want other name just change it on your HTML file and then create a folder with the same name
Go to your new folder, in this case gameserver\data\jscript\custom\9999_NPCBuffer\
There create a file with a name "__init__.py" if you don't know how, just open your notepad and click save as and you paste it, don't forget that must have the .py, without that, that's just a simple txt file
Open your __init__.py there is wher you will put the buffs, I will just explain how to do it, I will not do all the buffer, that will be your homework
Inside the __init__.py you will paste this code
Code:
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver import SkillTable
from net.sf.l2j import L2DatabaseFactory
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
[COLOR=darkred]THE LINES AVOVE ARE JUST IMPORTING SOME DATA[/COLOR]
NPC=[1234] [COLOR=darkred]HERE YOU PUT THE ID OF YOUR NPC[/COLOR]
ADENA_ID=57 [COLOR=darkred]TIS IS JUST FOR TYPE ADENA_ID INSTEAD OF 57[/COLOR]
MIN_LEVEL=40 [COLOR=darkred]THIS IS THE MINIMUM LEVEL TO GET BUFFED[/COLOR]
QuestId = 9999 [COLOR=darkred]THIS IS THE ID OF THE QUEST[/COLOR]
QuestName = "NPCBuffer" [COLOR=darkred]THE NAME OF THE QUEST[/COLOR]
QuestDesc = "custom" [COLOR=darkred]THIS IS THE FOLDER OF THE QUEST[/COLOR]
InitialHtml = "1.htm" [COLOR=darkred]THIS IS THE FILE OF YOUR NPC THA WILL START[/COLOR]
print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + QuestName,
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st):
htmltext = event
count=st.getQuestItemsCount(ADENA_ID)[COLOR=darkred]HERE THE NPC GET YOUR ADENA[/COLOR]
level=st.getPlayer().getLevel() [COLOR=darkred]HERE THE NPC GET YOUR LEVEL[/COLOR]
if count < 200000 and level < MIN_LEVEL :
htmltext = "<html><head><body>You dont have enough adena or your level is lower than st.getPlayer().getLevel().</body></html>"
else:
st.getPlayer().setTarget(st.getPlayer())
This code is very easy, what it do is just check if you have adena and the minimum level
After that code you have to put the buffs in this format
Code:
if event == "[COLOR=darkred]2[/COLOR]": [COLOR=darkred]NEED TO START IN 2 AND MUST BE RAISING 1 EACH TIME[/COLOR]
st.takeItems(ADENA_ID,[COLOR=darkred]15000[/COLOR]) [COLOR=darkred]CHANGE IT FOR THE PRIZE YOU WANT[/COLOR]
st.getPlayer().useMagic(SkillTable.getInstance().getInfo([COLOR=darkred]4344[/COLOR],[COLOR=seagreen]3[/COLOR]),False,False) [COLOR=darkred]CHANGE IT FOR THE SKILL ID YOU WANT TO USE[/COLOR], [COLOR=seagreen]CHANGE IT FOR THE LEVEL OF THE SKILL[/COLOR]
st.getPlayer().restoreHPMP() [COLOR=darkred]HERE IS JUST RESTORING PLAYERS MP CAUSE NPC USES PLAYER MP[/COLOR]
return "1.htm" [COLOR=darkred]HERE YOU RETURN TO THE CHOSE BUFFS SCREEN [/COLOR]
st.setState(COMPLETED)
In that code you are chosing buff and prize, after that code you have to paste this
Code:
if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
return htmltext
def onTalk (self,npc,st):
htmltext = "<html><head><body>I have nothing to say to you</body></html>"
st.setState(STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)
QUEST.setInitialState(CREATED)
for npcId in NPC:
QUEST.addStartNpc(npcId)
STARTED.addTalkId(npcId)
print "...done"
I will not explain that code, just paste it, there is nothing interesting
Note: Remember the event number of each skill, or better write them in some paper
Now once you have created the __int__.py you have to create a file with name 1.html that will be the buffer selection screen
Inside the 1.html you just have to paste this code (I will explain this one)
Code:
<html>
<body>
<center>
<font color="FF40FF">L2 Antorni Buffer</font><br>
<br>
<font color="00FFBB">Buff List:</font><br>
<tr><td></td><td><button value="[COLOR=darkred]HERE PUT THE TEXT OF THE BUTTON, IRECOMMEND YOU TO PUT THE NAME OF THE BUFF JEJE[/COLOR]" action="bypass -h Quest 9999_NPCBuffer [COLOR=darkgreen]2"[/COLOR] [COLOR=darkgreen]THIS NUMBER IS VERY IMPORTANT, IS NE NUMBER OF THE EVENT THAT WILL CALL FROM __int__.py [/COLOR]width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
</center>
</body>
</html>
Code:
<tr><td></td><td><button value="Heal" action="bypass -h Quest 9999_NPCBuffer 2" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
Just change the number of event and the button value
For the last step you just need to add this line of code inside the __int__.py that is inside the folder gameserver\data\jscript\custom\
Code:
'9999_NPCBuffer',
STEP FOUR:. TESTING THE BUFFER
Enter the game and now type //spawn "ID of your NPC"
if your NPC Buffer works correctly then you did it well, if not, just send a reply and tell me your problem, I will try to fix it.
Thanks to read this post
Cya in the next tutorial i think will be [GUIDE] Making your custom GMshop
Last edited: