aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Metin2

Système d'Alchimie Metin2 : Pierres de Dragon et Bonus

Le système d'alchimie Metin2 permet aux joueurs d'insérer des pierres de dragon (Dragon Soul Stones) pour obtenir des bonus supplémentaires sur leurs personnages ; c'est l'une des mécaniques de fin de jeu les plus demandées sur n'importe quel serveur. Officiellement nommé Dragon Soul, ce système apparaît en jeu sous la forme de l'interface « alchimie » et, bien configuré, il nourrit fortement l'économie du serveur comme la fidélisation des joueurs. Dans ce guide, nous construisons le système étape par étape, de la source serveur au côté client, en définissant les pierres dans item_proto et en réglant leurs bonus via dragon_soul_table.txt.

Comment fonctionne le système

Le système d'alchimie repose sur trois couches qui doivent toutes être synchronisées :

  • Source serveur (game/db) : elle doit inclure le support Dragon Soul. Les sources officielles 2014+ et la plupart des sources modernes (TMP4, Marty, etc.) le fournissent. Les sources plus anciennes exigent d'ajouter manuellement l'ensemble des fonctions.
  • Base de données/proto : les pierres de dragon sont définies avec un type d'objet spécial (ITEM_DS) et résident dans l'inventaire d'alchimie.
  • Fichier de configuration : dragon_soul_table.txt décide du grade, du palier (step), de la force de chaque pierre et des bonus qu'elle accorde.

