BlaMacfly a95670ac0a Rivage brise : portage de l'Assaut 7.2 (scenario 1280, carte 1666)
La carte 1666 etait declaree mais entierement vide, et instance_template
y reclamait un script fantome. Les quetes 45102 « Begin the Assault » et
46734 « Assault on Broken Shore » etaient donc infranchissables : elles
relevent de ce scenario, et non de l'introduction 7.0 deja portee sur la
carte 1460.

PORTAGE, PAS TRANSCRIPTION. La source (dufernst/LegionCore-7.3.5, meme
lignee uwow) repose sur quatre extensions que nous n'avons pas :
onScenarionNextStep/getScenarionStep, CRITERIA_TYPE_SCRIPT_EVENT_2,
FunctionProcessor et une surcharge de GetClosestGraveYard. La
progression est donc inversee : au lieu d'etre rappele a chaque etape,
le script alimente les criteres officiels et le moteur avance seul --
la meme architecture que sur la carte 1460.

Les neuf criteres des huit etapes ont ete releves dans les DB2 du build
7.3.5.26972 (ScenarioStep, CriteriaTree, Criteria) et non recopies de la
source ; ils confirment ses identifiants d'asset. Sept sont de type 92
(SEND_EVENT_SCENARIO), un de type 73, un de type 68.

Six ecarts d'API traites, tous constates et non supposes :
InstanceScript(InstanceMap*), Conversation::CreateConversation (Player
n'a pas cette methode -- la source l'appelait sur une creature, cela
n'aurait pas compile), UNIT_NPC_FLAGS avec SetFlag64, DamageTaken a 2
arguments, OnSpellClick a 2, MovePath a 2.

NON PORTE : player_scripts_for_start_assault, qui sondait chaque joueur
a chaque tick pour lui imposer la quete 46730. Un donneur en base fait
le meme travail sans ce cout.

SQL joint :
- rattachement des 5 scripts a leurs 11 entrees, toutes verifiees
  exclusives a la carte 1666 ;
- les 87 points des 5 chemins scriptes. Ils vivaient dans
  waypoint_data_script, table absente de notre schema, d'ou leur oubli
  lors de l'extraction du 27/08. Le 11322708 est le vol d'arrivee :
  l'atteinte de son point 20 declenche l'etape 0, sans lui rien ne
  demarrait ;
- le donneur manquant de 45102, l'archimage Khadgar 116302, deja pose
  chez nous aux coordonnees de la reference mais jamais declare.

Les 593 creatures et 59 objets de la carte etaient generes depuis le
27/08 et n'avaient jamais ete appliques ; ils le sont desormais.

RESERVE : rien de tout ceci n'a ete verifie en jeu. Les credits de quete
116253 et 116279 sont en outre cables sur la fermeture des deux premiers
portails par deduction -- la quete parle de « First » et « Second Legion
Spire destroyed » -- et non sur une donnee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 23:34:53 +02:00

SylvaniaCore

SylvaniaCore

Le core C++ du royaume La Légion de Sylvania Émulateur de serveur World of Warcraft® — Legion 7.3.5

Wiki Discord contributeurs License: GPL v2 Stars Forks Fork de DestinyCore


📖 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…)

📚 Documentation

Ce README suffit pour installer et lancer un serveur. Tout le reste vit dans le wiki du projet :

🔧 Corriger le contenu Les classes de bugs récurrentes de ce core — scripts C++ non rattachés, hooks morts, quêtes sans objectif, butin, phases résiduelles — et comment les trouver. Le meilleur point d'entrée pour une première contribution.
⚙️ Configuration Référence de toutes les clés de configuration propres au royaume
🧩 Architecture du core Arborescence, lignée amont, pièges d'architecture
🤖 Modules PlayerBots · Mercenaires · Siège des Capitales · Autres customs
💥 Diagnostic des crashs Core dumps, redzone jemalloc, faux crashs d'arrêt
🩺 FAQ Dépannage Écran de chargement, PNJ disparus, personnage bloqué, boss infaisable…
🚧 Chantiers en cours Ce qui est ouvert, ce qui est clos, et les impasses connues

🛠️ Prérequis

  • CMake 3.31+
  • Boost 1.84.0
  • MySQL 8.0 ou MariaDB 10.6+ (le royaume tourne sur MariaDB 11.4)
  • OpenSSL 3.x
  • GCC / Clang / MSVC (Visual Studio 2022 recommandé)

Plateformes supportées : Linux, Windows, macOS.

📖 Paquets à installer, extraction des données client et compilation sur une machine modeste : Installation sur le wiki.


