chore(sylvania): artefacts - SQL spawn Klauss, scripts ops (reconcile/rollback), README du fork

This commit is contained in:
SylvaniaCore deploy
2026-06-17 09:02:33 +00:00
parent 23bfb33b30
commit 121a33dd2f
4 changed files with 85 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
-- Klauss : PNJ selecteur de taux d XP perso (entry 1000000) - custom SylvaniaCore
-- Script C++ associe = npc_rate_xp_modifier (src/server/scripts/Custom/custom_npcs.cpp)
-- A appliquer sur la base world.
DELETE FROM creature_template_locale WHERE entry=1000000;
DELETE FROM creature WHERE id=1000000;
DELETE FROM creature_template WHERE entry=1000000;
/*M!999999\- enable the sandbox mode */
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `femaleName`, `subname`, `TitleAlt`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `HealthScalingExpansion`, `RequiredExpansion`, `VignetteID`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `BaseVariance`, `RangeVariance`, `unit_class`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `family`, `trainer_type`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `type_flags2`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `HealthModifier`, `HealthModifierExtra`, `ManaModifier`, `ManaModifierExtra`, `ArmorModifier`, `DamageModifier`, `ExperienceModifier`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES (1000000,0,0,0,0,0,38804,0,0,0,'Klauss','','Sélecteur de taux d\'expérience',NULL,NULL,0,110,110,0,0,0,35,1,1,1.14286,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'',0,3,1,1,1,1,1,1,1,1,0,0,1,0,0,'npc_rate_xp_modifier',0);
/*M!999999\- enable the sandbox mode */
INSERT INTO `creature_template_locale` (`entry`, `locale`, `Name`, `NameAlt`, `Title`, `TitleAlt`, `VerifiedBuild`) VALUES (1000000,'frFR','Klauss',NULL,'Sélecteur de taux d\'expérience',NULL,26972);
/*M!999999\- enable the sandbox mode */
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001396,1000000,1,6453,5691,'0',0,0,0,-1,0,0,-1153.59,-5267.43,0.763088,2.87955,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001395,1000000,530,6455,3431,'0',0,0,0,-1,0,0,10357.8,-6368.57,35.9875,1.87208,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001394,1000000,0,1519,1519,'0',0,0,0,-1,0,0,-8779.12,339.722,107.296,1.42917,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001393,1000000,0,1,5495,'0',0,0,0,-1,0,0,-4989.09,873.428,274.454,5.81047,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001392,1000000,1,6451,363,'0',0,0,0,-1,0,0,-606.172,-4253.31,38.9558,3.46951,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001391,1000000,1,6450,188,'0',0,0,0,-1,0,0,10335,831.334,1326.18,2.80606,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001390,1000000,0,6176,132,'0',0,0,0,-1,0,0,-6213.36,329.844,383.725,3.26726,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001389,1000000,0,6170,9,'0',0,0,0,-1,0,0,-8927.84,-138.888,81.8979,1.51659,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001388,1000000,0,6454,5692,'0',0,0,0,-1,0,0,1704.79,1711.78,135.383,3.76056,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001387,1000000,1,6452,221,'0',0,0,0,-1,0,0,-2923.58,-244.042,60.0228,5.05796,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001386,1000000,609,4298,4342,'0',0,0,696,-1,0,0,2366.03,-5678.52,425.938,2.42295,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001385,1000000,530,6456,3526,'0',0,0,0,-1,0,0,-3973.12,-13925.9,100.626,6.152,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `dynamicflags`, `ScriptName`, `movementmode`, `VerifiedBuild`) VALUES (280001397,1000000,1,1637,5170,'0',0,0,0,-1,0,0,1609.09,-4389.5,20.319,3.3398,300,0,0,8633,0,0,0,0,0,0,0,'',0,0);
+23
View File
@@ -0,0 +1,23 @@
# SylvaniaCore
Fork de **DestinyCore** (WoW Legion 7.3.5.26972) pour le serveur "La Legende de Sylvania".
- 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.
## 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.
## Config worldserver requise
pbot = 0 ; pbotall = 0 ; Solocraft.Enable = 1 ; SoloLFG.Enable = 1 ; SoloLFG.Announce = 1
## Donnees client
maps/vmaps/mmaps/dbc extraits du client 7.3.5.26972 (compatibles, pas de re-extraction).
## 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).
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# ROLLBACK vers ArgusCore (ancien stack intact, bases auth/characters/world figees).
set -x
touch /home/ubuntu/scripts/world-watchdog.disabled /home/ubuntu/scripts/bnet-watchdog.disabled
tmux kill-session -t world 2>/dev/null; pkill -f 'dc-server/bin/worldserver' 2>/dev/null
pkill -x bnetserver 2>/dev/null; sleep 4
# restaurer watchdogs ArgusCore
[ -f /home/ubuntu/scripts/world-watchdog.sh.arguscore ] && cp /home/ubuntu/scripts/world-watchdog.sh.arguscore /home/ubuntu/scripts/world-watchdog.sh
[ -f /home/ubuntu/scripts/bnet-watchdog.sh.arguscore ] && cp /home/ubuntu/scripts/bnet-watchdog.sh.arguscore /home/ubuntu/scripts/bnet-watchdog.sh
# restaurer site
[ -f /var/www/html/config/secrets.php.precutover ] && sudo cp /var/www/html/config/secrets.php.precutover /var/www/html/config/secrets.php
# relancer ANCIEN stack
cd /home/ubuntu/server/bin && setsid ./bnetserver > /home/ubuntu/bnet.log 2>&1 < /dev/null &
tmux new-session -d -s world "cd /home/ubuntu/server/bin && ./worldserver 2>&1 | tee -a /home/ubuntu/world.log"
# reactiver watchdogs (ArgusCore)
rm -f /home/ubuntu/scripts/world-watchdog.disabled /home/ubuntu/scripts/bnet-watchdog.disabled
echo "ROLLBACK fait : ArgusCore relance, site repointe, watchdogs ArgusCore ON."
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# reconcile_schema.sh <GOLDEN_DB> <TARGET_DB>
# Ajoute au TARGET les tables et colonnes presentes dans GOLDEN mais absentes (additif, non destructif).
G="$1"; T="$2"
Q(){ sudo mysql -N -e "$1"; }
# Tables golden absentes du target -> creation (structure seule)
for tbl in $(Q "SELECT table_name FROM information_schema.tables WHERE table_schema='$G' AND table_type='BASE TABLE' AND table_name NOT IN (SELECT table_name FROM information_schema.tables WHERE table_schema='$T')"); do
echo " + TABLE $tbl"
sudo mysqldump --no-data --no-tablespaces "$G" "$tbl" | grep -ivE '^[[:space:]]*(USE|CREATE DATABASE|DROP DATABASE)' | sudo mysql "$T"
done
# Colonnes golden (tables communes) absentes du target -> ALTER ADD
Q "SELECT c.table_name,c.column_name,c.column_type,c.is_nullable,c.extra
FROM information_schema.columns c
WHERE c.table_schema='$G'
AND c.table_name IN (SELECT table_name FROM information_schema.tables WHERE table_schema='$T')
AND NOT EXISTS (SELECT 1 FROM information_schema.columns t WHERE t.table_schema='$T' AND t.table_name=c.table_name AND t.column_name=c.column_name)" \
| while IFS=$'\t' read tbl col ctype isnull extra; do
nullsql="NULL"; [ "$isnull" = "NO" ] && nullsql="NOT NULL DEFAULT 0"
echo " + COLONNE $tbl.$col ($ctype)"
sudo mysql "$T" -e "ALTER TABLE \`$tbl\` ADD COLUMN \`$col\` $ctype $nullsql $extra" 2>&1 | grep -v '^$' || true
done