Npc positioning Implemented slope check to avoid unwanted climbing for some kind of movements (backwards, repositioning etc.) Implemented backwards movement Re-implemented circle repositioning algorithm (smartest than retail, but with the same feeling) Fixed random position of summoned minions Improved pet following movement. Also, they attack NPC from behind now. Thanks to @Footman Swimming creatures Fixed max_z coordinate for swimming creatures. Now only part of their body is allowed to be out of the water level Fixed pathfinder for swimming creatures creating shortcuts for specific segments, now they swim underwater to reach the seashore instead of flying above the water level. Creatures with water InhabitType but no swimming flag now, when not in combat, will walk on water depth instead of swimming. Thanks @jackpoz for the original code UNIT_FLAG_SWIMMING in UpdateEnvironmentIfNeeded to show the swimming animation correctly when underwater Implemented HasEnoughWater check to avoid swimming creatures to go where the water level is too low but also to properly enable swimming animation only when a creature has enough water to swim. Walking creatures Extended the DetourNavMeshQuery adding area cost based on walkability (slope angle + source height) to find better paths at runtime instead of completely remove them from mmaps improve Z height in certain conditions (see #4205, #4203, #4247 ) Flying creatures Rewriting of the hover system Removed hacks and improved the UpdateEnvironmentIfNeeded. Now creatures can properly switch from flying to walk etc. Spells LOS on spell effect must be calculated on CollisionHeight and HitSpherePoint instead of position coords. Improved position for object/creature spawned via spells Improved checks for Fleeing movements (fear spells) Other improvements Implemented method to calculate the CollisionWidth from dbc (used by repositioning algorithm etc.) Improved raycast and collision checks Co-authored-by: Footman <p.alexej@freenet.de> Co-authored-by: Helias <stefanoborzi32@gmail.com> Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com> Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
AzerothCore
Introduction
AzerothCore (AC) is an open-source game-server application for World of Warcraft, currently supporting the 3.3.5a game version.
It is written in C++ and is based on MaNGOS, TrinityCore and SunwellCore.
Why AzerothCore?
- Stability
- The authenticity of the content
- Modularity
- A lot of modules to choose from
- Better configuration files system
- Compatibility with other emulators
- Friendly and helpful community
Stability
As players and administrators ourselves, we take great care into the stability of our core. Other projects focus on the development side of things and tend to forget that users want stability above everything else.
Hence why nobody is allowed to push commits directly to the core. All changes are reviewed and tested before they get to the master branch which means we need as many testers as possible to avoid stalling issues.
Authenticity
Fixing and implementing missing blizzlike content is one of our priorities, and we can boast to offer the most content-complete open-source emulator.
Modules
Modules are essential to AzerothCore's success. Modules allow users to plug them in and out easily, and do not require to modify the core files. It also means users can keep pulling the git changes from the main repository and only develop their modules.
We have a lot of modules already made, some of them are very important and will ease your work:
- Transmogrification
- Eluna (lua engine) support
- Full list available in the AzerothCore catalogue (link at the end)
Configuration files
Our configuration file system allows the user to use a tiny configuration file for better readability and maintenance.
Compatibility with other emulators
Not very far from its ancestor TrinityCore, most scripts can be adapted quite easily. For MaNGOS compatibility, it might require more knowledge but it shares a common base.
Philosophy
Our main goal is to create a playable game server, offering a fully working game experience.
Here are the main points we focus on:
- Stability
- Ease of use / Practicability
- Playability (in-game content)
- Customization
- Community-driven software (check our discord)
We also welcome new users (even non-English speaking users!) and help them learn/improve their skills (C++, SQL, Git, software collaboration, tutoring/wiki, etc...).
Unlike other projects which focus more on the developer's side of things, we want users to be able to run their server with as few troubles as possible. All of our contributors run their private servers (local or public).
That's why AzerothCore is easier to use, to maintain, to understand, to develop on, and to customize to suit your needs, than other emulators.
In short, we focus on the user experience (UX), whether it be the player's experience, the developer's experience, or the administrator's experience.
How to Thank us
Being an open-source project, we rely on volunteers to pursue development. Here are ways to help us if you use AzerothCore:
Github Star
Click on the "star this repository" button to help us gain more visibility on Github!
By contributing
Check the CONTRIBUTING section below.
Financially 💰
You can support the project by financing the resolution of issues using Bountysource.
Advertising
By talking about us on different platforms or to people who would like to get involved.
Contributing
AzerothCore is a learning project, and there are lots of different ways to contribute to the project:
- By testing our fixes (we can teach you how to correctly use Git to help us but that will also help you out tremendously)
- By developing directly to the core or the modules
- By reporting bugs within the project
- By creating new modules
- By improving our wiki
- By providing direct support to our community (on Discord, StackOverflow or specialized forums)
- By making extra content (video tutorial for example)
- By putting bounties on issues
If you want to contribute to the project, you will find a lot of resources that will guide you in our wiki.
Feel free to join us on our Discord chat server where we teach a lot of new people how to get started and who are now important contributors!
Installation
Installation instructions are available here.
We also have an auto-installation bash script here (Warning: try it/analyze it before running it).
Dockerization of AzerothCore is fully supported, and we have various community-made tutorials (eg: AWS / Digital Ocean installation).
Support
Our self-made wiki probably has a lot of answers for you.
For help requests, it is recommended to ask your question on StackOverflow and link it in our chat.
Authors & Contributors
This project exists thanks to:
- The AzerothCore developers and contributors
- The SunwellCore developers xinef and pussywizard
- All the TrinityCore developers and contributors
- All the MaNGOS, ScriptDev2 and UDB developers and contributors
Important Links
- Website
- AzerothCore catalogue (modules, tools, etc...)
- Module template / Module skeleton
- Our community hub (Discord)
- Our wiki
- Our Forum
- Our Facebook page
- Our LinkedIn page
Sponsors
List of organizations that help AzerothCore:
License
- The new AzerothCore source components are released under the GNU AGPL v3
- The old sources based on MaNGOS/TrinityCore are released under the GNU GPL v2
