Jump to content

exec

Administrators
  • Content count

    1041
  • Joined

  • Last visited

  • Days Won

    230

exec last won the day on June 22

exec had the most liked content!

Community Reputation

516 Excellent

About exec

  • Rank
    the Creator

Personal Information

  • Personality Type
    INTP

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. exec

    Welcome

    I'm not so sure we should make that public, seeing how it's Nexon once more =P"
  2. exec

    DataDog - Data File Viewer

    DataDog is a viewer and potential future editor for Mabinogi's .data (DataDog) format. It allows you to open and view the files and export them to XML, in one or list by list. Source: https://github.com/exectails/DataDog Download: https://github.com/exectails/DataDog/releases
  3. exec

    What is the best languages to learn?

    You're right, seems like it was. That's one of those games I've been meaning to give a try for years. How well does it run on Java?
  4. exec

    Mabioned - 2D Region Editor

    Version 0.0.7a is now up, I fixed some issues users discovered, especially using Mabioned with older region files, such as G13.
  5. While working with Mabinogi I have often times had the need to visualize the region's collision rectangles and I've written several tools over the years to accomplish this, though they were all very hacky. Mabioned is the ultimate form of these tools, not only displaying prop's and event's shapes, but completely parsing the region and area files and allowing you to change anything about them, even if the purpose of some values might yet to be discovered. The starting point was reading and writing region and area files, with all of the file's properties being accessibly via a property window for you to modify, and displaying the entity's shapes to visualize the region. I then started to add options to interact with the entities on the map to allow you to move and rotate them and add new ones by right-clicking the map. This prototype is still very simple at this point, but first test runs yielded promising results. The biggest limitation right now is modfying the terrain, which is kinda difficult in 2D, but I'm planning to add heightmap support and maybe 3D editing at a later time. I'm looking forward to getting some feedback, so please download it and tell me what you think =) GitHub: https://github.com/exectails/Mabioned Download: https://github.com/exectails/Mabioned/releases
  6. exec

    TW Login Type

    Years ago we found out that TW had a unique login type that passed the login information to the client via command line arguments. This type was and still is available in the NA client as well, and using it brings you directly to the character selection, without login form or start button. If the secondary login is enabled you do have to enter it before reaching the characters though. Parameters: [...] setting:"file://data/features.xml=Regular, X" /N:username /V:password /T:gamania
  7. exec

    File Formats

    This is a collection of binary templates for some of Mabinogi's file formats, such as .rgn and .pack. https://github.com/exectails/MabinogiFileFormats
  8. exec

    MackLib - Pack library

    MackLib is a .NET library primarily designed to read Mabinogi's pack files, with the possibly unique function to read the entire package folder to get the latest version of all files, just like the client does. Originally only development for fun it has been used and tested in several applications at this point, and just today I finally added a way to create new and modify/recreate existing pack files. The library certainly isn't perfect yet, and creating pack files is highly experimental, but we haven't had any problems reading files with it since I initially wrote it. Usage Example: var path = Path.Combine(PackReader.GetMabinogiDirectory(), "package"); using (var pr = new PackReader(path)) { var entry = pr.GetEntry(@"data\db\itemdb.xml"); using (var ms = new MemoryStream(entry.GetData())) using (var sr = new StreamReader(ms)) { // read itemdb } } GitHub: https://github.com/exectails/MackLib
  9. exec

    DataModder

    Have you ever thought that you'd hate to be the person who has to update those huge data mod packs that presumably break every other week? I always thought that if I were the maintainer I would write a tool that does all the hard work for me. Why should I have to go into a file and make the same tweak again and again if I can have a tool do that for me based on a set of rules? With this base idea in mind I created a tool that does just that a while ago: DataModder. This prototype reads instructions on how to modify files from Lua scripts, applies the modifications to the most recent version of the requested file in the client's pack files, and writes the result to a data folder. What's especially useful is that DataModder understands XML. You don't have to set up a collection of crazy regular expressions, which would be prone to breaking as well, you have fine-grained control over how you modify an XML file. For example: loadxmlfile('db/itemdb.xml') setattributes('//Mabi_Item[@ID=1000]', 'Text_Name0', 'Just some book') This would load the item db and change the attribute "Text_Name0" of the item with the id 1000 to "Just some book". A simple rule that will work for as long as that item exists. Similarly you can add and remove XML elements, replace files, and more. I haven't worked on this prototype since I first created it, but I still think it's very promising, and I want to continue it some time. GitHub: https://github.com/exectails/DataModder Some quick usage instructions, should you decide to check it out: "Remove mods" restores the pack files to their original state, "Create data folder" deletes the current data folder and creates a new one based on the mod scripts, and "Modify" modifies the pack files to make the client use the ones in the data folder. Finally, "All in one" goes through those three steps in sequence, as a simple one click data update solution.
  10. exec

    Discord

    We have decided to finally switch from our old chat on Gitter to a Discord server. You can join us by clicking the Chat link in the header or the image below. See you there
  11. exec

    Local File Editor

    A few days ago I overheard someone talk about the need for a translation tool for Mabinogi, to translate the text files in data/local/. After thinking about it for a little while I had an idea how I would approach this and wanted to see how it would turn out. The result: LocalEditor. The main problem with translating dialogues for games is often times the inline codes that you have to navigate around. In Mabi's case it's HTML-style tags that control the buttons, NPC's facial expressions, lists, and more. I came to the conclusion that you would want to focus on the translatable parts as much as possible, so I made the editor pick out those parts, and by pressing Tab you switch to the next element, with the text automatically getting selected. This way you have close to no downtime between typing to translate and jumping to the next text bit. It's just a prototype, but it feels like a nice start. I don't know if I'll perfect it though. I don't actually have any personal need for this tool, I was just curious^^ https://github.com/exectails/LocalEditor
  12. exec

    What is the best languages to learn?

    Wow, I totally forgot about Minecraft, not only the biggest Java game, but one of the biggest games in general xD" Though that's probably a great example why you wouldn't want to do game development in Java, that Minecraft client was problematic.
  13. exec

    Welcome

    Yea, we were working on a prototype MS2 server emulator, though I haven't actually worked on that project in a few weeks.
  14. exec

    Color Codes

    Over in the Release section I have a tool that generates color codes based on user input, but I don't think I've ever seen any documentation on how they work. In case you ever wondered just that, here's how. Colors Colors are commonly represented as hex numbers of 6-8 characters, made up of 3-4 byte sized values for the Alpha, Red, Green, and Blue values of a color. For example, FF0000 is red (red = 255, green = 0, blue = 0), 0000FF is blue (red = 0, green = 0, blue = 255), and FF00FF is pink (red = 255, green = 0, blue = 255). This type of color works as you would expect in Mabinogi, but there are alternative modes, controlled by the alpha value, which make Flashies possible. Alternative Format In those alternative modes the 3 RGB bytes don't represent one color anymore, but 2 colors and a delay. Since 1 byte doesn't have a big enough range to represent a meaningful color value the client uses a lookup table located at "data/db/color.xml" that contains a list of exactly 255 colors that can be used. The delay controls how smooth the animations are, and the last byte, alpha, specifies the animation speed and which mode to use. This is the full format: MSDDC2C1 M = Mode S = Speed DD = Delay C2 = Color 2 C1 = Color 1 Modes The following are the modes that I know of. Static 1 and 2 (Modes 1 and 2) This simply displays the first or second color without any animations. (0x100016fd, 0x200016fd) Pulsate 1 and 2 (Modes 4 and 5) Depending on the mode, pulsate starts at either color 1 or 2, fades to the other color, and then jumps back to the main one. (0x400016fd, 0x500016fd) Even (Mode 6) This mode is a smooth back and forth fade between the two colors. (0x600016fd) Flickering Flickering is a kind of random flickering of color 2, while the main color is color 1. (0x700016fd) Speed and Delay The animation speed is defined with the second hex character in the alpha byte, allowing for a potential 16 speed levels. You'll note that my simulator only goes up to 9, because at that point it seems like the client has problems animating it properly. The delay on the other hand is not supported by the simulator yet. What this does, on a scale from 0 to 255, is specify the delay between animation frames. The higher the delay, the less smooth the animation is, as it jumps to the next color every few hundred milliseconds. The fade time appears to be about 500ms on speed 0, each level lowering the time by half. The delay is presumably a number of frames that are skipped animating the color, creating a step-by-step effect. This also reduces the animation speed sixteen-fold with the delay on the maximum of 255. If speed and delay are both set the effect looks a little random because they aren't in sync anymore and the animation continues while the delay allows only infrequent glimpses. (0x690016fd, 0x607f16fd) Trivia The alternative modes work on everything from clothes, to hair, to fences, but they don't work on names. Apparently the client treats alpha how it's usually used for UI elements, as transparency, which is why you can't have a flashy name. In turn you can have a partially transparent name though.
  15. exec

    Introduction

    I just realized that while I had an introduction thread on the old Aura forum years ago, apparently I never made one here. I will rectify that now that the forum is finally back up^^ My real name is Dennis, though I very much prefer exec, I'm almost 31 by this point (oh dear...), and I'm from Germany. I started coding websites when I was a teenager and slowly worked my way up as a programmer, ending up as a freelance web developer. I was fascinated by private servers and server emulators ever since I started playing Ragnarok on eAthena servers, setting up my own customized servers for friends, and eventually my programming knowledge caught up and I began hacking around in the emulators I was using, before finally starting a server emulation project of my own in 2012. Since that time I've poured a large portion of my time into the development of server emulators and tools surrounding the games I worked on, from Mabi and Aura, over TOS and Melia, to other yet unreleased projects. I'm a big believer in open-source and try to release as much as possible to the public even if it's not perfect yet, because you never know what will happen, and even a hacked together project can serve as research or a starting point for someone else, should you not finish it. While overcoming the fear of releasing my imperfect creations into the wild wasn't easy in the beginning, I think it actually made me a better programmer, making me think more about what I throw together. I've been told that I can be a little intimidating or difficult to work with, due to my direct way of talking, my supposed perfectionism, and my straight-to-the-point way of criticizing pull requests, but know that I don't mean to sound annoyed or rejecting^^" I try my best to appear more approchable nowadays, and it would be unfortunate if this quirk turned you off from contributing to one of my projects. I've also heard that it helped some people to learn that I'm an INTP. Well, that's all I have to say about myself, if you want to know anything else, you can ask right here.
×