Jump to content

Recommended Posts

Posted

So i'm here again with a guide.

 

First step:HTML

We open a html file,and edit it.

like as:


<html>
  <title>Buffer by me</title>
 <body>
 </body>
</html>

 

Now we have Three choice

-Classbuff

-Normal buff

-Midrate buffer(only choosed buffs)

 

First we make a normal buffer,so we continue the HTML:


<html>
  <title>Buffer by me</title>
 <body>
<button value="Buffs" action="bypass -h npc_%objectId%_Chat 1" width=100 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button value="Dances" action="bypass -h npc_%objectId%_Chat 2" width=100 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button value="Songs" action="bypass -h npc_%objectId%_Chat 3" width=100 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button value="Customs" action="bypass -h npc_%objectId%_Chat 4" width=100 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
 </body>
</html>

Now we need to make other HTML-s for other chats.

NPCID-1

example:

424242-1 (chat 1)

424242-2 (chat 2)

 

Now we open the 1. chat and edit as:


<html>
<title>Buffers title</title>
<body>
<center>Buffs<br>
<button action="bypass -h npc_%objectId%_Buff write here the buff's ID" value="Buff name" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

<button action="bypass -h npc_%objectId%_Buff write here the buff's ID" value="Buff name" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

<button action="bypass -h npc_%objectId%_Buff write here the buff's ID" value="Buff name" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

<button action="bypass -h npc_%objectId%_Buff write here the buff's ID" value="Buff name" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</body>
</html>

 

Now the class buffs.

The first we open a HTML.


<html>
<title>Buffer's title</title>
<body>
</body>
</html>

 

And we put the buffs.


<html>
<title>Buffer's title</title>
<body>___Dances&Songs___
<br><button action="bypass -h npc_%objectId%_Buff 271 272 273 274 275 276 277 307 309 310 311 365" value="Dances" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 264 265 266 267 268 269 270 304 305 308 349 363 364" value="Songs" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

___Buffs___
<br><button action="bypass -h npc_%objectId%_Buff 1323 1040 1035 1043 1044 1073 1078 1085 1204 1032 1036 1045 1048 1240 1059 1189 1303 1392 1354 1460 1087 1413 830" value="Mage" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1323 1363 1068 1035 1043 1044 1073 1077 1204 1032 1036 1045 1048 1240 1242 1243 1059 1189 1268 1392 1354 1460 1087 1086 828" value="Fighter" width=250 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

___Customs___
<br><button action="bypass -h npc_%objectId%_Buff 1062 " value="Berserker Spirit" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1388" value="Greater Might" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1389" value="Greater Shield" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><br><button action="bypass -h npc_%objectId%_Buff 1357" value="Prophecy of Wind" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1356" value="Prophecy Of Fire" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1323" value="Noblesse Blessing" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1363" value="Victory Chant" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1413" value="Magnus Chant" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 1414" value="Pa'agrio Victory" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 825" value="Sharp Edge(Sword)" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 826" value="Spike(Blunt)" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 827" value="Restring(Bow)" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 828" value="Case Harden(Heavy)" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 829" value="Hard Tanning(Light)" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br><button action="bypass -h npc_%objectId%_Buff 830" value="Embrioder" width=120 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</body>
</html>

 

Third choice:

It's so easy after the other choices.

HMTL:


<html>
<title>buffer</title>
<body>
<table>
<tr>
<td><a action="bypass -h npc_%objectId%_Chat 1">Buffs</td>
</tr>
<tr>
<td><a action="bypass -h npc_%objectId%_Chat 1">Dances</td>
</tr>
<tr>
<td><a action="bypass -h npc_%objectId%_Chat 1">Songs</td>
</tr><br>
------------------------------------<br>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
<a action="bypass -h npc_%objectId%_Buff 1030">Buff</a>
</body>
</html>

 

In this choice the table using is not requied,but i used it.

So can u see we need 3 HTML's each. We make it,and copy the text,but we edit,it.(buff id,name stb)

 

