Jump to content

Foereaper

getMaNGOS Developer
  • Posts

    599
  • Joined

  • Last visited

  • Days Won

    1
  • Donations

    0.00 GBP 

Foereaper last won the day on May 14 2018

Foereaper had the most liked content!

About Foereaper

  • Birthday 01/01/1940

Recent Profile Visitors

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

Foereaper's Achievements

Advanced Member

Advanced Member (3/3)

6

Reputation

1

Community Answers

  1. Since there's currently no tutorial in full for compiling and setting up a MaNGOS server on Windows, I'm brushing off the old dev21 build guide and updating it to be relatively current. If something needs to be changed, let me know and I'll do so. 1. INSTALLING DEPENDENCIES NOTE : Always use 64-bit version of dependencies where possible. There is no reason to compile and run the server in 32-bit mode unless you are restricted by OS or hardware. Install MySQL Community Server : MySQL :: Download MySQL Installer Install GitExtensions : Download Git Extensions from SourceForge.net Install OpenSSL : http://slproweb.com/products/Win32OpenSSL.html Download and install the FULL SSL version (not the one tagged Light) I would recommend installing both 32 and 64 bit OpenSSL libraries, this prevents future issues if you want to compile either 32 or 64 bit. If either of these say you are missing C++ redistributable packages, follow the prompts and install accordingly. Install CMake : https://cmake.org/download/ Get the latest Binary distribution for your platform 2. DOWNLOADING THE SOURCES For the sake of this tutorial we will be using Mangos Zero, but the same steps apply for One and Two. Change the GitHub links below accordingly. Create a folder named "Source" anywhere on your computer. This is the folder we will use to download the server and the database. Right click on the "Source" folder and click "Git Bash Here". Once the command prompt window opens, type in the following command and hit enter : git clone https://github.com/mangoszero/server --recursive --depth=1 This clones t he source as well as the submodules into the folder "Source/server". Once this is done, keep the command line window open and type the below command and hit enter : git clone https://github.com/mangoszero/database --recursive --depth=1 You should now have the database cloned to "Source/database", and you can close the command line window. 3. GENERATING THE BUILD FILES To generate the build files, which is what we will use to compile the server itself, open the CMake software you have previously installed on step 1. You now have two fields you need to fill in. Specifically : "Where is the source code : " In this field, you point to the "Source/server" folder you created earlier. (See below for example). "Where to build the binaries : " For this tutorial, we will use the same "Source" folder, however specify a new folder within "Source" and call it "build". (See below for example). After you have filled in both of these fields, hit "Configure". This will also prompt you which compiler to use! Make sure you select the correct compiler ! If you for some reason change any of the default values after configuration, you need to click "Configure" again BEFORE going to the next step. Once configuration is done, hit "Generate". If this finished without any errors, proceed to the next step. If you did however receive any errors, most likely you are missing one of the dependencies, have pointed to the wrong folders or selected the wrong compiler. Usually the error message you receive will make enough sense for you to isolate the issue. If not, make a new thread and provide the full output showing the error. 4. BUILDING THE CORE Once the build files are generated, either click the Open Project button next to Generate, or go to your "Source/build" folder and open the file MaNGOS.sln. This will open Visual Studio and you build your server like normal. I would recommend to compile the core in Debug mode (default) as that will provide you with crash dumps should the core crash for whatever reason, making it easier for us to help you debug. Once the core is done compiling, the server binaries, tools etc is located inside the "Source/build/bin/" folder, under either Debug or Release, depending on your choice. Copy the following files to wherever you want to run the server from. For the sake of this tutorial, make a new folder somewhere on your computer and call it "Server". lua_scripts folder ace.dll ahbot.conf.dist libmysql.dll mangosd.conf.dist mangosd.exe realmd.conf.dist realmd.exe If you compiled in Debug mode, also copy the following files to the "Server" folder. ace.pdb mangosd.pdb realmd.pdb If the core built successfully, move to the next step. If you have any compile errors, please post a full log displaying the error messages. Warnings can be ignored for now. 4. EXTRACTING GAME DATA NOTE: Tools should ALWAYS be compiled under Release mode, unless you are told otherwise during support. Debug tools will take A LONG TIME. You have been warned. Inside the "Source/build/bin/" and either Release or Debug folder there will be a folder named "Tools". Enter this folder and copy the following files: ExtractResources.sh make_vmaps.bat map-extractor.exe mmap_exclude.txt MoveMapGen.sh movemap-generator.exe offemsh.txt vmap-assembler.exe vmap-extractor.exe Paste these into your WoW directory and run ExtractResources.sh. Follow the prompts to extract. This can take a LONG time depending on your computer. Once this is complete, copy the following folders to your "Server" folder. dbc maps mmaps vmaps 6. INSTALLING THE DATABASE Enter the database folder located at "Source/database" Run InstallDatabases.bat and follow the on screen prompts to install the base database. Do mind, this database is the base database and will require you to run updates accordingly. The updates can be found in the separate folders inside "Source/database", specifically "Character", "Realm" and "World". The server will always notify you when you run the server files from the "Server" folder whether your database is up to date or not. If updates are required, apply them using your preferred SQL tool, like sqlyog, heidisql etc. NOTE : It is not a problem if runnign server with a higher DB content version. 7. INSTALLING THE SERVER Once all the above steps are complete, you are ready to configure your server and start playing ! Go to your "Server" folder copy and and rename the following files : ahbot.conf.dist -> ahbot.conf (This file is optional, depending if you want to use the AH bot or not!) mangosd.conf.dist -> mangosd.conf realmd.conf.dist -> realmd.conf Open mangosd.conf and edit lines 66, 67 and 68 to reflect your database information. Open realmd.conf and edit line 110 to reflect your database information. All other edits to the config files are completely optional. At this point your server should be completely operational for a local test. If you have any other questions or require further support, please feel free to create a new thread for your specific issues on teh appropriate section (not on commenting this post).
  2. Save it to a Lua file, put it in your scripts folder, change local NpcId = 123 to whatever entry ID you want to use for your npc
  3. You can do this through a gossip script local NpcId = 123 -- Entry ID of your gossip creature local MenuId = 123 -- Unique ID to recognice player gossip menu among others local function OnGossipHello(event, player, object) player:GossipClearMenu() player:GossipMenuAddItem(0, "Level me to 70", 1, 1) player:GossipMenuAddItem(0, "Nevermind", 1, 0) player:GossipSendMenu(1, object, MenuId) end local function OnGossipSelect(event, player, object, sender, intid, code, menuid) if (intid == 1) then player:SetLevel(70) end player:GossipComplete() end RegisterCreatureGossipEvent(NpcId, 1, OnGossipHello) RegisterCreatureGossipEvent(NpcId, 2, OnGossipSelect) Very rudimentary script, you probably want to add some more checks like whether the player is already 70 etc, but I'll leave that up to you
  4. As a side note, this will prevent EVERY error box from showing for any other program as well, as well for debug builds. Use at your own risk
  5. What I would personally do before starting to work on the AI, is note down ALL the spells for the specific class you are going to work on, strip everything out and start fresh.Not only would this give you a proper understanding of how the AI is set up currently, but you'd also instantly root out all the issues with the current AI, be it wrong spells or bad logic compared to 3.3.5a. If you look at this original commit, it shows you all the files edited for the player bots. Implement Playerbots · mangoszero/server@ee33683 · GitHub Notice the changes to Chat and ChatHandler specifically, where all the commands are parsed (Exactly like all the other core commands). This is where you'd add your confirmation/debug messages.
  6. The current main issue with the playerbots is the spell and gear availability as well as zones etc. The playerbots in zero are based off of 3.3.5a and the play style in said expansion. This causes some of the logic to fail, increasing the resource use and stability for bots as a whole (An example is Mage bots, they constantly attempt to cast conjure food, lagging the server out). This can easily be fixed by someone revising the logic and AI for each class, however it's not something I ever got around to do. On that note, I am completely against separating the player bots specifically from the core. The way the daemons communicate is through tcp/ip, which would cause a massive increase in network bandwidth usage, especially between the world and playerbot daemon. It's not feasible to stress the world daemon more than necessary, especially when the bots are literally utilizing the packet handler and player functions directly. AH bot on the other hand doesn't need access to the core what so ever and could easily be separated. The only thing the AH bot would need to do is monitor the AH tables in the database, nothing else is really needed.
  7. Please get the NPC in questions GUID and entry, it's most likely a waypoint coordinate hovering in the said case.
  8. This is more of an issue with mmaps than vmaps and/or maps. Do you have mmaps extracted and enabled?
  9. The newer sources use submodules. Submodules are other repositories that can be reused on other sources, which is why as an example the dependency folder is a submodule; It is reused on several Mangos versions. To properly clone Mangos Zero, use the below git command: [code]git clone https://github.com/mangoszero/server -b develop21 --recursive[/code] This pulls the correct submodules.
  10. The script itself looks correct, however the faction I am not sure about. I will look into it. Edit: The faction set in the script is faction 168. This seems to be wrong, as this is used for the Nethergarde Caravan. The first correct faction that comes to mind would be 128, which is used for "Enemy". Will test. Edit 2: Tested this on a clean compile and clean database without any edits, and this seems to be working as intended?
  11. This is not really a feasible option as we want the implementation to be dynamic between different expansions. Hardcoding client versions is the exact thing we want to prevent. We should figure out a dynamic way to handle the client version differences instead.
  12. The wiki is in the process of being rewritten for all versions after the implementation of the new build system :)
×
×
  • 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