Skip to content

Autres customs

SylvaniaCore deploy edited this page Aug 31, 2026 · 1 revision

Autres customs

Systèmes conservés de l'amont ou ajoutés au royaume, qui ne méritent pas une page entière.


Titre « Mercenaire » — reconnaître un bot

Tout playerbot porte un titre custom « Mercenaire », imposé à chaque login. C'est une règle du royaume : un joueur ne doit jamais pouvoir confondre un bot avec un vrai joueur.

CharTitles ID 600
MaskID 380
Clé de configuration pbottitle = 600
SQL sql/sylvania/mercenary_title.sql
Commit 65dacb0d

C'est un enregistrement DB2 custom poussé au client sans patch client — la méthode générale est documentée dans Hotfixes DB2.

Un détail vérifié qui évite une fausse piste lors d'un débogage mémoire : PLAYER__FIELD_KNOWN_TITLES fait 12 slots (UpdateFields.h:226) et le MaskID 380 écrit dans le slot 11 — pas de débordement.


Klauss — réglage du taux d'XP

PNJ 1000000, 13 spawns, dialogues en français. Permet à chaque joueur de régler son propre taux d'expérience, de ×1 à ×7.

C'est cohérent avec le « blizz adaptatif » : le taux par défaut reste blizzlike, et c'est le joueur qui choisit d'accélérer, pas le serveur qui décide pour lui.

SQL : sql/sylvania/klauss_npc_*.sql.


Solocraft

Mise à l'échelle des donjons et raids parcourus en petit effectif : les statistiques et les dégâts des créatures sont ajustés au nombre réel de joueurs présents.

Solocraft.Enable    = 1
Solocraft.Announce  = 1
Solocraft.Dungeon   = 5
Solocraft.Heroic    = 6
Solocraft.Raid10    = 10
Solocraft.Raid25    = 25
Solocraft.Raid30    = 30
Solocraft.Raid40    = 40
Solocraft.Mythic    = 1.0
Solocraft.StatsPct  = 100
Solocraft.DamagePct = 35     # 20 dans le .dist — relevé en production

DamagePct = 35 est un réglage assumé du royaume, pas un correctif de bug.


Solo LFG

Permet de s'inscrire seul à la recherche de donjon.

SoloLFG.Enable   = 1
SoloLFG.Announce = 1

CONDITION_SPECIALIZATION (type 53)

Type de condition ajouté au core le 22/08/2026, dans src/server/game/Conditions/ConditionMgr.{h,cpp}. Il lit Player::GetPrimarySpecialization() et valide la valeur contre ChrSpecialization.db2 au chargement.

Il a été créé pour un problème très concret : les quêtes jumelles de spécialisation s'affichaient en double.

INSERT INTO conditions
  (SourceTypeOrReferenceId, SourceEntry, ConditionTypeOrReference,
   ConditionValue1, NegativeCondition, Comment)
VALUES
  (19, <questId>, 53, <specId>, 0, '...');   -- 19 = CONDITION_SOURCE_TYPE_QUEST_AVAILABLE

⚠️ Règle de formulation

Exigez la spé sur une des deux jumelles, et sur l'autre exigez de ne pas être cette spé (NegativeCondition = 1) — plutôt que d'exiger chaque spé de son côté.

Il y a alors toujours exactement une quête proposée, même si primarySpecialization vaut 0 ou une valeur inattendue. Un doublon agace ; zéro quête bloque.

Pourquoi pas CONDITION_SPELL (25)

Parce que sur ce serveur les sorts de spécialisation ne sont quasiment pas enseignés : les Chasseurs de démons ne connaissent que Morsure de démon, et un niveau 98 n'a même pas sa Métamorphose. Une condition bâtie sur un sort caractéristique masquerait les deux quêtes. (Ce défaut d'enseignement est un chantier à part entière — voir Chantiers en cours.)

Gisement

1 488 paires de quêtes du serveur partagent titre, prérequis et races autorisées. Beaucoup sont des jumelles de spé qui s'affichent en double.

Premier emploi : « Arrêtez Gul'dan ! » 38723 (Dévastation) / 40253 (Vengeance). SQL : sql/sylvania/quetes_jumelles_specialisation.sql.

⚠️ Les constantes du core QUEST_STOP_GULDAN_H / _A laissent croire à des variantes Horde / Alliance. C'est faux : le même fichier les nomme correctement DMG_SPEC / TANK_SPEC quelques lignes plus bas.

Identifiants Chasseur de démons : 577 Dévastation, 581 Vengeance (Player.h, TALENT_SPEC_*).

Clone this wiki locally