Second step: SQL

 

So here we are.

First we make the table,what have the buff ID-s.

Like this:


INSERT INTO `npc_buffer` VALUES ('36402', '4356', '3', '0', '0', '4356');
INSERT INTO `npc_buffer` VALUES ('36402', '4352', '2', '0', '0', '4352');
INSERT INTO `npc_buffer` VALUES ('36402', '4345', '3', '0', '0', '4345');
INSERT INTO `npc_buffer` VALUES ('36402', '4359', '3', '0', '0', '4359');
INSERT INTO `npc_buffer` VALUES ('36402', '4351', '6', '0', '0', '4351');
INSERT INTO `npc_buffer` VALUES ('36402', '4355', '3', '0', '0', '4355');
INSERT INTO `npc_buffer` VALUES ('36402', '4357', '2', '0', '0', '4357');
INSERT INTO `npc_buffer` VALUES ('36402', '4342', '2', '0', '0', '4342');
INSERT INTO `npc_buffer` VALUES ('36402', '4358', '3', '0', '0', '4358');
INSERT INTO `npc_buffer` VALUES ('36402', '4360', '3', '0', '0', '4360');
INSERT INTO `npc_buffer` VALUES ('50016', '264', '1', '0', '0', '264');
INSERT INTO `npc_buffer` VALUES ('50016', '265', '1', '0', '0', '265');
INSERT INTO `npc_buffer` VALUES ('50016', '266', '1', '0', '0', '266');
INSERT INTO `npc_buffer` VALUES ('50016', '267', '1', '0', '0', '267');
INSERT INTO `npc_buffer` VALUES ('50016', '268', '1', '0', '0', '268');
INSERT INTO `npc_buffer` VALUES ('50016', '269', '1', '0', '0', '269');
INSERT INTO `npc_buffer` VALUES ('50016', '270', '1', '0', '0', '270');
INSERT INTO `npc_buffer` VALUES ('50016', '271', '1', '0', '0', '271');
INSERT INTO `npc_buffer` VALUES ('50016', '272', '1', '0', '0', '272');
INSERT INTO `npc_buffer` VALUES ('50016', '273', '1', '0', '0', '273');
INSERT INTO `npc_buffer` VALUES ('50016', '274', '1', '0', '0', '274');
INSERT INTO `npc_buffer` VALUES ('50016', '275', '1', '0', '0', '275');
INSERT INTO `npc_buffer` VALUES ('50016', '276', '1', '0', '0', '276');
INSERT INTO `npc_buffer` VALUES ('50016', '277', '1', '0', '0', '277');
INSERT INTO `npc_buffer` VALUES ('50016', '304', '1', '0', '0', '304');
INSERT INTO `npc_buffer` VALUES ('50016', '305', '1', '0', '0', '305');
INSERT INTO `npc_buffer` VALUES ('50016', '306', '1', '0', '0', '306');
INSERT INTO `npc_buffer` VALUES ('50016', '307', '1', '0', '0', '307');
INSERT INTO `npc_buffer` VALUES ('50016', '308', '1', '0', '0', '308');
INSERT INTO `npc_buffer` VALUES ('50016', '309', '1', '0', '0', '309');
INSERT INTO `npc_buffer` VALUES ('50016', '310', '1', '0', '0', '310');
INSERT INTO `npc_buffer` VALUES ('50016', '311', '1', '0', '0', '311');
INSERT INTO `npc_buffer` VALUES ('50016', '349', '1', '0', '0', '349');
INSERT INTO `npc_buffer` VALUES ('50016', '363', '1', '0', '0', '363');
INSERT INTO `npc_buffer` VALUES ('50016', '364', '1', '0', '0', '364');
INSERT INTO `npc_buffer` VALUES ('50016', '365', '1', '0', '0', '365');
INSERT INTO `npc_buffer` VALUES ('50016', '366', '1', '0', '0', '366');
INSERT INTO `npc_buffer` VALUES ('50016', '367', '1', '0', '0', '367');
INSERT INTO `npc_buffer` VALUES ('50016', '529', '1', '0', '0', '529');
INSERT INTO `npc_buffer` VALUES ('50016', '530', '1', '0', '0', '530');
INSERT INTO `npc_buffer` VALUES ('50016', '825', '1', '0', '0', '825');
INSERT INTO `npc_buffer` VALUES ('50016', '826', '1', '0', '0', '826');
INSERT INTO `npc_buffer` VALUES ('50016', '827', '1', '0', '0', '827');
INSERT INTO `npc_buffer` VALUES ('50016', '828', '1', '0', '0', '828');
INSERT INTO `npc_buffer` VALUES ('50016', '829', '1', '0', '0', '829');
INSERT INTO `npc_buffer` VALUES ('50016', '830', '1', '0', '0', '830');
INSERT INTO `npc_buffer` VALUES ('50016', '1002', '3', '0', '0', '1002');
INSERT INTO `npc_buffer` VALUES ('50016', '1003', '3', '0', '0', '1003');
INSERT INTO `npc_buffer` VALUES ('50016', '1004', '3', '0', '0', '1004');
INSERT INTO `npc_buffer` VALUES ('50016', '1005', '3', '0', '0', '1005');
INSERT INTO `npc_buffer` VALUES ('50016', '1006', '3', '0', '0', '1006');
INSERT INTO `npc_buffer` VALUES ('50016', '1007', '3', '0', '0', '1007');
INSERT INTO `npc_buffer` VALUES ('50016', '1008', '3', '0', '0', '1008');
INSERT INTO `npc_buffer` VALUES ('50016', '1009', '3', '0', '0', '1009');
INSERT INTO `npc_buffer` VALUES ('50016', '1010', '3', '0', '0', '1010');
INSERT INTO `npc_buffer` VALUES ('50016', '1032', '3', '0', '0', '1032');
INSERT INTO `npc_buffer` VALUES ('50016', '1033', '3', '0', '0', '1033');
INSERT INTO `npc_buffer` VALUES ('50016', '1035', '4', '0', '0', '1035');
INSERT INTO `npc_buffer` VALUES ('50016', '1036', '2', '0', '0', '1036');
INSERT INTO `npc_buffer` VALUES ('50016', '1040', '3', '0', '0', '1040');
INSERT INTO `npc_buffer` VALUES ('50016', '1043', '1', '0', '0', '1043');
INSERT INTO `npc_buffer` VALUES ('50016', '1044', '3', '0', '0', '1044');
INSERT INTO `npc_buffer` VALUES ('50016', '1045', '6', '0', '0', '1045');
INSERT INTO `npc_buffer` VALUES ('50016', '1048', '6', '0', '0', '1048');
INSERT INTO `npc_buffer` VALUES ('50016', '1059', '3', '0', '0', '1059');
INSERT INTO `npc_buffer` VALUES ('50016', '1062', '1', '0', '0', '1062');
INSERT INTO `npc_buffer` VALUES ('50016', '1068', '3', '0', '0', '1068');
INSERT INTO `npc_buffer` VALUES ('50016', '1073', '2', '0', '0', '1073');
INSERT INTO `npc_buffer` VALUES ('50016', '1077', '3', '0', '0', '1077');
INSERT INTO `npc_buffer` VALUES ('50016', '1078', '6', '0', '0', '1078');
INSERT INTO `npc_buffer` VALUES ('50016', '1085', '3', '0', '0', '1085');
INSERT INTO `npc_buffer` VALUES ('50016', '1086', '2', '0', '0', '1086');
INSERT INTO `npc_buffer` VALUES ('50016', '1087', '3', '0', '0', '1087');
INSERT INTO `npc_buffer` VALUES ('50016', '1182', '3', '0', '0', '1182');
INSERT INTO `npc_buffer` VALUES ('50016', '1189', '3', '0', '0', '1189');
INSERT INTO `npc_buffer` VALUES ('50016', '1191', '3', '0', '0', '1191');
INSERT INTO `npc_buffer` VALUES ('50016', '1204', '2', '0', '0', '1204');
INSERT INTO `npc_buffer` VALUES ('50016', '1240', '3', '0', '0', '1240');
INSERT INTO `npc_buffer` VALUES ('50016', '1242', '3', '0', '0', '1242');
INSERT INTO `npc_buffer` VALUES ('50016', '1243', '3', '0', '0', '1243');
INSERT INTO `npc_buffer` VALUES ('50016', '1249', '3', '0', '0', '1249');
INSERT INTO `npc_buffer` VALUES ('50016', '1250', '3', '0', '0', '1250');
INSERT INTO `npc_buffer` VALUES ('50016', '1251', '2', '0', '0', '1251');
INSERT INTO `npc_buffer` VALUES ('50016', '1252', '3', '0', '0', '1252');
INSERT INTO `npc_buffer` VALUES ('50016', '1253', '3', '0', '0', '1253');
INSERT INTO `npc_buffer` VALUES ('50016', '1257', '3', '0', '0', '1257');
INSERT INTO `npc_buffer` VALUES ('50016', '1259', '4', '0', '0', '1259');
INSERT INTO `npc_buffer` VALUES ('50016', '1260', '3', '0', '0', '1260');
INSERT INTO `npc_buffer` VALUES ('50016', '1261', '2', '0', '0', '1261');
INSERT INTO `npc_buffer` VALUES ('50016', '1268', '4', '0', '0', '1268');
INSERT INTO `npc_buffer` VALUES ('50016', '1282', '2', '0', '0', '1282');
INSERT INTO `npc_buffer` VALUES ('50016', '1284', '3', '0', '0', '1284');
INSERT INTO `npc_buffer` VALUES ('50016', '1303', '2', '0', '0', '1303');
INSERT INTO `npc_buffer` VALUES ('50016', '1304', '3', '0', '0', '1304');
INSERT INTO `npc_buffer` VALUES ('50016', '1308', '3', '0', '0', '1308');
INSERT INTO `npc_buffer` VALUES ('50016', '1309', '3', '0', '0', '1309');
INSERT INTO `npc_buffer` VALUES ('50016', '1310', '4', '0', '0', '1310');
INSERT INTO `npc_buffer` VALUES ('50016', '1323', '1', '0', '0', '1323');
INSERT INTO `npc_buffer` VALUES ('50016', '1352', '1', '0', '0', '1352');
INSERT INTO `npc_buffer` VALUES ('50016', '1353', '1', '0', '0', '1353');
INSERT INTO `npc_buffer` VALUES ('50016', '1354', '1', '0', '0', '1354');
INSERT INTO `npc_buffer` VALUES ('50016', '1355', '1', '0', '0', '1355');
INSERT INTO `npc_buffer` VALUES ('50016', '1356', '1', '0', '0', '1356');
INSERT INTO `npc_buffer` VALUES ('50016', '1357', '1', '0', '0', '1357');
INSERT INTO `npc_buffer` VALUES ('50016', '1362', '1', '0', '0', '1362');
INSERT INTO `npc_buffer` VALUES ('50016', '1363', '1', '0', '0', '1363');
INSERT INTO `npc_buffer` VALUES ('50016', '1364', '1', '0', '0', '1364');
INSERT INTO `npc_buffer` VALUES ('50016', '1365', '1', '0', '0', '1365');
INSERT INTO `npc_buffer` VALUES ('50016', '1388', '3', '0', '0', '1388');
INSERT INTO `npc_buffer` VALUES ('50016', '1389', '3', '0', '0', '1389');
INSERT INTO `npc_buffer` VALUES ('50016', '1390', '3', '0', '0', '1390');
INSERT INTO `npc_buffer` VALUES ('50016', '1391', '3', '0', '0', '1391');
INSERT INTO `npc_buffer` VALUES ('50016', '1392', '3', '0', '0', '1392');
INSERT INTO `npc_buffer` VALUES ('50016', '1393', '3', '0', '0', '1393');
INSERT INTO `npc_buffer` VALUES ('50016', '1397', '3', '0', '0', '1397');
INSERT INTO `npc_buffer` VALUES ('50016', '1413', '1', '0', '0', '1413');
INSERT INTO `npc_buffer` VALUES ('50016', '1414', '1', '0', '0', '1414');
INSERT INTO `npc_buffer` VALUES ('50016', '1415', '1', '0', '0', '1415');
INSERT INTO `npc_buffer` VALUES ('50016', '1416', '1', '0', '0', '1416');
INSERT INTO `npc_buffer` VALUES ('50016', '1460', '1', '0', '0', '1460');
INSERT INTO `npc_buffer` VALUES ('50016', '1461', '1', '0', '0', '1461');
INSERT INTO `npc_buffer` VALUES ('50016', '21046', '1', '0', '0', '21046');

 

