Jump to content

Unkle Nuke

getMaNGOS Staff
  • Content Count

  • Donations

    0.00 GBP 
  • Joined

  • Last visited

  • Days Won


Unkle Nuke last won the day on February 28 2017

Unkle Nuke had the most liked content!

Community Reputation

13 Good

About Unkle Nuke

  • Rank
    Senior getMaNGOS Staff (Retired)
  • Birthday 10/04/2007

Recent Profile Visitors

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

  1. Unkle Nuke

    How did the dev team do it?

    You are indeed right! The code base does need refactoring. Antz has been reworking parts as he goes along, but overhauling a decade of work is a mammoth task. There are opcodes that still have the status of 'UNK' in the cores. Some likely have no bearing on a private server, such as Battlenet client interoperability. There are a few that may reveal themselves to be necessary pieces to the puzzle. My hope is the formulas can be fixed correctly by researching archives of sites like Elitist Jerks and even making use of old versions of utilities like Rawr and Simcraft. I'll have to leave that one up to smarter people. Math and I have an uneasy truce, at best.
  2. Unkle Nuke

    mangos zero Tcg & blizzcon codes?

    Or you could edit these NPCs in the database to turn them into vendors that will sell you these vanity items for whatever currency you choose. Your choice.
  3. Unkle Nuke

    mangos zero .server restart command not working?

    It's a "feature" of Windows that has plagued MaNGOS from its beginning. If you browse the old forum archives, you'll see people offering many solutions for a "MaNGOS restarter" on Windows. Some people did it with a simple script while others wrote full GUI apps to handle a server reboot. If your machine is a dedicated MaNGOS server, you may wish to consider setting mangosd and realmd to run as a Windows Service so your server will start every time you boot or reboot your system. This also makes using helper apps with MaNGOS a bit more reliable.
  4. Unkle Nuke

    I'd like to help

    The best way to start would be cloning MaNGOS Zero. Most of what you mention, like the raids, would be handled primarily by the EventAI scripting. So I'd first check the ScriptDev2 stuff in Elysium's source code and compare it against the corresponding scripts MaNGOS has in ScriptDev3. It gets a bit more difficult from there. Whether you're using the leaked Elysium sources or the official Elysium repo at Github, there is no commit history to use as a basis for Git to find common ancestors to perform any useful work. You'll have to compare every individual file by hand to find the differences. Keep in mind that the Nostalrius source code is based on a very old fork of MaNGOS. As near as I can pinpoint it, the Nostalrius core was built on a copy of MaNGOS Zero from sometime in early 2012. That's five years old! A good portion of the code base has become badly outdated. MaNGOS Zero has made huge improvements since that time. Please feel free to ask more questions as you work!
  5. Unkle Nuke

    How did the dev team do it?

    What I said still applies, even going all the way back to vanilla WoW 1.12. We still don't know everything as fully as we need. Otherwise, MaNGOS would have had 100% retail support for older WoW clients years ago. The development history of WoW private servers goes back a long way, with much of what is known based on the work of mostly hobby coders. They had no formal training and relied on their intuition as much as skill. On top of that, the constant push to get features working by any means, even if it was only "good enough", gave no incentive to get things totally correct. This eventually lead to guesswork somehow becoming gospel. Those who chose to question the status quo had to face the wrath of the developers in charge. Politics cemented this further with certain individuals seeking to protect their status within the community by keeping their knowledge for themselves. It's only grows more complicated by the fact that each new expansion made changes to file formats and data structures that required starting the research all over again.
  6. Unkle Nuke

    Greetings from a fellow developer

    Hello, Anders! The trouble with Playerbot and PlayerbotAI is both are years out of date. You'd need to update the code base of whichever one you choose to work properly with the current cores. The sole exception being the PlayerbotAI already ported into MaNGOS Zero. The PlayerbotAI in Zero at this time is based upon Ike's version, which differs in some significant ways from blueboy's original Playerbot. If you wish to work with that instead, it will need to be ported from Zero into the other MaNGOS cores. In the meantime, there is a sub-forum dedicated to further development of Playerbot and you're welcome to start a discussion there. It is my hope that enough people will become interested to form a thriving Playerbot Development team. Here's the links to blueboy's Playerbot repositories: blueboy's Playerbot - playerbot-zero: http://github.com/blueboy/portalzero playerbot-one: http://github.com/blueboy/portalone playerbot-two: http://github.com/blueboy/portaltwo At some point in the future, I will generate proper patch files of both Playerbot versions so aspiring devs like yourself can work with something more easily understood. Feel free to jump right in!
  7. Unkle Nuke

    How did the dev team do it?

    Even if that were true, the point of kuJay's question was how a WoW server emulator is created from scratch without access to the actual retail server code. You are correct that much of the effort for older clients now is directed toward implementing and fixing features to replicate the game play as it existed at the time a particular client was current on official retail. That doesn't mean no further work is needed on the other areas. A lot of assumptions about the reliability of old research led to the perpetuation of bad information and data. There are still many opcodes whose functions are unknown. Certain file types were incorrectly analyzed in the past. Maps are only just now being correctly understood in their proper context, which has finally allowed transports to function properly after many years. There is still much data mining and reverse-engineering that needs done, especially for more recent expansions.
  8. Unkle Nuke

    How did the dev team do it?

    Well, us curmudgeons have to be poked once in a while, if only to make sure we're still breathing.
  9. Unkle Nuke

    How did the dev team do it?

    How do we do it? The short answer is actually more boring than you think... hours of studying hex code gathered from the client and network traffic with the server. The long answer I'm about to offer would have seen me burned as a heretic for spilling precious secrets, if this were still the old days, but MaNGOS today is about being free in every way. The three pillars of the MaNGOS Open philosophy are Open Source, Open Community, and Open Learning. So we all do our best to make sure the code is free, our door is open to everyone, and knowledge must be shared. A more complete answer must be prefaced with a brief trip to the past. Bear with me, if you please. Game server emulation has been around far longer than WoW itself, beginning in the late 90s with multiplayer games like Quake. Back then, these games often came with an official server you could install from the game disk so players could host their own multiplayer games. People smarter than me got curious and reverse-engineered these servers to create the foundation of knowledge and procedures that are still used to this day. MMOs use a centralized server, accessed over the Internet. One of the earliest examples is Phantasy Star Online, released for the Sega Dreamcast in 1998 and Windows a year later. So how do you create a server for a game when you don't actually have the server itself? The two basic tools used for creating a server emulator from scratch are the debugger and packet sniffer. I'll say more on that a little later. What I do know of the early genesis of WoW private servers is second-hand knowledge gained from the devs who'd been around nearly from the the beginning. It all began when a simple WoW sandbox evolved into a full server called Stormcraft. Early WoW p-servers were primitive by today's standard and closed source. Much of the game's features did not work correctly, if at all, and there was little anyone could do because the various devs kept their program code and knowledge secret. WoWDaemon (usually abbreviated to WoWD) was the beginning of the modern projects you see now, programmed in C++ and using an SQL database. So why the history lesson? Because every WoW server emulator in existence today owes a debt to those who came before. Whether it's MaNGOS or Ascent, or one of their many forks like Trinity, Cmangos, or Arcemu... we've built on over a decade of work by hundreds of developers. MaNGOS was started from a leak of the old WoWD server source. Standing on the shoulders of giants, as it were. The way this was all done involved using those two tools I mentioned earlier. First, a debugger is employed to dig into the heart of the WoW game client, reverse-engineering the client's inner workings to find opcodes and data handlers. Then a packet sniffer was used to save all the packets sent between the client and server during an actual game play session, also called "sniffs". A hex editor was frequently used to analyze file formats and the captured packets, allowing bright fellows to develop specialized tools to more efficiently sift through the client and network traffic for valuable data. Once it was understood how things worked, it then became possible to create compatible program code to make use of the methods and data that makes WoW playable. Since that time, specialized tools have been created to more efficiently get at the precious data needed to improve existing p-servers and keep up with new expansions so they can also be emulated correctly... eventually. It has taken all this time to get this far. I'm certain it will take longer still before anyone can truthfully declare any WoW p-server is 100% complete. That's a broad overview for you. As for the finer details, feel free to ask more questions. Either myself or someone will be happy to provide you the best information we have. I hope I've given you the answer you were seeking. Remember, MaNGOS belongs to you!
  10. Unkle Nuke

    How to work on bugs

    How to fix bugs? This one is easy! Take up knitting instead. Your sanity will thank you. Still, it's a well-written guide. I give it 10/10.
  11. Unkle Nuke

    AI Playerbot

    Last I checked, ike3 abandoned Cmangos and now supports only Trinity and Mangos R2 with his new mangosbot project which seems to be a continuation of Playerbot-AI, but he hasn't made any commits to it in roughly 3 months. Regardless, the entire reason I started this sub-forum was to drum up interest in creating a MaNGOS-compatible fork. Still waiting.
  12. Unkle Nuke

    Crash on shutdown / restart

    It's been several years, so please forgive the cobwebs and dust as I dredge up lost knowledge, but here's my thought: Since this server crash occurs at shutdown and it involves keys created by ACE, my money is on this error having something to do with the server logging. It seems something has gotten mixed up during the cleanup/shutdown process, possibly an incorrect value being returned to ACE by mangosd. Before ACE 6.3.0 was committed by Foereaper last month, the previous change was 6.1.7 committed in August. With this error not being reported until December, I'd say that points to something having changed with the server code. The other possibility could be the complications and pitfalls that arise when working with submodules in Git leading to source corruption. Has anyone tried compiling ACE with the Dump macros enabled or run MaNGOS in debug mode? Either or both would give more information than the console errors. Assuming the server crash doesn't completely prevent logging, try setting the logging level to verbose in the mangosd config. That would at least give an overview of what's happening during the shutdown process. Valgrind hasn't been used in years, since nearly all of our devs are Windows programmers, and I know of no comparable replacement for Windows that doesn't cost an arm and a leg. Antz may be able to demonstrate how to use Visual Studio to trace and debug MaNGOS with similar results. I agree with Olion's assessment. ACE has been regarded much as a plug-in module you simply add and then forget about it. This library is at the very heart of the server so it is wise for everyone who touches core functions to become familiar with it. By the way... When you're reporting a bug, it's status should not be set to "Confirmed" until there is at least one other user replying with a similar experience.
  13. Unkle Nuke

    [MANGOSTWO] Strange DB Behavior

    This is partly an educated guess, since I've yet to catch up on all the changes made to the database tables, but it looks to me as though the SQL patches for ACID or ScriptDev were either applied in the wrong order or missing entirely. I'm not saying you did that 5even. It might have been a badly merged update on the developer's end.
  14. Unkle Nuke

    [All] Proposed changes for Rel20

    MaNGOS ScriptDev is no longer supported and should be deprecated. Trying to cater to everyone will only add unnecessary complications and workload to a Dev Team that is already stretched too thin. If people want it to be supported, then they can fork the code and do what is necessary to keep MaNGOS ScriptDev viable. If it means that much to you, Xenithar, then get to work.
  15. Unkle Nuke

    Old Man WoW

    Welcome to MaNGOS, 5even! You may be pleasantly surprised to discover some of us here are well past the age of 40, though I do admit we're vastly outnumbered by the "young'uns". I find it's not really unusual to find older video game fans. After all, Pong is over 40 years old and Pac-Man isn't far behind! We always need all sorts of useful tools and other things. Feel free to work up whatever web tools you like. There's been many server front-ends and player account web interfaces developed over the years, but few of them have been maintained. We have some interesting web tools available in our MaNGOS Tools repository, hosted at Github. You might want to also have a look at old projects like AoWoW, WoW Armory, and MangosWeb Enhanced. You're welcome to put your stamp on them, updating and improving those old projects when not busy creating your own awesome scripts. We just recently released a completely overhauled MaNGOS Zero, which is for "vanilla" WoW. It also has a new scripting engine that uses Lua, brought to us courtesy of the fine team at Eluna. You can set it up yourself or give it a go on our official test server, hosted by Covenant-WoW. Either way, I hope you like what the team has done! Pull up a comfy chair and have a cup of whatever while we grouse about how much better things were in the "good ol' days".

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions


The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®