📦 Compilation

  1. Cloner le dépôt :

    git clone https://github.com/BlaMacfly/SylvaniaCore.git
    cd SylvaniaCore
    
  2. Configurer et compiler :

    cmake -S . -B build -DTOOLS=ON
    cmake --build build -j$(nproc)
    
  3. Installer les bases de données — voir la section Installation de la base de données ci-dessous.

  4. 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.


💾 Installation de la base de données

Le dépôt ne contient que les schémas auth, characters et shop. Les bases world et hotfixes sont trop volumineuses pour être versionnées : elles se téléchargent dans les releases du dépôt amont DestinyCore.

⚠️ N'importez jamais les fichiers de sql/base/dev/. Ce sont des structures vides (tables sans aucune donnée) destinées aux développeurs de l'amont. Les importer donne une base world creuse : le worldserver démarre, mais le client reste bloqué sur l'écran de chargement.

1. Télécharger la base amont

Récupérez la dernière release DB sur slash-design/DestinyCore/releases (à ce jour DB735.02.rar, ~84 Mo). L'archive contient deux dumps :

Fichier Base Taille décompressée
DB_world_735.02.sql world ~375 Mo
DB_hotfixes_735.02.sql hotfixes ~127 Mo

Ces deux dumps effectuent eux-mêmes leur CREATE DATABASE puis leur USE sur les noms world et hotfixes ; pour utiliser d'autres noms de bases, éditez ces deux lignes en tête de fichier.

2. Créer les bases et importer

# Bases auth / characters / world / hotfixes
mysql -u root -p < sql/create/create_mysql.sql

# La base shop n'est pas couverte par le script amont
mysql -u root -p -e "CREATE DATABASE shop DEFAULT CHARACTER SET utf8;"

# Schémas fournis par le dépôt
mysql -u trinity -p auth       < sql/base/auth_database.sql
mysql -u trinity -p characters < sql/base/characters_database.sql
mysql -u trinity -p shop       < sql/base/shop_database.sql

# Bases complètes issues de la release amont
mysql -u trinity -p < DB_world_735.02.sql
mysql -u trinity -p < DB_hotfixes_735.02.sql

3. Laisser le core appliquer les mises à jour

N'importez rien à la main depuis sql/updates/. Dans worldserver.conf :

Updates.EnableDatabases = 31   # auth + characters + world + hotfixes + shop
Updates.AutoSetup       = 1

Au premier démarrage, le worldserver applique lui-même les quelque 330 fichiers de sql/updates/world, ainsi que ceux de characters et hotfixes. La table updates des dumps amont est livrée vide : c'est normal, tout l'historique est rejoué. Comptez plusieurs minutes.

4. Correctifs de contenu du royaume (optionnel)

sql/sylvania/ est la trace versionnée des correctifs data appliqués à la base du royaume (artefacts, campagnes, donjons, modules Mercenaires et Siège des Capitales…). Ils sont indépendants du mécanisme de mise à jour automatique et s'importent à la main, dans l'ordre chronologique, une fois les étapes précédentes terminées. Chaque fichier annonce sa base cible dans son en-tête : le dossier n'en a pas une seule. Détail et conventions : Bases de données.

🩺 Bloqué sur l'écran de chargement ?

Ces deux messages apparaissent à chaque connexion sur tous les serveurs de cette lignée et ne sont pas des erreurs :

Client tried to call not implemented method ResourceService.GetContentHandle
Received not handled opcode [CMSG_GET_ACCOUNT_CHARACTER_LIST ...]

ResourceService est un service Battle.net resté à l'état d'ébauche en amont, et CMSG_GET_ACCOUNT_CHARACTER_LIST (liste des personnages inter-royaumes) est délibérément déclaré STATUS_UNHANDLED dans src/server/game/Server/Protocol/Opcodes.cpp.

La cause est presque toujours une base world ou hotfixes mal importée — relisez l'avertissement sur sql/base/dev/ ci-dessus. Les autres pistes (cache client, données extraites, lecture de DBErrors.log) sont détaillées dans la FAQ Dépannage, avec les autres symptômes fréquents.


🌍 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é :

  1. Forkez le dépôt
  2. Créez une branche dédiée
  3. Ouvrez une pull request contre sylvaniacore

📖 Conventions du dépôt, style de commit, règles pour le SQL et doctrine de correction : Contribuer sur le wiki.

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.)

Rejoindre le Discord des contributeurs


🐛 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 : Windows x64 GCC Clang


📜 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.


SylvaniaCore

Si SylvaniaCore vous plaît, laissez une étoile au projet !

S
Description
Репозиторий ядра Legion 7.3.5 26972
Readme 29 MiB
Languages
C++ 86.6%
C 11.9%
CMake 0.8%
Assembly 0.3%