Jump to content
  • 0

Question

Posted (edited)

Hi,

 

I'm making this post to test the waters. If what I'm about to show you doesn't interest you, I'll take it as a sign to stop spending time on it. I've been hoping that the old adage "If you build it, they will come" holds true, but I think it's time to straight up ask for feedback. I've contacted a few people for possible collaboration, but none have shown much interest (which is completely fair).

 

I've been working on L2Homage in my spare time. It's not a quick project, and it will take a long time to complete. It will be done modularly, so it will be usable in stages. The first one is already functional, but I'm still doing tests.

 

What is L2Homage?

L2Homage is a modding tool meant to make modding L2 OFF files easier. It doesn't do anything you can't do on your own, by editing a handful files.

L2H is an extensive editing tool for both client and server files for Lineage 2 Epilogue. While still in development, the intention of this project is to provide users with a tool that’s capable of repurposing most of existing ingame content. This will allow users to rethink and reshape the world of Lineage 2, providing the hordes of burnt out players with new, exciting content, without having to spend hours learning how to manipulate the data structure. The hope is to see a bunch of unique, new game worlds appear, instead of relaunches of the same L2 experience we’ve all been through too many times to count.

 

How much will it cost?

L2H will be free, and eventually completely open source. This is not a project created for monetary gain, it’s solely meant to revitalize the stagnating server scene.

 

Which L2 version does it use and why?

L2H is meant to be free, so the server files should be as well. The most complete, freely available L2OFF files are the Gracia Final/epilogues files, and with Eressea’s extender, it feels nearly bug free. It’s a very strong, free base to build this project on. This tool would likely follow Eressea's extender. If she decides to upgrade L2 version, L2H would most likely follow.

 

When will it be done?

This is a side project with a single developer attached. It won’t be completed fast, but each milestone will be made available to the public, once tested and functional. The development will be modular, with each version providing new options. If you're interested in helping out, let me know.

 

Why are you making this post now?

L2H is meant to help users customize the world of Lineage 2. Every user has a different vision, and as such it’s valuable to gather not only critique, but feature requests and suggestions from anyone interested in the project. The development direction is not set in stone, and is open to change. It's also a test to see if such a tool is even desired. If people tell me this is a waste of time, I'll throw in the towel. There's no reason to continue working on something unwanted.

 

Which language is L2H developed in?

C#

 

How do I use L2H?

Install the L2OFF gracia epilogue server files and Eressea’s extender, then open L2H. There are 3 folders in the L2H directory; client, server and data. Copy the required server script files into the server folder and the decrypted client .txt files into the client folder. There is a .txt file in each folder, informing you of what goes where. Don’t touch the data folder, as it only keeps track of the work you’ve done so far. When you’ve placed the data files in the correct folders, open the application and go to the load/save tab. Click “Load All” and wait. When done, the other tabs have been populated with data, which you can edit freely. When you’re done editing, click “Save All”. If you don’t click save, your data isn’t exported. Now copy the modified files back where they came from. Client files need to be encrypted with an encryption tool again.

 

What does it look like?

Here are a few screenshots of the application in action. It’s still very barebone, but that will change in the future. Loading functionality:

image.png.9e37d5f9f0732ac8bc2b89cbfc2828dd.png

 

Weapons editing:

image.thumb.png.a025f82977580ce24ee8191200177e1e.png

 

Armors editing:

image.thumb.png.1d1696d8cd76299ba08461de62588782.png

 

Etc editing:

image.thumb.png.a7eeb22c4552cd53f320169fdb2019c4.png

 

Sets editing:

image.thumb.png.b940972f62ef82e891d9512546dc4a88.png

 

How does L2H work?

Decrypted Lineage 2 client files and server script files are structured in a very specific way, one that can be parsed and edited. When developers add or remove content to the L2OFF platform, they do this by hand. This often requires editing more files to add a single item. For instance, if you were to add a single weapon, you would have to edit weapongrp (client), itemname-e(client), itemdata(server) and item_pch(server). L2H does this for you with one input. There are a LOT of variables for items, most of which aren't relevant to the modder, and it's easy to mess it up. One wrong space, and your server won't run, or your item won't work. Instead of adding new items from scratch, modders choose a weapon to use as a template. L2H copies all relevant information, and exposes variables that are interesting to edit in an easily accessible grid view. When you're done editing, click export all to get the correctly formatted files. You can copy those directly into the server and client (client files need to be encrypted again).

 

Can I add custom models and animations?

If you want to add custom models, you will have to do that the old fashioned way. There is a lot more to adding new models to the game, compared to repurposing it. Completely new content like that, however cool it may be, is not the goal of L2H. That being said, once you’ve added the new content, you can use L2H to edit or copy it.

 

Why are you not planning to develop X?

If you have a feature request or suggestion, feel free to message me or comment in this post. The planned features are those that are absolutely possible to deliver. The limits of L2H is well known, and there won’t be an attempt to include features beyond those. If your suggestion falls within the possibilities of L2H, it will most likely get added to the list.

 

When will the next version be available?

When it’s ready. This is an ongoing project, and while updates may be far apart, it’ll be finished one day. The project uses no copyrighted info. It's all relying on reverse engineering the data structure. It only reads the data you feed it. Development will continue until all values available for change have been exposed. If I'm doing anything I shouldn't, please let me know. I have no intention of breaking the law.

 

Will you be running a server?

No. That's not my motivation.

 

Will it work for other versions of Lineage 2?

That’s not the focus of this project, so that’s not a compatibility that will be added. It will work with any version of Lineage 2 that uses the exact same data structure as Epilogue. Should a newer version of L2OFF be made available, there’s a slim chance L2H will be updated to fit that data structure.

 

Will it mess up my files?

Remember to keep backups. There can be bugs.

 

Can I delete items?

You can only delete items you’ve created yourself. If you start removing data from the client and the server, you’ll most likely run into issues. If you delete an item that exists in the game world, you might run into issues as well. It’s better to disable these from being acquired, and then remove them from players’ inventories.

 

 

What's in the current version?

Check the roadmap and version description below.

 

Version 1.0 - Items - Done

Adding, modifying or deleting weapons

Adding, modifying or deleting armors

Adding, modifying or deleting etc items

Adding, modifying or deleting sets

 

Version 2.0 - NPCs

Adding, modifying or deleting NPCs

Adding, modifying, deleting or assigning spawn points

Adding, modifying, deleting or assigning drop lists

Adding, modifying, deleting or assigning multisell shop lists

Adding, modifying, deleting or assigning specific AI

 

Version 3.0 - Items Continued

Adding, modifying or deleting recipes

Modifying item enchant success rate

Cell input options lists, to see which options you have per cell

Adding, modifying or deleting tattoos

 

Version 4.0 - World

Adding, modifying or deleting hunting zones (Won’t appear on map)

Adding, modifying or deleting zone names (Won’t appear on map)

 

Version 5.0 - Quests

Adding, modifying or deleting quests

Adding, modifying or deleting rewards

 

Version 6.0 - Raids

Adding, modifying or deleting Raid Bosses

Creating custom NPC behavior through interface

 

Version 7.0 - Core

Modifying the base attributes, hp, mp, regen etc of each class and race per level

Modifying the XP requirement per level

Modifying race and occupation description

Adding, modifying or deleting loading help tips

Adding, modifying or deleting system messages (“You carefully nock an arrow”)

Modifying server name

 

Version 8.0 - Pets

Modifying pet stats and attributes

 

Version 9.0 - Skills

Adding, modifying or deleting Skills

Modifying when and if classes learn different skills

 

Version 10.0 - Ingame Systems

Adding, modifying or deleting manor items

Adding, modifying or deleting fishing items

 

 

Let me know what you think,

 

-B

 

Edit: I'll leave this up for a few weeks and gauge the interest before deciding the future of the project. Thanks for your interest.

 

Edit2: It seems people are interested, so I'll continue developing this. I started a Discord for anyone interested: https://discord.gg/97yAsCA

 

Edited by Bumble
  • Like 2
  • Thanks 2
  • Upvote 8

Recommended Posts

  • 0
Posted (edited)

Your job looks amazing brother! Even if nobody likes it, still you learn a lot by doing and coding! I'm looking forward to check it out!

Thank you !

Edited by PARADISE
  • 0
Posted (edited)

Thanks PARADISE, I appreciate it.

 

Yeah I learn a bit about the data structure of L2 by doing this, it's interesting. It just takes a lot of time to complete this, and I'm unsure if it'll even be used for anything serious afterwards. I hope people have some cool ideas of how to populate the world, and that they're willing to put some time into it.

 

My main motivation for developing this, is from the time where I used to play a lot of Diablo 2 mods back in the day. The custom items, new stories, new enemies, new skills were really interesting to play around with after burning out on the original game.

I think we can make the same thing happen in L2. Imagine a whole new world with all new items and enemies. It'll be like exploring a brand new game in the setting we already know.

 

If just 4-5 different teams started developing something like that, I'd be happy.

Edited by Bumble
  • 0
Posted

While this project isn't getting much interest, I'm still working on it while I can. I still think it could be cool.

 

These past days I've begun working on version 2.0 - NPCs.

I'm mostly done with parsing all NPC data from the server. I've loaded much of the data into a grid, just like I did with the items. It's all editable.

 

NPC droplists were a challenge to parse and structure for. There are 4 separate types of droplists, but I've accounted for them all. Droplists will be on a separate sheet from NPCs, as they would take up too much space.

 

When 2.0 is done, L2Homage is able to completely manipulate the item system and the npc system. I'm considering putting the AI on hold. AI is always intimidating, but I'll take a look at it when NPC data and the spawning system is fully functional.

 

  • 0
Posted (edited)

Thanks for the encouraging comments everyone, I'll keep working on this when I can. I appreciate it.

 

As the development progresses, I'll most definitely have some questions. The previous question I had was regarding the L2 coordinates. I created a whole new thread for that question. I reconsidered that approach, and I don't want to do that, as I may end up cluttering this whole forum section.

 

Instead, I'll ask any questions I have right here, in this thread. I'll try to explain my questions a bit in depth, in case someone else finds this interesting. Maybe we can teach each other some things.

 

I hope you'll help me out with some answers, if you can.

 

Two questions I need answered so far:

 

Question 1:

When parsing NPCdata from the server, I've come across some NPCs which have a different structure in the npc_ai variable. Usually, it's just:

 

{[ai_id]}{ai_variables}.

 

it looks like this:

{[stone_giant];{[MoveAroundSocial]=116};{[MoveAroundSocial1]=116};{[MoveAroundSocial2]=116};{[DDMagicSlow]=@s_mega_storm_strike_for_slow1}}

In this case, stone_giant is the id, movearoundsocial and ddmagicslow are the ai variables.

 

The issues arise when the NPC has minions, I presume. Here's an example:

{[varikan_brigand_ldr];{[MoveAroundSocial]=42};{[MoveAroundSocial1]=42};{[MoveAroundSocial2]=42};{[Privates]=[varikan_brigand:varikan_brigand:1:0;varikan_brigand:varikan_brigand:1:0;varikan_brigand:varikan_brigand:1:0;varikan_brigand:varikan_brigand:1:0]};{[ShoutMsg1]=[1000154]};{[ShoutMsg2]=[1000155]};{[ShoutMsg3]=[1000156]};{[ShoutMsg4]=[1000157]}}

The initial structure is the same, ai_id and ai_variables. But then comes a whole new part, [Privates]. Privates are always structured this way:

 

id:id:number:number

 

My question is:

I assume either the first or the second ID is the npc id. The other one must be the minion ai id. Does any of you know which is which? Or am I wrong? Also, what do the two numbers mean?

 

 

Question 2:

When parsing the droplists for each npc, they're always structured the same way. There are two different kinds of droplists, the single and the multi droplist.

 

A single droplist is structured like this:

 

[item_id] ; min_amount ; max_amount ; probability

 

Here's an example:

{{[suede];1;1;8.3081};{[stem];1;1;24.9244};{[charcoal];1;1;12.4622}}

Killing this enemy has a 8.3% chance of dropping 1 suede, 24.9% chance of 1 stem and 12.46% chance of 1 charcoal.

Since this is a single droplist, they all have a chance of dropping at the same time.

 

Multi droplists work a bit differently.

 

They follow this structure:

{{[item_id] ; min_amount ; max_amount ; group_probability}{[item_id] ; min_amount ; max_amount ; group_probability} probability}

 

Here's an example:

{{{{[adena];67;91;100}};70};{{{[leather_shirt];1;1;38.4868};{[leather_pants];1;1;61.5132}};1.023};{{{[charcoal];1;1;50};{[suede];1;1;33.3333};{[rp_wooden_arrow];1;1;16.6667}};4.9082}}

It's very similar, the difference being group_probability and probability. First, the probability is rolled, then the group probability. Multi droplists make sure that multiple items are available to find, but only one item per group is selected. Multiple groups can trigger per kill.

 

In the example above, the first group consists of only adena, with a 70% drop chance. In that group, adena has a 100% chance to be selected.

 

The second group has leather shirt and leather pants. There's a 1.023% chance of this droplist triggering. If it triggers, 38.48% of the time, a leather_shirt will drop. 61.52% of the time, the leather_pants will drop.

 

My question is:

There are Never more than 4 groups per multi droplist. Some have less, but there's never more than 4 groups out of the 9300+ NPCs. I imagine some developers would like to add more multi droplist groups per npc. Is this a hardcoded limit, or can I add more?   EDIT: This is wrong. There are multiple cases of more than 4 groups per multi droplist. I found out just now, when parsing more data. It happens all the time for raid bosses, I wasn't looking there yet. I'd still like an answer to the rest of my question though. Apologies for wrongful information.

 

Is there a limit to the amount of items that can be added to each group? Will a large amount of items available per kill have a negative impact on the server performance, or is it negligible?

Some games (like Diablo, Path of Exile) follow an itemlevel system. Almost anything is available as a drop from a monster, it's all based on the monster's level. If it's possible to add 1000+ items as drops per npc, this entire drop system can be simulated in Lineage 2, should the server developers decide to.

 

EDIT:
Disregard what I just said about never being 4 droplists per multi droplists. This is wrong, I found out just now after parsing more data.

 

Thanks,

-B

Edited by Bumble
Learned something new.
  • 0
Posted (edited)

Progress update:

image.png.08c9b0cd9ea353f9fafd313e920cf535.png

 

Almost finished parsing all NPC data.

https://ibb.co/Yd1KrzY

 

Finished parsing all droplist data:

https://ibb.co/bsK7wkC
https://ibb.co/PTH7dXn

 

 

Droplists are separated into 6 different types:

Normal

Spoil

Multi
Multipart

Extra

Extrapart

 

The two types 'Multi' and 'Extra' contain the group probability and the ID of the different droplists that can be triggered.

The two types "Multipart' and "Extrapart' are similar to normal droplists, but are connected through the referenced multi/extra droplist they refer to.

 

For now, I've added support for each npc to have up to 10 normal drops, 20 spoil drops, 50 multi droplists, 40 multiparts, 50 extra droplists, 40 extra parts.

 

That means each enemy can theoretically drop 2000 different items through multi droplists, and 2000 more from extra droplists.

I still need to test if this will mess anything up, but my testing rig is currently not working.

 

Next step is to create the template IDs to store in the data folder, then work on exporting the data in the correct format. When the exports work, I'll move on to working on the spawn system.

Edited by Bumble
  • 0
Posted

It's all stored in xstd::vectors etc so don't hesitate to remove all limits, everything is O(n) so it's up to server admins what they'll put there :)

  • 0
Posted

Cool, thanks eressea! I'll remove those limits then :)

 

Do you have more info on the [privates] npcdata thing? Still unsure of the structure there.

  • 0
Posted (edited)

NPC_NAME:NPC_AI:WEIGHT_POINT:RESPAWN_TIME

 

WEIGHT_POINT should be something similar to weight values in statistics, a bigger number should mean a bigger influence on the hate generated, it gets multiplied with variables like damage and others and gets inserted into mob attack methods. @eressea might know more about it.

Edited by sepultribe
  • 0
Posted (edited)

That makes sense, thank you sepultribe.

 

I'll make a tooltip note of that and expose the whole [Privates] line for editing. I'll leave that one up to modders to write correctly.

 

Quick update:

Apart from 1 npc (id 31230), all npcs and droplists are exporting to the correct format. I'm going to stop for today, and I'll just exclude that npc from dynamically exporting. I don't know why its npc_ai has an extra semi-colon in it.

 

If I have time tomorrow, I'll implement npc/droplist editing/cloning/deleting. Once that's done, I'll move on to spawning.

Edited by Bumble
  • 0
Posted (edited)

17008 and 17009 also have that redundant semicolon in the end };}, I am pretty certain that is just a mistake on their part, in all other cases the npc_ai closes with }}

 

btw anyone has any idea what the sm in myself.sm might refer to in AI? static/super member/method?

Edited by sepultribe
  • 0
Posted

That's strange, 17008 and 17009 parsed just fine for me.

 

Yeah it's probably something weird on their end. I won't worry too much about it for now.

 

Regarding myself.sm, I haven't delved too far into AI yet, so I can't tell you that.

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
Answer this question...