It works,but the '50016' is the NPC-s ID. So you need to change it,or need to the npc's ID 50016

 

And the NPC sql:

 


INSERT INTO `custom_npc` VALUES ('50016', '4', 'NPC-Buffer', '1', 'MaxCheaters.com', '1', 'Monster2.baby_tiger', '13.00', '21.00', '80', 'male', 'L2NpcBuffer', '80', '3862', '1493', '0.00', '0.00', '10', '10', '10', '10', '10', '10', '0', '0', '500', '500', '500', '500', '282', '0', '2000', '0', '0', '0', '60', '80', 'NULL', '0', '0', '0', 'LAST_HIT', '0', '0', '0', 'balanced', 'false');

 

Other infos:

[move]

::: Usefull linkl: :::

::: How to make NPC? :::

::: Credits to Me :::

::: When something wrong plz write it to me :::[/move]

Posted

That's a nice guide!

 

Guide is pretty nice,keep making guides for newbies.

@offtopic PS:300 posts!yesh mi have post

 

Why do you need posts?You are a donator LOL

 

Sorry for off-topic.

  • 3 months later...

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

    • “Hello, I’d like to present a short description of the server. Everyone starts equally at max level 80. The server includes a custom buffer, custom class master, custom weapons and armors, custom zones, custom teleporter, custom raid bosses, and much more. I’ll leave a link in the description for those who want to see how everything looks inside. The server is only open on weekends, and you can find more news via the Facebook link.”   https://www.facebook.com/profile.php?id=61578869175323
    • 1. You where subscriber 3 years ago. 2. There is no current L2jMobius 2.8 Seven Signs version. Subcriber or not. 3. You have your answer from multiple forums that more items is more delay.  
    • 1. Optimize Packet Serialization Look in ItemList.java or wherever the inventory packet is constructed. Instead of building the packet with inefficient string concatenation or repeated allocations, use a preallocated buffer and avoid creating new objects for each item. Mobius sources are Java-based, so profiling with something like VisualVM or YourKit can help see where most time is spent. 2. Avoid Sending the Full List Each Time Modify the server to send only changed items (diff packets) when the inventory window opens. Some newer forks implement this as “lazy loading” or paged inventory so the client only loads e.g. 100 items at a time. 3. Limit the Inventory Size Per Page Instead of showing all 500 slots at once, split the inventory into pages/tabs (100 slots each). When the user switches a tab, send only that page’s items. This requires some client-side editing, but it’s the most user-friendly long-term fix. 4. Database & Cache Optimizations Ensure your items table is indexed by owner_id to make the query for player items fast. Cache item templates and static data so they are not reloaded every time the inventory is shown. ⚠️ Things to Keep in Mind Increasing slots from 80 → 500 does not just change a number — it multiplies the workload for packet building and UI rendering. You can’t fully avoid some extra cost with 500 items, but you can keep it under a few milliseconds if you optimize how and when the data is sent.    
    • i think it's the auto sorting of the interface that sucks, check InventoryWnd script in interface.u, or completely disable the request item list packet when toggling the inventory window (also in InventoryWnd script or similar name)
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock