README : section d installation de la base de donnees
L etape 3 se contentait de dire d importer les structures SQL de sql/base, ce qui envoie droit dans le mur : les bases world et hotfixes n y sont pas, et sql/base/dev ne contient que des tables vides. Un contributeur s est retrouve bloque sur l ecran de chargement apres avoir importe ces structures. La nouvelle section indique ou telecharger la base amont (release DB735.02 de DestinyCore), l ordre d import, le reglage Updates.EnableDatabases = 31 qui laisse le core appliquer sql/updates tout seul, et le sort de sql/sylvania. Elle documente aussi les deux messages de console (ResourceService.GetContentHandle et CMSG_GET_ACCOUNT_CHARACTER_LIST) qui sont normaux sur toute la lignee et ne sont pas des pannes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -75,8 +75,8 @@ Plateformes supportées : **Linux, Windows, macOS**.
|
||||
cmake --build build -j$(nproc)
|
||||
```
|
||||
|
||||
3. Créer les bases (`auth`, `characters`, `world`, `hotfixes`) et importer les structures SQL
|
||||
fournies dans `sql/base`.
|
||||
3. Installer les bases de données — voir la section
|
||||
[Installation de la base de données](#-installation-de-la-base-de-données) ci-dessous.
|
||||
|
||||
4. Lancer les serveurs :
|
||||
```bash
|
||||
@@ -90,6 +90,93 @@ Plateformes supportées : **Linux, Windows, macOS**.
|
||||
|
||||
---
|
||||
|
||||
## 💾 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](https://github.com/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
|
||||
|
||||
```bash
|
||||
# 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` :
|
||||
|
||||
```ini
|
||||
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. La base `world` de production du royaume n'est pas
|
||||
distribuée.
|
||||
|
||||
### 🩺 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 :
|
||||
|
||||
```text
|
||||
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`. Si le client reste bloqué au
|
||||
chargement, cherchez plutôt du côté :
|
||||
|
||||
- d'une base `world` ou `hotfixes` mal importée — voir l'avertissement sur `sql/base/dev/` ;
|
||||
- du cache du client : videz son dossier `Cache` ;
|
||||
- des données extraites — `dbc/`, `maps/`, `vmaps/`, `mmaps/`, `cameras/` et `gt/` doivent provenir
|
||||
d'un client **7.3.5 build 26972**, et `DataDir` doit pointer sur le dossier qui les contient ;
|
||||
- de `DBErrors.log` et des lignes de démarrage du worldserver, qui nomment la table fautive.
|
||||
|
||||
---
|
||||
|
||||
## 🌍 Rejoindre le royaume
|
||||
|
||||
Le serveur de jeu est ouvert et le site officiel explique comment s'y connecter :
|
||||
|
||||
Reference in New Issue
Block a user