×   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

    • The bot video lasts 35 minutes and not everything is shown there, if everything was shown, the video could have lasted several hours. Also, the video quality is reduced so as not to take up much space.The last minutes of the video show bots attacking each other on the event. https://dropmefiles.com/1jMi2
    • We also forgot to say that the deal will be the way you want it, we are ready for almost any of your demands. And we ask the administration to review our post as soon as possible, because several hours have passed and it still hasn't passed moderation, thank you in advance!  
    • 💥Super offer GitHub Account  (5 years)💥 ⚠️ Available to order for only $20🔥
    • Good day to all! We present to your attention our source code h5, where several projects used and achieved very good results, both in terms of online and in general for the project. (Due to confidentiality, the list of projects, the test server and what the basis of the source code will be provided only to real buyers, where they can go and check them out)   The main feature is bots, which are very animated, one to one like real players. But, in addition to bots, the build has a lot of interesting and modern things. Below will be a video showing bots and a little about the server.   As we said, the build was used on several projects, so the first thing that is there is not a single backdoor on the server, all serious and critical errors have been fixed. Races and classes are closer to the official PTS platform.   And also the server can be used as a classic server, as well as a server with add-ons, because the server has added many new things, weapons, armor, jewelry, hats, cloaks, etc.   The server has a full working community board (alt+b), working locations, quests, geodata, mechanism, working ai, in general there are no problems and complaints. In alt+b, shops, various services, buffer, player statistics, clan statistics, mail, profession change, personal account, registration for events, etc. are available.   Additional services: Premium account, visual costumes, nickname change services (for yourself and your pet), nickname and title painting service, karma/PC cleaning, expand services, weapon/armor/jewelry sharpening service, level up and down service, nobles purchase service, beauty salon (new hairstyle change from higher chronicles and face change), additional window purchase service, clan reputation purchase service, weapon augmentation purchase service.   Internal services: auto potions (acp), referral system, repair services, automatic reward delivery after n. time, additional auction, and other working systems, also many available commands, such as: exact date of epic respawn, password change directly inside the game, offline buffer, auto att, registration for castle sieges directly by entering a command and other available commands.   The server has protection (both on the server side and on the client side) that protects against free software and also several other anti-bot systems that will not give the slightest chance to bot users. But if you want people to use software, you just turn it off.   Bots. As we said, one of the main features of our server is bots, they are one to one like real players, now a little about bots and below is a link to a video about how they work: Server bots are like real players, their AI is copied from the AI ??of real characters, and therefore they get what real players get and you can also do with them everything that can be done with real characters.   They write in chats, in all chats, trade, shout, pm, clan chat, general chat. They walk around the cities, level up, farm, kill each other in pvp and pc, put on weapons, armor, jewelry, sharpen weapons. According to their level, they will choose their professions, join clans, participate in different events, use alt+b services - I'm telling you, their AI is copied and adapted like a real player's AI, so they can do everything that a real player can.   Bot control: You can set a chat and words for bots, how often or rarely they will write in chats, you can control where and how the bots will level up, you can control what events they will be at, you can control what cities they will run in, you can control where they will stand, you can even call them to you and that's not all, they are completely in your hands and you can twist them as you want. The bot video lasts 35 minutes and not everything is shown there, if everything was shown, the video could have lasted several hours. Also, the video quality is reduced so as not to take up much space.   You can check the rest yourself on the test server and we will fully show you everything that bots are capable of and you will be surprised)   Now about the price and a little about our work and what is included in this price. We do not sell only the build, we sell the source code in its entirety, so that you can adapt something for yourself. The price of the source code: 15,000 euros. What is included in this price: 1. We do not have a license, you buy it once and you can use it for the rest of your life. 2. There is no online limit and there is also no limit on running bots, the server can support as much online and bots as your VDS is powerful. 3. Client-side protection. You will not pay extra for protection, the source code already has everything. 4. All builds that we have created for projects that bought the source from us (they have ready-made servers, with their own ready-made concepts, configs, different alt+b designs, for different rates x1, x10, x20, x50, x100, x1200, x5000, there are also servers for classics and servers with add-ons, they all have configured bots for their servers) all this will be included in this price. You will receive all the builds of these projects. 5. Once a year we update and improve the source, we will also improve the bots, make different paths for them, different farming places, and revive them more and more, to get them you will have to pay 20 euros to get the updates. 6. You will receive all the bot settings from our first projects to the last, the video shows little, our last configured bots are almost indistinguishable from real players and you will see this yourself on the test server or later. (Our last setup and development of bots lasted 11 months and these works and what bots can do cannot be described in words, you yourself must see them to feel this work and power) 7. We will teach you how to control both the server and training on setting up and controlling bots. 8. We will provide you with VDS for 3 months and if necessary we will help you as much as we can until the first launch of your project! 9. Our bots move, they don't stand in one place, they walk around the cities and use a teleport, after the teleport they move on to the farming place in random places. They communicate in the chat and if you hit them, they can hit you back. They are in almost every city and farming location, near many key NPCs, instance zone managers, etc. They are automatically updated and move around the cities and farming zones. They attack those who have a flag and those who is pk. These are simply unique bots that can help you in terms of your online and your project in general! 10. As we said, our latest bot development lasted 11 months and we made 92 new farm zones for bots, more than 150,000 new paths for all locations, different methods of dressing their equipment, different methods of their behavior and more than 40,000 universal words in the chat, in different languages, where no one can even doubt that these are bots! Our contact information Telegramm: https://t.me/jg_uc Discord: j.g.u.c_dev
  • Topics

×
×
  • Create New...