Jump to content

Bumble

Legendary Member
  • Posts

    146
  • Credits

  • Joined

  • Last visited

  • Days Won

    6
  • Feedback

    100%

Everything posted by Bumble

  1. Alright thanks, I'll try to get a discord up later today. I don't have any new screenshots to show, as I've been focusing on droplists for now. It's all data structure, storage and exporting. I'll share the look of the initial spawn functionality when I get to that, I think it'll be pretty neat.
  2. Progress update: Npc cloning and editing working now. Exports to both server and client files. Droplists cloning and editing _seems_ to be working now. I wouldn't be surprised if it doesn't. My first tests are successful though. When adding new multi droplists, the droplist parts are automatically created, ready for input. Custom droplist are stored locally to protect them from being overwritten when an NPC droplist reference is changed. I only need to implement the Delete functionality for NPCs and Droplists, and then I can move on to spawning. I considered making a Discord channel, where people can talk about mods, report bugs, get help from other modders and request features. I don't have time to moderate it though, so I'd need help with that (assuming anyone wants to join). I'm going to work on the delete functionality now. Edit: Droplists broken again. Great. Gotta focus on that instead. Edit2: Droplists seem to be working now. Delete functionality tomorrow, then spawn.
  3. #Eressea Unfortunately, I can't use skype in my current setting. I understand why that would be a convenient option though. #Sepultribe That's a good idea. I might just do that. That would be a convenient place to report bugs as well.
  4. Progress update: Droplist editing is almost completed. It took a lot longer than expected. There are so many things that a user can do to break the droplist, so I had to implement a lot of errorproofing. It's still possible to mess it up though, but not as innocently. I still need to implement delete functionality and hooking it up to the specific NPC, but I'm getting close to being done with NPCs/Droplists/Items. Again, when that's completed, I'll move to spawning and then prepare a test version. #weedy RvR systems are probably hand-made for those servers. They're most often available on L2j servers, which (as people in here would probably agree with) just isn't as enjoyable as L2Off files. Because of L2j's java core, it's a lot easier to modify. I'm sure people can figure out how to implement it on L2Off as well though, but I imagine it'll take quite some effort. If anyone knows otherwiser, please let me know. The examples you give with changing how primary stats work will be possible through L2H. I've planned for that, so if you want to do your own calculations, go ahead. It should be available in version 7.0 (which is some time away though). After 2.0, development will be fast though. Droplists are some of the heaviest tasks (except for items and AI), because of all the variables. The next versions should be easier to develop. As for the guidelines for using the project, I think that's something we'll have to figure out once we can actually play with it a bit. We'll just take it as it comes. If you're interested in setting up a test-station, there are a few good guides on here. You'll want eressea's extender and the Gracia Epilogue files. I'm a little too busy to even setup my own test platform right now, so it'll have to wait :) I managed to test the item system before my server broke, so I know that works. I can tell NPCs/droplists should work similarly, but only time will tell. Edit: If someone has an extra server I can use to test on, that'd be awesome. Otherwise, it'll take a bit longer to release a test version. I'll only be uploading stuff to the scripts folder for now. Later, I'll be uploading split AI files as well. Edit2: Also looking for a discord or similar, where I can talk with people with similar L2 interests -B
  5. Progress update: Been working on the droplists. So far, the normal and spoil droplist editing works. I'm currently focusing on multi droplists. I hope to complete it by tomorrow, but there are a lot of loose ends. I'm still aiming to share a test version by next weekend. -B
  6. Hey Weedy, Thanks for the morale boost. These droplists are frustrating to work with, but it'll be worth the trouble when it's complete. After droplists are working and the NPC spawning system is in place, the entire item/npc system will be editable (except for in-depth AI editing). I'm hoping to share a version for people to test withing a week or two, depending on my spare time. If you'd like to help out, I'd appreciate if you could help me test it at that point. It is possible, but it will take significantly longer, and it will be prone to errors. L2H is meant to make it fast and reliable. What only takes a cell-change in L2H, would require manual editing of 4+ different files (server and client). EDIT: It depends on what you mean by completely unique. If you're adding custom systems to the game, something that's not already in the game, then you need to program it. If you're re-using existing systems, then it's possible without programming. I'm happy to hear you're excited about this project. That's why I'm doing this. I can't wait to see what worlds people create. I'm in a similar industry as you, doing both design and code. One thing I could use help with, and I'm sure you agree, is some guidelines for modders on approaching modding a game like Lineage 2 from the start. If someone sets out to create a whole world on the scale of the existing L2, they're bound to burn out. It's a huge world, with so many npcs and areas. I think as a solo or small development team, it would be better to focus on a small part of the world first, and then expand outwards. I'll be implementing functionality to change the start spawnpoint for players to support this. Instead of different spawn points per race, I think most projects would benefit from a single spawnpoint for all races. I also think it'd be beneficial for projects to lock max levels as modding progresses, depending on the point they allow players in. If modders set out to fully populate the world for players to explore all the way to level 85, they'll probably burn out too. I'm sure more ideas like that will arise from actually using L2H down the line, but it's worth spending some time thinking about these issues. Building the tool is one thing, but helping modders understand how to use it efficiently, is another thing entirely. I'll keep everyone updated as I progress. -B
  7. Progress update: Droplists are taking a bit longer than anticipated to complete. The parsing and exporting works completely, but I need to create a new structure for storing references between multi droplists and regular droplists. These references will be stored in plain .txt files as well in the /data folder. The reason I'm doing it this way, is so each NPC references 4 droplists (normal, spoil, multi, extra multi). This allows droplists to be reused or reassigned to a new npc by editing one cell. Want an elpy to drop Antharas loot? Sure. It is a little tricky figuring out how to generate the correct IDs for each droplist, as well as which references to store and copy, when cloning a droplist (or part of it). This is different from items, as an item is a whole object by itself. Droplists point in several directions, and the data has to be updated consistently across the board. But I'm making good progress. -B
  8. 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.
  9. 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.
  10. 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.
  11. Progress update: 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.
  12. 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
  13. 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.
  14. Thanks everyone, it seems layers aren't a thing in the serverfiles. I'll just have to use the minZ/maxZ values to show depth instead. -B
  15. Hmm yeah, I can definitely grab the layers through the geodata file - but the territories are stored on the server. I can see how many layers there are per region, but there's no indication of the layer info in the serverfiles I've looked at so far. Well, the minZ and maxZ values are indicative for sure, but that won't be very reliable when parsing. If I trusted the data, I'd just check if any territories overlap on the Z axis, but everything I've parsed so far tells me that there are inconsistencies everywhere. I was hoping there'd be an actual value somewhere in the server files. Maybe not.
  16. Of course! That makes so much sense, thanks. I was considering it, but the layers threw me off. Is there any way to determine which layer it's on then?
  17. I've been working on parsing the npcpos and area files for L2Homage, but I could use some info regarding the coordinate system. I'm a little unsure of what these numbers mean. When looking at npcpos, the different zones are created through this structure: territory_begin [territory id] {{number1, number2, number3, number4};{number1, number2, number3, number4};{number1, number2, number3, number4}} Each region in the grid consists of 256x256 blocks, each with 8x8 cells. Each cell has 8 units of length to each side (16 total). Using this image as reference: I can see that the world is 20 regions wide, 16 regions high. That gives a total world width of 20x256x8x16 = 655,360 units and a total height of 16x256x8x16 = 524,288 units. The center of the coordinate system is in the middle of the map, so any coordinate zone can be calculated by using the formula: rX = number of regions on X axis bX = number of blocks on X axis rY = number of regions on Y axis bY = number of blocks on Y axis c = number of cells u = number of units per cell xRegion = (((rX *bX * c * u) / 2) + xcoordinate) / (bX * c * u) + 10 yRegion = (((rY *bY * c * u) / 2) + ycoordinate) / (bY * c * u) + 10 If I take this as an example: {{-125408;37714;1129;1329}} X coordinate is obviously -125408, Y is 37714, Z is 1129. Using the formula described above, this coordinate is located in block: ((327680 + (-125408)) / 32768) + 10 = 16.2 ((262144 + (37714)) / 32768) + 10 = 19.1 16_19, which makes it the kamael tutorial area. So the math works out. What I need to know is, what's that 4th number? The one that repeats in every coordinate, after the Z value? 1329 in this case. I also need some info regarding layers. Some regions have multiple layers. I'd like to know how to identify the different layers (or if it's possible). Am I looking the wrong place? Thanks, -B
  18. 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.
  19. 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: Weapons editing: Armors editing: Etc editing: Sets editing: 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
×
×
  • 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