Le joueur ouvre le PNJ d'alchimie ou le raccourci d'interface (un inventaire Dragon Soul séparé par défaut), place une pierre dans un emplacement, et le bonus correspondant au type de la pierre (par exemple pierre de Guerre, de Magie, d'Âme ou Mod) et à la classe du personnage devient actif.

Fichiers requis et prérequis

Avant de commencer, assurez-vous que les éléments suivants sont en place :

  • dragon_soul_table.txt côté serveur (généralement sous share/locale/<langue>/ ou le dossier de données lu par votre source).
  • dragon_soul.txt côté client ainsi que les scripts Python de l'interface d'alchimie (uiDragonSoul.py et les appels dans game.py).
  • Le type ITEM_DS défini dans itemtypes.txt.
  • Accès à la base : item_proto et un outil de dump du item_proto client (par ex. un convertisseur txt <-> proto).

Sauvegardez chaque fichier avant de l'éditer. La façon la plus simple de casser le système de pierres de dragon est de créer un décalage entre les indices de bonus et item_proto.

Définir la pierre de dragon dans item_proto

Contrairement aux objets normaux, les pierres de dragon sont définies avec le type ITEM_DS et un sous-type pour la variante de pierre. Sur le plan conceptuel, une ligne item_proto porte ces champs :

vnum    name             type      subtype     value0  value1  value2  value3  value4  value5
45301   "Pierre Guerre"    ITEM_DS   DS_SLOT...   0       1       1       0       0       0

L'essentiel se trouve dans les champs value : ils encodent le grade, le palier et la force de la pierre. Ces valeurs doivent correspondre exactement aux définitions de dragon_soul_table.txt. Sinon, la pierre entre dans l'inventaire mais ne produit aucun bonus, ou fait planter le serveur.

Évitez les caractères non-ASCII dans les noms ; sur la plupart des sources, le lecteur de proto attend un encodage non-UTF-8. Fournissez le nom localisé via le item_names.txt client.

La structure de dragon_soul_table.txt

Ce fichier est le cerveau du système d'alchimie. Il est divisé en sections, chacune définissant le comportement des pierres :

  • BASIC : combien de types d'emplacements de pierres existent et le décompte général.
  • GRADE : les probabilités et les poids de nom de chaque grade (normal, béni, dragon, légendaire, etc.).
  • STEP : les paliers au sein d'un même grade ; un palier supérieur donne une plage de bonus plus forte.
  • STRENGTH / REFINE : les taux de purification/amélioration (refine) d'une pierre.
  • Tables APPLY : les bonus disponibles pour chaque combinaison type + grade + palier, avec leurs plages de valeurs min–max.

Pour définir les bonus, utilisez les véritables constantes APPLY_* du jeu. Les plus courantes :

APPLY_MAX_HP            +PV
APPLY_ATT_GRADE_BONUS  +Valeur d'attaque
APPLY_DEF_GRADE_BONUS  +Defense
APPLY_CRITICAL_PCT     +Critique %
APPLY_PENETRATE_PCT    +Penetration %
APPLY_ATTBONUS_MONSTER +Degats contre monstres

Une ligne de bonus précise le type APPLY et une plage de valeurs ; lorsqu'une pierre est générée, le serveur choisit une valeur dans cette plage (aléatoirement ou pondérée). Gardez des plages équilibrées : accorder 50 % de critique sur une seule pierre détruit instantanément l'économie et l'équilibre PvP.

Définir des bonus équilibrés

Une approche d'équilibrage pratique :

  • Les pierres de bas grade ne donnent que des bonus « sûrs » comme APPLY_MAX_HP ou une petite défense.
  • Les bonus puissants en pourcentage (critique, pénétration, dégâts moyens) ne se débloquent qu'au grade et au palier les plus élevés, dans une plage étroite.
  • Répartissez les types de pierres par classe : pierre de Guerre pour le corps à corps, pierre de Magie pour les sorts sura/chamane, pierres d'Âme/Mod pour les bonus de soutien.

Après chaque modification, enregistrez le fichier et redémarrez le processus game ; sur la plupart des sources, dragon_soul_table.txt n'est lu qu'au démarrage, sans rechargement à chaud.

Côté client et tests

Une fois le serveur prêt, synchronisez le client :

  • Gardez le dragon_soul.txt client avec la même structure type/grade/palier que le serveur.
  • Empaquetez les nouveaux fichiers item_proto et d'icônes (icon/item/) dans le client.
  • Pour tester, donnez la pierre avec un compte GM via /item <vnum>, placez-la dans l'inventaire d'alchimie et vérifiez que le bonus apparaît dans le panneau d'état du personnage.

L'erreur la plus fréquente est une différence entre les proto client et serveur ; la pierre apparaît alors comme un « objet inconnu » ou le client plante au placement. La seconde est une faute de frappe dans un type APPLY de dragon_soul_table.txt — celle-ci supprime le bonus en silence, alors vérifiez toujours le journal de démarrage du serveur.

Questions fréquentes

Que faire si ma vieille source serveur n'a pas le support Dragon Soul ?

Certaines sources antérieures à 2013 n'ont pas le moteur Dragon Soul. Dans ce cas, passer à une source moderne (officielle 40k+, basée sur TMP4 ou Marty) est bien plus sûr qu'un backport manuel ; un backport exige des changements profonds dans les moteurs d'objet et de personnage.

Les valeurs de bonus n'apparaissent jamais — pourquoi ?

Généralement l'une de ces trois causes : les champs value de item_proto ne correspondent pas à dragon_soul_table.txt, une constante APPLY est mal orthographiée, ou le proto client n'a pas été mis à jour. Lisez les lignes « dragon soul » du journal de démarrage du serveur pour trouver laquelle.

Comment puis-je affiner (refine) les pierres ?

L'affinage fonctionne via les taux de la section REFINE/STRENGTH de dragon_soul_table.txt. Vous combinez un nombre défini de pierres du même type pour produire une pierre de grade supérieur ; garder ces taux bas donne une vraie valeur économique aux matériaux d'affinage.

Vous voulez intégrer proprement le système d'alchimie à votre serveur ? Pour de l'aide sur la configuration Dragon Soul, des tables de bonus équilibrées et l'empaquetage client, contactez-moi — construisons ensemble un système d'alchimie stable et adapté à votre source.

Bu kategorideki tüm yazılar →

Devamı için