Jump to content

Unkle Nuke

getMaNGOS Retired Staff
  • Posts

  • Joined

  • Last visited

  • Days Won

  • Donations

    0.00 GBP 

Unkle Nuke last won the day on February 28 2017

Unkle Nuke had the most liked content!

About Unkle Nuke

  • Birthday 10/04/2007

Recent Profile Visitors

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

Unkle Nuke's Achievements

Advanced Member

Advanced Member (3/3)



  1. 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. 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. 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. 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. 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. 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. 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. Well, us curmudgeons have to be poked once in a while, if only to make sure we're still breathing.
  9. 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. 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. 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. 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. This is to kick off discussion, debate, and planning for continued development of the playerbot mods for MaNGOS. Once things get rolling, authors and their collaborators can start threads for their work. I would prefer to see a unified Playerbot development, with ports/backports for each version of MaNGOS being overseen by the Playerbot project leader. Let's avoid having completely separate projects for Playerbot-Zero, Playerbot-One, Playerbot-Two, etc. Otherwise, we'd end up with a mess, where code for one version of Playerbot is incompatible with another. Some issues that could be addressed: ------------------------------------ To avoid confusion, rename Playerbot-AI. A new name can be decided upon by a forum Poll, if you like. Otherwise, I'll leave the new name up to whoever takes on the work. While you're at it, could someone please make Playerbot-AI into a real mod? By that, I mean separate the code into a patch that can generated by running a diff against MaNGOS. Right now, the mod is mixed in with a lot of other patches added by Ike because the Playerbot-AI code is only a part of his custom fork of MaNGOS. If possible, let's try merging the best features of Playerbot and Playerbot-AI into a single code base. It would make things a lot easier than having to develop and maintain two separate projects, along with their branches for each version of MaNGOS. Seeing bots for PvP finally implemented! Having bots which you can duel, fight in Outdoor PvP zones, or fill out teams in arenas and battlegrounds are just as important for low-pop servers as having a party for PvE. PvP bots should be designed to use NPCs instead of player characters. Their behaviors can then be scripted through EventAI, similar to the way a dungeon boss can be scripted. The EventAI module might need to be modified to achieve this functionality. More development of sophisticated AI for all of the bots. Instead of having the Class/Spec AIs for the player character bots hard-coded into the Playerbot core, move them into the scripts also, where behaviors can be properly triggered by the EventAI, if this is possible. However, this may require more modifications or additions to the EventAI code. Playerbot-UI Addon was developed for the Playerbot master at the time, which supports WoTLK 3.3.5a. Because of differences in the API between client versions, it might be necessary to develop separate PB-UI Addons for each. That is, unless someone who knows addon development well enough to: 1. Create a modular version, with a main function and version-specific modules the player copies into their client's addons folder. 2. Create a single addon that dynamically detects your client version, then loads only what is needed for a specific client. Playerbot-UI still needs a lot of work. It's current code should be regarded as alpha stage, at best. One last thing... The repositories and branches for the MaNGOS versions of Playerbot, Playerbot AI, and Playerbot-UI Addon can disappear at any moment, since they are no longer maintained by their authors. I will try to fork them into a new repository as soon as I can, but I advise anyone who thinks they might want to join in on a new project for this to clone blueboy's, Ike's, and Gitch's code immediately. Okay, I'll surrender the soapbox to the rest of you. Let's see some good ideas!
  14. Incorrect or missing target flag in the script would be the first thing to examine.
  15. You should also be able to adjust respawn times in the server config file, unless some wingnut removed that feature.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use