Jump to content


Popular Content

Showing content with the highest reputation since 12/31/2018 in all areas

  1. 2 points
    No, you're not right! Updatemask is used as part of client/server dialog to send changes to the client. Everytime an object field CHANGES at the server side (from the last time it's update was sent), the corresponding updatemask bit is set to 1. When an object changes server side, the updatemask is sent along with the changed fields (and only those) to the client. After the object update is sent to the client, the updatemask resets all its bits to 0. When you first create an object first time, ALL FIELDS MUST BE INITIALIZED, so the updatemask bits are all 1 and you send to the client all object fields. There is no field left unintialized.
  2. 1 point
    What version of MySQL can Mangos run in 2019?
  3. 1 point
    I tested this on Debian 9.6 however this guide should work on any recent Debian distribution such as Ubuntu. Required Packages First we need to install all of the required programs and library's. Open up a root terminal. If your not root, enter this to become root sudo su Install the following packages apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev We need to grab the mysql stuff from here. Follow the instructions there. Also, choose mysql 5.7. A script needed later requires this so don't install mysql 8. Install the server with apt install mysql-server You also need to grab and compile libace. You can get it from here. Extract it and read the instructions.They're pretty straight-forward. It should be named 'ACE-INSTALL.html' or something similar. When thats done, enter this command. I highly recommend doing this even if your just keeping the server to yourself mysql_secure_installation I suggest these options: Don't use the password plugin Change the root password Remove the anonymous user Disable remote access for root Remove the test database Reload privileges Restart your system with init 6 Getting the Mangos source code Now we need the source code for mangos. Open up a terminal as root and go to the home directory: cd ~ Lets create a root directory for all of the mangos files mkdir mangos Now we clone the source code. Mangos servers above two are unstable or incomplete. Don't be surprised if something doesn't work or is missing. git clone https://github.com/mangoszero/server.git --recursive --depth 1 For the database git clone https://github.com/mangoszero/database.git --recursive --depth 1 If you want a different server(say mangos one), simply change the url. For example git clone https://github.com/mangosone/server.git --recursive --depth 1 For the mangos one server. If you want mangos two, simply do the same. Do the same with the database. Wait for the repos to be cloned (the server is about 200-250mb-ish) Compilaton The good part. Enter the mangos source directory cd server Make a new directory for the build files. mkdir build Go into it cd build Now run this to configure the makefiles cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos If cmake doesn't complain about anything, your good to go with compiling it. To speed up compilation, you need to know how many cores your cpu has. Most cpus have 2 or 4 cores. Search it up if your not sure. Now to compile it, simply enter this make -j2 Change -j2 to how cores you have. If you have 4 cores, change it to make -j4 If you only have one core, don't bother with the -j flag, just type in 'make' and hit enter. This will take a while depending on how fast your cpu is. Just be paitent. After a bit, mangos will be compiled(yay)and you will need to separate the needed files from the source code. To install it into your install prefix(default is /usr/local/bin/mangos), do this make install Database Setup: The Sequel Now for another database setup (i know, its crazy). This time, we will be loading some stuff into it. Enter the database folder you cloned earlier and execute InstallDatabases.sh ./InstallDatabases.sh If it says something similar to 'bash: ./InstallDatabases.sh: Permission denied', the script isn't marked as executable. Mark everything needed as executable by running this chmod -R +x *.sh Now have a go at running the script again. When execute it, you'll be brought to a menu. The defaults are fine for a new server so just press 'n' and hit enter You will have to give it your mysql details. This needs to be your server hostname(ip address), username, password and server port. The only things you need to change are the username and password. Keep in mind all of this must be done as the ROOT user. Game Data Now this is the longest part if decide to get mmaps. To run the server, you MUST extract the .dbc and .map files. To do this, copy everything in the tools folder to where your wow client is. Keep in mind the version of the client as it must be a specific version for this(mangoszero is a bit more lenient then others). You need 1.12.x (x can be any number) for mangoszero, 2.3.4 for mangosone, 3.3.5 for mangostwo(favourite), 4.3.4 for mangosthree and 5.4.1 for mangosfour. To extract the data, execute 'ExtractResources.sh' ./ExtractResources.sh Server Configuration Now to configure the server. Go to the mangos configuration folder cd /usr/local/bin/mangos/etc Copy the files to their proper name. DON'T delete them. They're a backup in case your .conf files get corrupted. cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf Edit realmd.conf and find the line 'LoginDatabaseInfo', change the information to suit your database. For example if my database hostname is localhost or, the port is 3306, username is root, the password is mangos and my realm database is realmd, it would look like this LoginDatabaseInfo = ";3306;root;mangos;realmd" Save the file and edit mangosd.conf. Look for lines, LoginDatabaseInfo, WorldDatabaseInfo and CharacterDatabaseInfo. Do the same to those lines as you did to the one in realmd.conf. You may wish to fully read mangosd.conf to fine-tune your server if you wish. Save the file. Starting the Server Now to see if your hard work has paid off. Go to where you installed the server and start realmd ./realmd Now start mangosd ./mangosd If theres a error mangosd or realmd can't fix, it'll tell you problem then exit. It will be up to fix it however. The most common problem is that the password or username is wrong. Try editing mangosd.conf or realmd.conf if thats the case. If it started and gives you a prompt, the server is loaded and awaiting a connection from a client. Starting the server with systemd This allows you to startup your computer and have mangosd and realmd load with it. Very useful on a dedicated server. We need to make 2 .service files to do this. touch /etc/systemd/system/mangosd.service touch /etc/systemd/system/realmd.service Edit mangosd.service with your preferred text editor. Don't type 'edit /etc/systemd/system/mangosd.service' unless you know how to quit vi. [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf Restart=on-abort [Install] WantedBy=multi-user.target Do the same with realmd.service [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Let systemd reload. systemctl daemon-reload Start realmd via systemd to see if the .service file is valid systemctl start realmd Do the same with mangosd systemctl start mangosd Check the status of both services with systemctl status realmd systemctl status mangosd If it's working, you should see something like a green OK on both daemons (fun fact: daemons and services are the same thing) then you should be good to enable them at startup. Do this for realmd systemctl enable realmd systemctl enable mangosd Restart your system init 6 Check that they started as root systemctl status realmd Do the same with mangosd If its good then mangosd and realmd will always start with your system until you disable them. Letting WoW clients connect to your server This is the 2nd last thing you need to do. This will allow WoW clients to connect to your server. We need to edit a table in the database. If you know what your doing with mysql, follow along but do the equivalent on the terminal. If you prefer doing things with a gui(graphical user interface, your using one right now!), lets install a gui mysql client. We'll use 'mysql-workbench' apt install mysql-workbench After its installed, check your start menu in 'Programming'. Start mysql workbench and click on your server. Enter your password and look on the lower left. Click on the little arrow next to realmd and scroll down to realmlist. Right click on it and click on 'Alter Table'. Go down to localAddress and double click on the ''. Change this to your lan ip. You can find out your lan ip by opening a terminal and typing in ifconfig You will see about 4-5 interfaces. If your connection is a wired one, you should look at a interface named 'enp' followed by letters and numbers. For example, 'enp14s0'. Then look at the 'inet' part. This is your lan ip. Do the same if your connection is wireless or wi-fi. Wireless connections will be named like 'wlp' with some letters and numbers. 'wlp20s0' is a example. Once you have changed localAddress to your lan ip, you need to change address to your external ip. Go here to find out your ip. Now we need to let realmd know that the database has changed. Stop it with systemctl stop realmd Now start it again with systemctl start realmd Connecting a WoW client to your server Nearly there! Go to where your wow client is and look for a file named realmlist.wtf. Delete everything in this file and put the following stuff in it set realmlist set patchlist Change to your server ip. It can be the lan ip if its on the same network as the server. Now for the moment of truth. Open up WoW.exe(not the launcher)and wait for it to load. Skip the cinematic if want by pressing escape(esc). Now login into the server by using administrator as the email and no password. Choose the only realm and create your character. You now have a functioning WoW server for you and your friends to play on! Also, since you logged in using the admin account, you can use game master commands. Type in the chat '.gm help' for a list of commands currently in mangos. Have fun with it!
  4. 1 point
    I finally found this forum and couldn't be more excited! I've only been playing since 2015, but love the game and would like to set up my own private server at home, so here I am! Clearly a lot of work has gone into this, so from a newbie - thank you!
  5. 1 point
    This is caused by warden. If you don't care about anti-cheat and extra security, just disable it. Look near the bottom of mangosd.conf to see the warden settings. It should be self explanatory on how to change it.
  6. 1 point
    That's his own python core.
  7. 1 point
    Check mangosd.conf for parameter Expansion and set it to 2. Restart mangosd.
  8. 1 point
  9. 1 point
    Where did you find that line? Please specify the file and line number, as I can't manage to find it anywhere in mangos one sources...
  10. 1 point
    UPDATETYPE_CREATE_OBJECT2 is sent for entities which have "position" in space (x, y,z coords), i.e gameobjects, corpses, creatures, players. The UPDATETYPE_CREATE_OBJECT is sent for entities without position, i.e items, bags
  11. 1 point
    mangosd.conf here you can change : Rate.XP.Kill = 1 Rate.XP.PetKill = 1 Rate.XP.Quest = 1 Rate.XP.Explore = 1
  12. 1 point
    I do not check top of the header (it can be done using the sources), but should note that a packed GUID has variative length. In your post, the whole structure uint8 packedGUIDMask # for example, 0xFF uint64 packedGUID is termed as "packed GUID". It contains a number of bytes (1 to 8) for uint64. The number is equal to the number of non-zero bits in the bitmask packedGUIDMask, thus the length of the filed is well defined.
  13. 1 point
    You could find the method converting 64-bit (GUID) data to a packed GUID here. BTW, 1.12 client does not use this, which was/is a usual compatibility issue while backporting handlers to it. A brief explanation. A GUID is 8-byte long; consider is as a byte array A where A[0] is the lowest GUID byte, ..., A[7] is the highest one. Create a side byte (the bitmask) this way: if A[i] is nonzero then i-th bit is 1, else the bit is 0. Then we can omit zero-valued elements of A from transfer (a packet), and transfer the bitmask following non-zero elements of A only. In the worst case (like items on a long-living realm) we get the 0xFF bitmask and will transfer 9 bytes instead of 8 (non-packed GUID). However in the best case (player GUID under 256), we get bitmask 0x01 and transfer only 2 bytes instead of 8. A packed GUID emerges by the protocol in packets that may contain a player GUID, saving bandwidth for several (zero-valued) bytes.
  14. 1 point
    I just leaving this here (yep, this is answering to my own question, but I will test it in nearest future and then will post the result here) (Thanks to Talendrys for link to this repo)
  15. 1 point
    An ObjectGuid is a 64bit number which uniquely identifies an entity (Player, GameObject, Creature, etc.). Though the only requirement is to be unique, current implementations try to encode as much information as possible into this number, to limit external queries. For example, datas taken from sniffs revealed that the most significant bytes from the Blizzard's GUID identifies the entity type. These bytes were named High Guids (because of their position in the GUID). Low GUIDS are simply entries from databases, or counters, which can help figuring what exact entity is. Technically speaking these High and Low GUIDS have no importance, and it's up to you how you define the ObjectGuid, as long it is UNIQUE.
  16. 1 point
    AFAIK the only difference between these two is the size. The compressed update may contain (and does, actually) updates for several objects at once. IIRC the compression is made simply by gzipping the packet data. Unsure if usual update SMSG_UPDATE_OBJECT may contain several updates at once, but perhaps it may as well. However I'm certain that these packets are fully interchangeable, i.e. equivalent. A compressed update becomes critical when you get an event-reach world around your character. It may be raiding a boss, a BG, just a capital with 200+ players so on. The updates are "broadcasted", i.e. sent to every player participant, and network bandwidth fades quickly.
  17. 1 point
    I have set WorldLogFile parameter, file was created but nothing write to it. File always empty. Maybe I missed something ? Can you please add part of your 8606 build log just as example ? (I mean that part where CMSG_PLAYER_LOGIN processes) WELL, I do not need this already, found the solution - I also should edit LogMask (set it to 65651 for including NETWORK information)
  18. 1 point
    You need rather to send the confirmation that the server have handled the update successfully. This is a short responce packet. For 1.12 client, it would be probably the opcode SMSG_UPDATE_ACCOUNT_DATA = 0x20C, while for 2.4.3 it is SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x0463, Just remember this is a dialog, a query - a responce. On the TBC (2.4.3) client, the next packets represent another dialog phrase: CMSG_READY_FOR_ACCOUNT_DATA_TIMES SMSG_ACCOUNT_DATA_TIMES with the only difference that here CMSG is a short query and SMSG is a longer responce.
  19. 1 point
    I believe the table you are looking for is playercreateinfo_spell this will allow you to assign spells to players on startup. It has been some time, but I believe table playercreateinfo_action will allow you to place the spells in specific actionbar slots. Hope this helps.
  20. 1 point
    MaNGOSVB Recruitment Short and Sweet, we are looking for more developer's on our .NET branch of MaNGOS, It includes unique features such as Map Clustering, which allows for more than one concurrent WorldServer to host the game. Requirements Basic Knowledge of vb.net, querying of SQL and how to pull, push and commit on GitHub. Willingness to become a MaNGOS Developer and be added to the getMaNGOS Developer Discord Repository: https://github.com/mangosvb/serverZero IssueTracker: https://www.getmangos.eu/bug-tracker/mangos-vb/ IssueTracker (Unused): https://github.com/mangosvb/serverZero/issues
  21. 1 point
    The migration to OpenSSL 1.1 is now complete!
  22. 1 point
    World of Warcraft Torrent Links Directory World of Warcraft (1.12.1) For MaNGOS Zero https://www.thepiratebay.org/torrent/5250337/World_of_Warcraft_1.12.1_Classic_(Install_and_Go_) World of Warcraft: The Burning Crusade (2.4.3) For MaNGOS One https://www.thepiratebay.org/torrent/5186818/World_of_Warcraft_-_2.4.3_TBC_Ready World of Warcraft: Wrath of the Lich King (3.3.5) For MaNGOS Two https://www.thepiratebay.org/torrent/8341516/World_of_Warcraft__Wrath_of_The_Lich_King_(WOTLK_3.3.5a) World of Warcraft: Cataclysm (4.3.4) For MaNGOS Three magnet:?xt=urn:btih:848c1f366be2d7fbe4b69bd6bfb57daabd767b08&dn=World%20of%20Warcraft% World of Warcraft: Mists of Pandaria (5.4.8) For MaNGOS Four https://www.thepiratebay.org/torrent/16577734/World_of_Warcraft_5.4.8
  23. 1 point
    @bgood https://www.getmangos.eu/forums/topic/9038-playerbot-ai-commands/
  24. 1 point
    Flawless install. Thank you for the precompiled binaries. Not having a solid internet connection, this keeps me sane.
  25. 1 point

    Version 1.12.0


    Once on the mega site right-click and download the patch you need. Download page contains: WoW-1.12.0-enGB-patch.exe wow-1.12.0-dede-patch.exe WoW-1.12.0-enUS-patch.exe WoW-1.12.0-frFR-patch.exe WoW-1.12.0-zhCN-patch.exe
  26. 1 point
    you _must_ use the guid format that is expected to be sent by the client. If you chose the wrong one, the client will either crash (most likely) or produce total crap.. Edit: To be clear: This is a choice that was made by blizzard developers, and if you want to talk to the client, you must use the 'language' the client understands. This is nothing where you can chose.

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®
  • Create New...