La horde etait recrutee sans regard pour les roles : n importe quelle classe, avec la specialisation que le personnage portait deja. Les IA de classe savent pourtant distinguer les roles - BotPaladinAI soigne en Sacre, BotPriestAI hors Ombre, BotShamanAI en Restauration - mais cette logique ne servait a rien puisque la specialisation n etait jamais imposee. Le recrutement vise desormais des quotas, nouvelles cles siege_tank_pct et siege_healer_pct (10 et 20 par defaut, somme plafonnee a 60). Les soigneurs et les tanks sont engages en premier : sans eux la horde fond avant le trone. FindSpecIndexForRole interroge ChrSpecialization pour trouver la specialisation que la classe doit prendre, et le re-level la lui impose via parameter3. Les specialisations d index superieur a 2 sont ecartees : elles sont hors de portee du re-level, qui refuse talent > 2. Cela concerne la Restauration du druide, dont l IA de classe attend de toute facon un druide a trois specialisations, calibrage d avant Legion. L imposition de la specialisation passe par Player::ActivateTalentGroup, sur son propre tick du re-level. Une premiere tentative ecrivait PLAYER_FIELD_CURRENT_SPEC_ID a la main pendant que stats et auras etaient recalculees, et provoquait un debordement de pile. Verifie en conditions reelles, assaut a 50 bots : apparition de guerriers Protection et de druides Gardien en tank, de chamans Restauration en soigneur, sept talents par bot et par specialisation, aucun plantage, progression 29 a 30 sur 30. Reste a affiner : le quota de soigneurs n est pas toujours atteint faute de comptes disponibles dans les classes soignantes au moment du recrutement. 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!