Le mercenaire parle desormais avec le modele de langage de son employeur, paye par la cle d API de celui-ci. Inspire de mod-ollama-chat (AzerothCore), mais avec trois exigences qui changent l architecture : cle apportee par le joueur, plusieurs fournisseurs, aucune persistance. Trois adaptateurs natifs : OpenAI (et tout service parlant son dialecte, via une adresse personnalisee : Mistral, Groq, OpenRouter, Ollama, LM Studio), Anthropic et Gemini. Le joueur fournit sa cle en jeu par « !api <fournisseur> <modele> <cle> », la retire par « !api off ». La cle n atteint jamais un disque. Elle est interceptee des la premiere instruction de HandleChatMessage, avant tout journal et toute rediffusion ; elle vit en memoire, est ecrasee caractere par caractere avant liberation - un simple clear() laisserait le secret lisible dans le processus - et disparait a la rupture du dernier contrat, a la deconnexion et a l arret du royaume. Aucun appel reseau ne part du fil du monde : un fil dedie consomme une file d envoi, les reponses reviennent par une file relue au tick. Un appel prend une a dix secondes ; le faire dans la boucle du monde figerait le royaume a chaque replique. Le mercenaire repond dans le canal ou on lui parle. Le chuchotement reste l affaire de l employeur ; dans le groupe et a voix haute, tout compagnon peut l interpeller, mais un seul mercenaire repond - celui qu on nomme, sinon le premier sous contrat - et c est toujours la cle de l employeur qui paie. Contrepartie indispensable : les ordres passent au prefixe « ! » (!follow, !stop, !@heal stop). Sans cela, le mot « stop » au detour d une phrase aurait fige le mercenaire. Deux obstacles contournes : le rapidjson embarque ne compile plus avec GCC 14 et le core ne s en sert que par son lecteur evenementiel - un extracteur JSON cible le remplace, echappements et sequences Unicode compris ; libcurl est lie directement plutot que d activer WITH_CPR, qui recompilerait curl et cpr en entier pour le meme service. Inclut un correctif sans rapport decouvert en chemin : une recrue du siege des capitales abandonnee en depassement de delai etait rayee des registres sans etre deconnectee, et chaque assaut laissait ainsi quelques bots vagabonder. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
SylvaniaCore
Le core C++ du royaume La Légion de Sylvania Émulateur de serveur World of Warcraft® — Legion 7.3.5
📖 Présentation
SylvaniaCore est le core qui fait tourner La Légion de Sylvania, un royaume francophone World of Warcraft® en version Legion 7.3.5. C'est un fork de DestinyCore (lui-même issu de la lignée TrinityCore), maintenu et développé en continu pour les besoins du royaume.
Le dépôt sert à la fois de base de code vivante et de sauvegarde du serveur en production.
Philosophie : « blizz adaptatif »
Ce n'est pas un serveur fun ni un serveur rates x∞. Les valeurs authentiques de Blizzard (dégâts, tuning, économie) sont préservées ; le travail de fond consiste à corriger les écarts au blizzlike plutôt qu'à adoucir le jeu. Chaque bug rencontré en jeu est corrigé à la source — côté données ou côté core — jamais contourné à coups de commandes MJ.
✨ Ce que SylvaniaCore ajoute
Au-delà du core amont, le royaume apporte ses propres systèmes :
| Module | Description |
|---|---|
| 🤖 PlayerBots | Bots joueurs pilotables (src/server/game/PlayerBot) : ordres de groupe, rôles tank/heal, gestion d'équipement, remplissage automatique des champs de bataille |
| ⚔️ Siège des Capitales | Invasion quotidienne des capitales par des raids de bots, avec meneur désigné et joueurs flaggés PvP (src/server/game/CapitalSiege) |
| 💰 Mercenaires | PNJ de louage : un joueur solo recrute des compagnons contre pièces d'or, sous contrat (src/server/game/Mercenary) |
| 🇫🇷 Localisation frFR | Restitution des textes officiels français extraits du client 7.3.5 (quêtes, dialogues, broadcast texts) et traduction des contenus scriptés manquants |
| 🐛 Correctifs de contenu | Campagnes, donjons et quêtes remis en état zone par zone (Mardum, Île Vagabonde, Cime du Vortex…) |
🛠️ Prérequis
- CMake 3.31+
- Boost 1.84.0
- MySQL 8.0
- OpenSSL 3.x
- GCC / Clang / MSVC (Visual Studio 2022 recommandé)
Plateformes supportées : Linux, Windows, macOS.
📦 Compilation
-
Cloner le dépôt :
git clone https://github.com/BlaMacfly/SylvaniaCore.git cd SylvaniaCore -
Configurer et compiler :
cmake -S . -B build -DTOOLS=ON cmake --build build -j$(nproc) -
Créer les bases (
auth,characters,world,hotfixes) et importer les structures SQL fournies danssql/base. -
Lancer les serveurs :
./bin/worldserver ./bin/bnetserver
ℹ️ Le code source conserve volontairement les noms internes hérités de l'amont (
DestinyCore, cibles CMake, chemins de configuration) afin de rester compatible avec les mises à jour amont et de ne pas casser les scripts de déploiement existants.
🌍 Rejoindre le royaume
Le serveur de jeu est ouvert et le site officiel explique comment s'y connecter : legendesylvania.com
🤝 Contribuer
Les contributions sont les bienvenues — correction de bug, amélioration de la documentation ou nouvelle fonctionnalité :
- Forkez le dépôt
- Créez une branche dédiée
- Ouvrez une pull request
Un Discord est ouvert aux contributeurs et aux personnes qui souhaitent participer au développement du core : c'est l'endroit où discuter d'un correctif avant de se lancer, poser des questions sur l'architecture ou faire relire une PR. (Ce n'est pas le Discord des joueurs du royaume.)
🐛 Signaler un problème
Ouvrez un ticket sur le suivi d'issues. Vérifiez au préalable qu'un rapport identique n'existe pas déjà.
🙏 Remerciements
SylvaniaCore n'existerait pas sans le travail des projets dont il descend :
- DestinyCore — le core amont dont ce dépôt est un fork
- TrinityCore — la lignée d'origine
- ArgusCore, le projet de FlyingPhoenix — une référence majeure pour SylvaniaCore. Un travail considérable y a été mené sur le moteur, la couche réseau et les mécaniques de classes en 7.3.5 ; nous nous en inspirons régulièrement pour remettre en état des pans entiers du core. Merci pour tout ce qui est partagé ouvertement.
- mod-playerbots — référence sur la logique des bots joueurs
État de la CI du dépôt amont :
📜 Licence
Distribué sous GPL v2.0. Voir le fichier LICENSE.
World of Warcraft® et Blizzard Entertainment® sont des marques déposées de Blizzard Entertainment, Inc. Ce projet n'est ni affilié à Blizzard Entertainment, ni approuvé par elle.