Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 03/06/2015 in all areas

  1. 7 points

    Version 0.21.GitHub

    2,174 downloads

    Mangos Zero Server with playerbots For: World of Warcraft ClassicInstall Guides: https://www.getmangos.eu/wiki/documentation/installation-guides/ Status: Playable Support client versions: 1.12.1 (build 5875),1.12.2 (build 6005) and 1.12.3 (build 6141) MangosZero-Serverx86.zip (32 bit) MangosZero-Serverx64.zip (64 bit) Built in Scripts (SD3 & Eluna) Playerbot Allows players to spawn bots to group up and play with them. Settings for this are in aiplayerbot.conf.dist This can be enabled or disabled in the config file Map Extractors Realm, World & Character databases Authentication Realm-Daemon server (realmd) Mangos-Daemon world server (Mangosd) Requirements: C++ Redistributable for Visual Studio 2015 (Included in .zip)
  2. 5 points

    Version 0.21.GitHub

    1,461 downloads

    Mangos One Server - 0.21 For: World of Warcraft: The Burning Crusade Wiki: https://www.getmangos.eu/wiki/documentation/installation-guides/ Status: Playable Support client versions: 2.3.4 (8606) Mangosone-Serverx86.zip (32 Bit) MangosOne-Serverx64.zip (64 Bit) Builtin Scripts (SD3 & Eluna) Map Extractors Realm, World & Character databases Authentication Realm-Daemon server (realmd) Mangos-Daemon world server (Mangosd) Requirements: C++ Redistributable for Visual Studio 2015 (Included in .zip)
  3. 4 points
    Flawless install. Thank you for the precompiled binaries. Not having a solid internet connection, this keeps me sane.
  4. 4 points
    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!
  5. 3 points

    Version 0.21.GitHub

    1,748 downloads

    Mangos Two Server - 0.21 For: World of Warcraft: Wrath of The Lich King Wiki: https://www.getmangos.eu/wiki/documentation/installation-guides/ Status: Playable Support client versions: 3.3.5a (12340) MangosTwo-Serverx86.zip (32 Bit) MangosTwo-Serverx64.zip (64 Bit) Builtin Scripts (SD3 & Eluna) Map Extractors Realm, World & Character databases Authentication Realm-Daemon server (realmd) Mangos-Daemon world server (Mangosd) Requirements: C++ Redistributable for Visual Studio 2015 (Included in .zip)
  6. 3 points
    Goals for 2017 For 2017 the following are what we would like to achieve: Release Version 21 for Zero, One and Two containing all the recent updates and fixes we have. Release Version 21 for Three and Four - which will involve a massive amount of work to get these cores up to date. Redo the server commands to make them a bit more standard and obvious. Break out AHBot into its own daemon process Develop a mangos update daemon, which allows the ability to apply DB content and minor updates automatically Create Editors for the other xxxdocs systems (we currently only have a dbDoc Editor) Normalise the character DB and remove data blob fields Continue to standardise the code across the cores where its appropriate to do so. Document where it differs and why. Move some hardcoded values from the core into the DB, possibly some enums as well. Implement Stormlib library for Zero, One and Two and remove mlib Apply the Unified Extractor to Three and Four (requires stormlib) Look at removing DBC usage from the Core and change the extraction process to include importing into a DB for use by the core. Including Multiple locale support. This would facilitate the removal of stormlib / mlib from the core and only be needed by the extraction tools. Finish implementing the database localisation and allow localised db content to be loaded and edited. Including a localisation editor to allow localised translations to be created/edited by users. Look at Adapting EAI to match SAI functionality. As well as some of the more obvious ones: Clear down reported bugs on the Project Tracker. Improve the World Database with updates and corrections. Improve the Wiki Documentation. Include some example Eluna scripts to assist those starting out learning to script with Eluna. Include some custom Eluna scripts to help showcase it's abilities. Finally, we would like to get into a twice yearly Release cycle of more major releases. MangosVB (Formerly Spurious) RoadMap for 2017 Add RealmDB from c++ Mangos and modifying MangosVB to be compatible with it. Work out how to get MangosVB to use the standard Mangos map format. Finishing warden functionality (so it can use/read signatures from DB) Merge all of the changes from Zero to One and Two Investigate into voice functionality for One / Two Doing spells.. implementing them like stealth and getting a proper DB script system in place Getting it compiled and running under unix (using mono)
  7. 2 points
    HOW TO CREATE WAYPOINTS - get things moving A short Introduction how a path is handled PREREQUISITES For every movement of a creature in the wow - world a definition has to be made. (Except the case a hungry one is looking at you for breakfast) The involved objects are: a db table called creature_movement, one with the little strange name db_script_string, one creature you want to teach a way and - last but not least you in the game with GM rights activated. A SQL interface to the database is also needed - equal which you prefer. The Information created in this process later can be <recycled> and used in scripts - eg some escorts type follower or the same way some boss scripts. In any case we recommend to finish the waypoints first and to deal with scripts later. BASICS - what do I need to know The route is stored in creature_movement in the following way : id = the guid of the mob and point = an autoincrement counter starting at 1. According to this waypoints always are just pointing to a single creature and - changing single waypoints later is a mess. Mostly the starting point of the route is the spawn poin. Leaving this way maybe possible but not effective. In all cases memorize the spawnpoint cause here your route starts. Also be aware of programming waypoints needs some time and maybe a lot of running work too.... STEP 1 - cleaning up First find your npc. You need the id and the guid of him. .go creature <guid> may be helpful. .npc info (target the npc first) gives the needed numbers. If youre replacing an old way perhaps save it now. Looking at the waypoints is simply done with SELECT * FROM creature_movement WHERE id = <guid> To erase former informations in the database you simply use DELETE FROM creature_movement WHERE id = <guid> Now your npc has no waypoints. STEP 2 - The running job Do the following : select your npc switch off his need to visit waypoints UPDATE `creature` SET `MovementType`=1 WHERE `guid`= <guid> LIMIT 1; select the npc then type .npc follow EXCURSION - server manners If that looks strange - lets look at the sense behind. When you visiting the wow world just a part of it is transferred to the client and also in the core just the parts are loaded where some player action occurs. The same way not used areas are taken out of memory on client and server side. You can imagine that a circle-like area around your character. When programming long ways you could get error messages cause some parts of your way are unloaded. Cause you have to select the npc to set his ways and if you are going too far away it is automatically deselected. OK now position yourself at the first spot and type with npc selected .wp add <guid> Congrats - The first waypoint has just been made. Between 2 waypoints the npc always takes a straight line - so to make realistic curves you have to do this by setting more waypoints to simulate it. Follow your path and set your waypoints - and dont forget less is more every waypoint is server workload so just make the neccesary. The npc is going through the waypoint list till the end. When hes at the end restarting again with the first waypoint. That means you must set the way more or less in a circle to return to starting point - else you will see a lost creature hopping through the fields searching for the first entry with odd behavior. Step 3 - Nothing without verification Switch on waypoints for your companion UPDATE `creature` SET `MovementType`=2 WHERE `guid`= <guid> LIMIT 1; if the mob is doing nothing try typing .reload all Now the creature should start moving and following your route. Watch one "round" to see if it all works correctly. Step 4 - EXTRAS - cream on top To make additional actions for your (now running) creature you have to access a single waypoint to tell him an action. If you look into your waypoints select * from creature_movement where id = <guid> You see the following data fields : 5 textid, emote, spell, waittime and a script_id. And a - empty - wpguid. EXCURSION - searching for guids To put something into a waypoint you have to identify it. That's not that easy when you made 30 or 40. Normally waypoints just exist in the database. To work with them visually, the first step is to spawn them - yes - spawn ! Normally a waypoint has no guid. .wp show <guid_of_your_npc> The core generates guids for every waypoint you use atm. To optionally control it - on the right side of table select * from creature_movement where id = <guid> Making long distance ways it can happen that not all wps are generated - then simply walk to the other part and use the command again. Now you're able to identify every single waypoint by his guid in the database. VERY IMPORTANT - clean up when your finished. Every spawned waypoint uses a guid - like you created a lot of mobs. When your finished type .wp show off - to delete the waypoint dummies STEP 5 - WAIT - for what ? is at it says ... just standing there around doing nothing simply set the wait time - be aware that this are milliseconds ... one minute = 60000 STEP 6 - TEXT - Adding Speech There are textid1 to textid5 to be used from 1 up. if more than one is used randomly one will be chosen. To make this far from easy - there is no text field. Its a reference into db_script_string. And to make it just more complicated entries must be between 2000000000 and 2000010000 !!! so you have to add your text into that table and afterwards you can tell the waypoints. just use content_default for your messages - the other fields are for translations into different languages STEP 7 - EMOTES - clapping npcs Simply store an emote number here reference you'll find in the dbc emote tables STEP 8 - SPELLS AND SCRIPTS This is going too far for a introduction. You may find Information about possible spells and scripting at other tutorials. ADDENDUM - THE MESSY THING To change a single waypoint entry is a challange. Ok - a position change can be easy done by .npc move When its spawned. But inserting a new point .. you first have to create that point. Than you must free the sequence number he should use - they are a unique key so no equals allowed in the database - by rising all upper waypoints one step up and after that you can give the new one the insertion number. Works with 5 waypoints but is a challange for a long route. The other way round - to swap the gps coordinates - is also not an easy task. So take care that the basic waypoints are all correct and working. In case of error often it will be faster to rebuild the path from scratch than playing around.
  8. 2 points
    Today I bring you a quick update on the Rabbid Grizzly and the Blighted Elk that roam the Dragonsblight. Reworked all spawn locations and removed a huge amount of duplicates. I have added a before and after picture of an area that showed the most obvious improvement.
  9. 2 points
    Can be downloaded from: MySQL download Notes for guide * Can only install 32Bit or 64bit - Can't install both (blame Oracle, not us) * Must match the server version you wish to compile either 32Bit or 64Bit.
  10. 2 points
    So, I'm not sure if this gets asked a lot... But I'm extremely curious... How did you guys (the dev team at mangos) actually create the core? Wouldn't you need to get Blizzard's "secret server files"? I'm very curious.
  11. 2 points
    I have added WoWhead tooltips to the getmangos website. This change is site-wide and immediate. Methods of inserting tooltip popups. Using the standard insert link and linking to a wowhead.com item page will get you a popup in a link. Text with a popup link Click the new image in the editor bar above (second from the left in the top row) and enter the item ID. Linked by itemid Linking an image. Exactly the same as the above methods. The above will work anywhere on the site. This means you can link items in bug reports, forum posts etc.
  12. 2 points
    Hi,antz. I check the db character set,it's "latin1",then I change it to "utf-8",It works! thank you very much!!! ps:I suggest add the "DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" in the end of all create database sql at InstallDatabases.bat/InstallDatabases.sh. like this: %mysql%mysql -q -s -h %svr% --user=%user% --password=%pass% --port=%port% -e "create database %wdb% DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
  13. 2 points
    The fix works as intended. Will PR in the next few (days?) and close this thread when completed Thanks @Korisko for testing it out for me. ..And broke a few other things. haha
  14. 2 points
    I might have a fix for this.. "Might" being the key word... If you want to try it, I will have it added to a fork of the repo and you can clone/build trying that... Will have something within the next 24 hours for you to test if interested?
  15. 2 points
  16. 2 points
    Thank you !! It's very rewarding for everyone here to hear that all their voluntary hard work is appreciated. We work on MaNGOS because we enjoy it and we want others to as well
  17. 2 points
    If you install Doxygen and then point it at the sourcecode if should generate a chunk of code hierarchy which you can read
  18. 2 points
    INSERT INTO `creature_ai_scripts` (`id`, `creature_id`, `event_type`, `event_inverse_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action1_type`, `action1_param1`, `action1_param2`, `action1_param3`, `action2_type`, `action2_param1`, `action2_param2`, `action2_param3`, `action3_type`, `action3_param1`, `action3_param2`, `action3_param3`, `comment`) VALUES ('2123300','21233','11','0','100','1','0','0','0','0','21','0','0','0','0','0','0','0','0','0','0','0','Prevent Movement'), ('2123301','21233','9','0','100','1','0','50','50','200','11','36238','1','0','0','0','0','0','0','0','0','0','Cast Fel Cannon Blast'), ('2246100','22461','11','0','100','1','0','0','0','0','21','0','0','0','0','0','0','0','0','0','0','0','Prevent Movement'), ('2246101','22461','9','0','100','1','0','50','50','200','11','36238','1','0','0','0','0','0','0','0','0','0','Cast Fel Cannon Blast'); Seems to work very well. What do you think? @H0zen
  19. 2 points
    Hey Rex...I ran into the same problem. Use PhP version 5.6 instead of the version 7. That should fix your problem. The problem stems from the different sripts used in PhP 7 vs PhP 5.6. The newer version relies more on MySQLI rather than MySQL libraries. You can use version 7...but it'll take some major recoding. Hope this helps!
  20. 2 points
    Hi, I'm Naizian. I'm from NY and am looking into running a vanilla server and hope this is the one. Thanks, Naiz
  21. 2 points
    Hello and welcome to the site, if you need any assistance just let us know
  22. 2 points
    So you've found a bug you want to fix, or a feature you want to implement, thanks! If you follow this guide it will make it much easier for the community to review your changes, and the core team to get them included in the next release. If you need an introduction to git, check out the tutorial and Everyday GIT With 20 Commands Or So. Making Your Changes The first thing you need to do is obtain a clone of the MaNGOS repository (We will assume MangosZero in these examples) $ git clone --recursive http://github.com/mangoszero/server.git 0server $ cd 0server Then you need to create your new branch: $ git checkout -b make_mangos_scale Switched to a new branch "make_mangos_scale" Now you're ready to get coding. Be sure to include tests which demonstrate the bug you're fixing, and fully exercise any new features you're adding. You should also take care to make sure the documentation is updated if you're changing the API. Once you've finished making your changes you need to commit them. $ git commit -a -m "I made MaNGOS scale by adding quantum tunneling" Created commit 29f8baa: I made MaNGOS scale by adding quantum tunneling 1 files changed, 0 insertions(+), 1 deletions(-) Preparing your changes for submission. Now that you've made your changes it's time to get them into a patch. We need to update rails and fix any conflicts we had. $ git checkout master Switched to branch "master" $ git pull $ git submodule init $ git submodule update ... $ git checkout make_mangos_scale Switched to branch "make_mangos_scale" $ git rebase master Once you've fixed any conflicts, you're ready to create a patch: $ git format-patch master --stdout > make-mangos-scale.diff Now you can attach that patch file to a getmangos.eu tracker ticket and add the 'patch' tag. Reviewing Changes To apply someone's changes you need to first create a branch: $ git checkout -b koz_made_mangos_scale Then you can apply their patch $ git am < their-patch-file.diff Once you have a working copy, you should take note of the following kinds of things: Are you happy with the tests, can you follow what they're testing, is there anything missing Does the documentation still seem right to you Do you like the implementation, can you think of a nicer or faster way to implement a part of their change Once you're happy it's a good change, please comment on the ticket indicating your approval. Your comment should indicate that you like the change and what you like about it. Something like: I like the way you've restructured that code in Server namespace, much nicer. The tests look good too. If your comment simply says +1, then odds are other reviewers aren't going to take it too seriously. Show that you took the time to review the patch. Once three people have approved it, add the verified tag. This will bring it to the attention of a committer who'll then review the changes looking for the same kinds of things. Congratulations and Thank You! Once your changes have been applied, you've officially become part of the large community of independent contributors working to improve MaNGOS. Important Notes The MaNGOS core team prefers that you create a github fork only for large changesets which are likely to involve a lot of code reviews/changes back and forth, or if 2 or more people are working on the same feature/bug. But of course, like all the rules, exceptions can be made for cases that demands for it.
  23. 2 points
    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.
  24. 2 points
    You have no idea just how many hoops we had to jump through to massage the tracker data into something useful !
  25. 2 points
    Its not that simple. The core in itself doesnt support custom XP rates. Adding that would mean implementing support everywhere. Unlikely a custom and not necessarily useful functionality is added. This can already be done in a way in Eluna. Assuming the XP hook works as intended, you can use it: PLAYER_EVENT_ON_GIVE_XP = 12, // (event, player, amount, victim) - Can return new XP amount and just make it return a bigger XP amount than what "amount" variable is. You can make it player specific rate relatively easily and could store the rates to DB as well. Quick draft: local function OnGiveXp(event, player, amount, victim) return amount * 1.2 end RegisterPlayerEvent(12, OnGiveXp)

Contact Us

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

Privacy Policy | Terms & Conditions

Repositories

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®
×