sylvania/README : remettre les notes internes en accord avec le serveur

Le document affirmait "PlayerBots : DESACTIVES - serveur blizzlike sans bots"
alors que trois modules du royaume en pilotent : BG BotFill (pbotbg = 1),
Mercenaires (pbotmerc = 1) et le Siege des Capitales (livre, siege_enable = 0
pour l instant). Ce qui est coupe, c est le peuplement automatique herite de
l amont (pbot = 0, pbotall = 0), pas le systeme lui-meme : World.cpp initialise
le gestionnaire de bots des que pbotbg OU pbotall vaut 1. La confusion pouvait
conduire un contributeur a croire tout ce code mort.

Le reste etait date dans les memes proportions : une liste de quatre "correctifs
a commits dedies" pour plus de 200 commits de divergence, et rien sur les
modules ni sur la vraie base moteur (MariaDB 11.4, bases dc_*). Les valeurs de
configuration sont desormais relevees du worldserver.conf en production, avec
l effet de chaque cle.

Ajoute aussi : la mise en garde sur sql/sylvania (le dossier n a pas une base
cible unique, capital_siege.sql ecrit dans characters et non dans world), et la
description de db-release-github.sh.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
SylvaniaCore deploy
2026-08-25 22:35:42 +02:00
parent e657f4fb96
commit 29038ec486
+54 -17
View File
@@ -1,23 +1,60 @@
# SylvaniaCore
# `sylvania/` — notes internes du fork
Fork de **DestinyCore** (WoW Legion 7.3.5.26972) pour le serveur "La Legende de Sylvania".
Notes d'exploitation du fork et scripts qui ne sont pas du code de serveur.
La présentation du projet et la procédure d'installation sont dans le
[README à la racine](../README.md).
- Base upstream : DestinyCore master @2d631f4e (remote `upstream`).
- Customs conserves : Klauss (taux XP perso x1-7, gossip FR), Solocraft, Solo LFG (natifs DestinyCore + config).
- PlayerBots : DESACTIVES (pbotall=0 + gardes code) - serveur blizzlike sans bots.
## État du fork
## Correctifs SylvaniaCore (commits dedies)
1. Compat build MariaDB (CR_INVALID_CONN_HANDLE).
2. Desactivation PlayerBots + fix crash issue #56 (file BG/arene).
3. Fix cadavre orphelin (blocage esprit guerisseur apres reset d instance).
4. Klauss (entry 1000000) - voir sql/sylvania/klauss_npc_*.sql pour le spawn.
- **Base amont** : DestinyCore `master @2d631f4e` (remote `upstream`), plus de 200 commits de divergence
(`git rev-list --count 2d631f4e..HEAD` pour le compte exact).
- **Client** : Legion 7.3.5.26972. `maps` / `vmaps` / `mmaps` / `dbc` extraits une fois pour
toutes, aucune ré-extraction nécessaire.
- **Moteur** : MariaDB 11.4. Bases `dc_auth`, `dc_characters`, `dc_world`, `dc_hotfixes`, `dc_shop`.
## Config worldserver requise
pbot = 0 ; pbotall = 0 ; Solocraft.Enable = 1 ; SoloLFG.Enable = 1 ; SoloLFG.Announce = 1
## PlayerBots : ce qui tourne réellement
## Donnees client
maps/vmaps/mmaps/dbc extraits du client 7.3.5.26972 (compatibles, pas de re-extraction).
Le peuplement automatique hérité de l'amont est **coupé**, mais le système de bots, lui,
**tourne** : trois modules du royaume le pilotent à la demande. `World.cpp` initialise le
gestionnaire de bots dès que `pbotbg` **ou** `pbotall` vaut 1 — c'est ce qui permet aux modules
maison de fonctionner avec le peuplement amont désactivé.
## scripts/
- reconcile_schema.sh : synchro additive de schema (golden -> cible) pour migrer auth/characters.
- ROLLBACK.sh.example : modele de rollback blue-green (adapter les chemins).
| Clé | Valeur | Effet |
| --- | --- | --- |
| `pbot` | `0` | Aucun bot ami ni bot de groupe connecté automatiquement à l'arrivée d'un joueur (amont ; la valeur par défaut dans le code est 1, la couper est donc un choix). |
| `pbotall` | `0` | Aucun peuplement automatique du monde ni de la file LFG (amont). |
| `pbotbg` | `1` | **Module BG BotFill** : remplissage des champs de bataille quand de vrais joueurs sont en file (WS / AB / EY / AV / IC). Explicitement indépendant de `pbotall`. |
| `pbotmerc` | `1` | **Module Mercenaires** : le Portail d'Invocation (créature `1000010`, 60 spawns) loue des bots au joueur solo, 100 po, contrat rompu au moindre départ du groupe. |
| `siege_enable` | `0` | **Module Siège des Capitales** : écrit et livré, mais **pas encore activé** en production. |
| `pbotasl` | `88` | Plafond de bots connectés simultanément. |
| `pbottitle` | `600` | Titre « Mercenaire » imposé à tout bot, pour qu'un joueur ne puisse jamais le confondre avec un vrai joueur. Entrée `char_titles` custom de la base hotfix (MaskID 380). |
## Autres customs conservés de l'amont
- **Solocraft** (`Solocraft.Enable = 1`) : mise à l'échelle des donjons en solo.
- **Solo LFG** (`SoloLFG.Enable = 1`, `SoloLFG.Announce = 1`).
- **Klauss** (créature `1000000`, 13 spawns) : PNJ de réglage du taux d'XP personnel (x1 à x7),
dialogues FR. Spawns dans `sql/sylvania/klauss_npc_*.sql`.
## `sql/sylvania/`
108 fichiers : la trace versionnée des correctifs data appliqués à la main à la base de
production. **Le dossier n'a pas une base cible unique** — la plupart visent `dc_world`, mais
`capital_siege.sql` crée deux tables dans `characters`. Chaque fichier annonce sa base dans son
en-tête : la lire avant de rejouer quoi que ce soit. Les `*_ROLLBACK.sql` annulent le patch de
même nom.
Ces fichiers ne passent **pas** par le mécanisme de mise à jour automatique du core. Un patch qui
doit valoir pour toute installation neuve a sa place dans `sql/updates/`, pas ici.
## `scripts/`
- **`db-release-github.sh`** — publie les bases de contenu (`dc_world` + `dc_hotfixes`) en assets
de Release GitHub, seul canal viable : 79 Mo et 35 Mo une fois gzippés, là où GitHub refuse tout
fichier de plus de 100 Mo dans l'historique. Réécrit au passage les collations MariaDB 11.4
(`utf8mb4_uca1400_*`) que MySQL 8 ne connaît pas, exclut les tables de travail `bak_*` / `tmp_*`,
et dépose une release **brouillon** : la publication reste manuelle. `--dry-run` produit les
archives sans rien envoyer. Demande un PAT *fine-grained* dans `~/.config/sylvania-github-token`.
- **`reconcile_schema.sh`** — synchro additive de schéma (golden → cible) pour migrer
`auth` / `characters`.
- **`ROLLBACK.sh.example`** — modèle de rollback blue-green (adapter les chemins).