E8 - dirigeant de la capitale. Au declenchement le module le retrouve par son creature.guid (nouvelles cles siege_*_boss_spawn), force le chargement de sa grille si aucun joueur n est present, retire les drapeaux bloquants reellement presents, applique niveau et points de vie, et le designe comme objectif du commandant. Sa mort est detectee a chaque tick et vaut victoire immediate. En fin d evenement tout est restaure : drapeaux exactement ceux qui avaient ete retires, niveau, points de vie, faction, et sortie de combat. Rien n est ecrit en base, un arret du worldserver laisse donc la creature intacte. Le reglage du dirigeant est absolu et par ville (siege_*_boss_level, siege_*_boss_health, siege_*_boss_faction, 0 = ne pas toucher) et non plus un multiplicateur global : les deux chefs n ont rien de comparable, Anduin depasse le milliard de points de vie quand Vol jin, reste au niveau 83, en a quelques milliers. Un multiplicateur de 50 sur Anduin donnait 69 milliards. AcceptCommand() ne pilote que le deplacement : une cible d attaque prioritaire (SetSiegeTarget) a ete ajoutee, sinon les bots atteignaient le trone et passaient leur temps sur la garde rapprochee. Correction du recrutement, defaut signale en jeu : des bots Alliance se retrouvaient enroles dans l assaut sur Hurlevent. La cause est dans le core, PlayerBotBaseInfo::GetRandomCharacterByFuction() se termine par return characters.begin()->second et renvoie donc le premier personnage du compte, faction ignoree, quand il n en trouve aucun de la faction demandee. Le module choisit desormais lui-meme le personnage et le connecte par BGSType_Online_GUID, avec verification de la faction apres connexion et garde-fou dans CommandSiege::AddBot. Le quota est rendu sur tout refus, sinon la horde arrivait incomplete. Verifie : 15 bots recrutes, 15 horde, 15 au niveau 110. .siege status affiche l etat du dirigeant en direct. Reste ouvert : aucun assaut n a encore entame les points de vie d Anduin. La horde entierement horde se fait laminer par la garde avant le trone, la ou les essais precedents progressaient plus loin uniquement parce que des bots Alliance traversaient la ville sans etre inquietes. A retester avec l effectif complet de 50. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
DestinyCore
🚀 Build Status
| Windows | GCC | Clang |
|---|---|---|
📖 Introduction
DestinyCore is a modern, modular MMORPG server framework written in C++ that supports multiple platforms (Windows, Linux, macOS) and builds cleanly with GCC, Clang, and MSVC.
It is designed to be lightweight, scalable, and extensible, providing developers and server administrators with a stable foundation for World of Warcraft® (Legion 7.3.5) and beyond.
Key goals of DestinyCore:
- ⚡ Modern C++ design (C++20+)
- 🔌 Modular architecture (authserver, worldserver, shared libs)
- 🤖 Integrated PlayerBots system
- 🌍 Multi-database support (auth, characters, world)
- 🛠️ Easy build system (CMake + GitHub Actions CI)
- 🎮 MMO-ready networking with scalability in mind
🛠️ Requirements
DestinyCore depends on modern development tools and libraries:
- CMake 3.31+
- Boost 1.84.0
- MySQL 8.0
- OpenSSL 3.x
- GCC / Clang / MSVC (Visual Studio 2022 recommended)
📦 Installation
-
Clone the repository:
git clone https://github.com/slash-design/DestinyCore.git cd DestinyCore -
Create a build directory:
cmake -S . -B build -DTOOLS=ON cmake --build build -
Configure your databases (
auth,characters,world) and import the SQL structures provided in/sql/base. -
Start the servers:
./bin/worldserver ./bin/bnetserver
🤝 Contributing
We welcome all contributions!
Whether you’re fixing a bug, improving documentation, or adding new features — PRs are always appreciated.
- Fork the repo
- Create a feature branch
- Submit a pull request
🐛 Reporting Issues
Issues can be reported directly via the GitHub Issue Tracker.
Before creating a new one, please check for existing reports to avoid duplicates.
📜 License
This project is licensed under GPL v2.0.
See the LICENSE file for details.
🌐 Links
⭐ If you like DestinyCore, consider giving the project a star on GitHub!