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

Metin2 Alchemie-System: Drachenstein-Setup und Boni

Das Metin2 Alchemie-System lässt Spieler Drachensteine (Dragon Soul Stones) einsetzen, um ihren Charakteren zusätzliche Boni zu verleihen, und es ist eine der gefragtesten Endgame-Mechaniken auf jedem Server. Offiziell Dragon Soul genannt, erscheint dieses System im Spiel als „Alchemie"-Oberfläche, und richtig eingerichtet nährt es sowohl die Serverwirtschaft als auch die Spielerbindung erheblich. In dieser Anleitung bauen wir das System Schritt für Schritt auf, von der Serverquelle bis zur Clientseite, definieren Drachensteine in item_proto und stellen ihre Boni über dragon_soul_table.txt ein.

Wie das System funktioniert

Das Alchemie-System besteht aus drei Schichten, die alle synchron sein müssen:

  • Serverquelle (game/db): Sie muss Dragon-Soul-Unterstützung enthalten. Offizielle 2014+ und die meisten modernen Quellen (TMP4, Marty usw.) liefern sie mit. Ältere Quellen erfordern, den Funktionssatz manuell hinzuzufügen.
  • Datenbank/Proto: Drachensteine werden mit einem speziellen Item-Typ (ITEM_DS) definiert und liegen im Alchemie-Inventar.
  • Konfigurationsdatei: dragon_soul_table.txt bestimmt Grad (grade), Stufe (step), Stärke jedes Steins und welche Boni er gewährt.

Der Spieler öffnet den Alchemie-NPC oder die Oberflächen-Verknüpfung (standardmäßig ein separates Dragon-Soul-Inventar), platziert einen Stein in einem Slot, und der Bonus, der zum Steintyp (zum Beispiel Kriegs-, Magie-, Seelen- oder Mod-Drachenstein) und zur Klasse des Charakters passt, wird aktiv.

Benötigte Dateien und Voraussetzungen

Stellen Sie vor dem Start sicher, dass Folgendes vorhanden ist:

  • Serverseitige dragon_soul_table.txt (meist unter share/locale/<sprache>/ oder im Datenordner, den Ihre Quelle liest).
  • Clientseitige dragon_soul.txt sowie die Python-Skripte der Alchemie-Oberfläche (uiDragonSoul.py und die Aufrufe in game.py).
  • Den Typ ITEM_DS definiert in itemtypes.txt.
  • Datenbankzugriff: item_proto und ein Client-item_proto-Dump-Werkzeug (z. B. ein txt <-> proto Konverter).

Sichern Sie jede Datei vor der Bearbeitung. Der einfachste Weg, das Drachenstein-System zu zerstören, ist eine Diskrepanz zwischen den Bonus-Indizes und item_proto zu erzeugen.

Den Drachenstein in item_proto definieren

Anders als normale Gegenstände werden Drachensteine mit dem Typ ITEM_DS und einem Subtyp für die Steinvariante definiert. Konzeptionell trägt eine item_proto-Zeile diese Felder:

vnum    name             type      subtype     value0  value1  value2  value3  value4  value5
45301   "Kriegs-Drachenstein" ITEM_DS DS_SLOT...  0       1       1       0       0       0

Entscheidend sind die value-Felder: Sie kodieren Grad, Stufe und Stärke des Steins. Diese Werte müssen exakt mit den Definitionen in dragon_soul_table.txt übereinstimmen. Andernfalls gelangt der Stein ins Inventar, erzeugt aber keinen Bonus oder bringt den Server zum Absturz.

Vermeiden Sie Nicht-ASCII-Zeichen in Namen; bei den meisten Quellen erwartet der Proto-Leser eine Nicht-UTF-8-Kodierung. Liefern Sie den lokalisierten Namen über die Client-item_names.txt.

Die Struktur von dragon_soul_table.txt

Diese Datei ist das Gehirn des Alchemie-Systems. Sie ist in Abschnitte unterteilt, die jeweils das Verhalten der Steine definieren:

  • BASIC: Wie viele Drachenstein-Slot-Typen es gibt und die allgemeine Zählung.
  • GRADE: Die Wahrscheinlichkeiten und Namensgewichte jedes Grades (normal, gesegnet, Drachen, legendär usw.).
  • STEP: Die Stufen innerhalb desselben Grades; eine höhere Stufe gibt einen stärkeren Bonusbereich.
  • STRENGTH / REFINE: Die Raten für das Läutern/Verbessern (Refine) eines Steins.
  • APPLY-Tabellen: Die Boni, die für jede Kombination aus Typ + Grad + Stufe verfügbar sind, mit ihren Min–Max-Wertebereichen.

Verwenden Sie beim Definieren von Boni die echten APPLY_*-Konstanten des Spiels. Häufige sind:

APPLY_MAX_HP            +TP
APPLY_ATT_GRADE_BONUS  +Angriffswert
APPLY_DEF_GRADE_BONUS  +Verteidigung
APPLY_CRITICAL_PCT     +Kritisch %
APPLY_PENETRATE_PCT    +Durchdringung %
APPLY_ATTBONUS_MONSTER +Schaden gegen Monster

Eine Bonuszeile gibt den APPLY-Typ und einen Wertebereich an; wird ein Stein erzeugt, wählt der Server einen Wert aus diesem Bereich (zufällig oder gewichtet). Halten Sie die Bereiche ausgewogen: 50 % kritisch auf einem einzigen Stein zu vergeben zerstört sofort die Wirtschaft und die PvP-Balance.

Boni ausgewogen definieren

Ein praktischer Balancing-Ansatz:

  • Steine niedrigen Grades sollten nur „sichere" Boni wie APPLY_MAX_HP oder eine kleine Verteidigung gewähren.
  • Starke prozentuale Boni (kritisch, Durchdringung, Durchschnittsschaden) sollten erst beim höchsten Grad + höchster Stufe und in einem engen Bereich freigeschaltet werden.
  • Teilen Sie Steintypen nach Klasse auf: Kriegsstein für Nahkampf, Magiestein für Sura-/Schamanen-Zauber, Seelen-/Mod-Steine für Unterstützungsboni.

Speichern Sie nach jeder Änderung die Datei und starten Sie den game-Prozess neu; bei den meisten Quellen wird dragon_soul_table.txt nur beim Start gelesen, ohne Hot-Reload.

Clientseite und Tests

Sobald der Server bereit ist, synchronisieren Sie den Client:

  • Halten Sie die Client-dragon_soul.txt mit derselben Typ/Grad/Stufe-Struktur wie der Server.
  • Packen Sie die neuen item_proto- und Icon-Dateien (icon/item/) in den Client.
  • Geben Sie zum Testen den Stein mit einem GM-Konto über /item <vnum>, platzieren Sie ihn im Alchemie-Inventar und prüfen Sie, ob der Bonus im Status-Panel des Charakters erscheint.

Der häufigste Fehler ist ein Unterschied zwischen Client- und Server-Proto; der Stein erscheint dann als „unbekannter Gegenstand" oder der Client stürzt beim Platzieren ab. Der zweite ist ein Tippfehler in einem APPLY-Typ innerhalb von dragon_soul_table.txt — diese lassen den Bonus stillschweigend wegfallen, prüfen Sie daher immer das Start-Log des Servers.

Häufige Fragen

Was, wenn meine alte Serverquelle keine Dragon-Soul-Unterstützung hat?

Einige Quellen vor 2013 haben keine Dragon-Soul-Engine. In diesem Fall ist der Wechsel zu einer modernen Quelle (offiziell 40k+, auf TMP4 oder Marty basierend) weitaus sicherer als ein manueller Backport; ein Backport erfordert tiefe Änderungen an der Item- und Charakter-Engine.

Die Bonuswerte erscheinen nie — woran kann es liegen?

Meist eine von drei Ursachen: Die Value-Felder in item_proto stimmen nicht mit dragon_soul_table.txt überein, eine APPLY-Konstante ist falsch geschrieben, oder das Client-Proto wurde nicht aktualisiert. Lesen Sie die „dragon soul"-Zeilen im Start-Log des Servers, um herauszufinden, welche.

Wie kann ich die Steine läutern (refinen)?

Das Läutern funktioniert über die Raten im REFINE/STRENGTH-Abschnitt von dragon_soul_table.txt. Sie kombinieren eine festgelegte Anzahl gleicher Steine, um einen Stein höheren Grades zu erzeugen; niedrige Raten geben Refine-Materialien echten wirtschaftlichen Wert.

Möchten Sie das Alchemie-System sauber in Ihren Server integrieren? Für Hilfe bei Dragon-Soul-Einrichtung, ausgewogenen Bonustabellen und Client-Packaging kontaktieren Sie mich — bauen wir gemeinsam ein absturzfreies Alchemie-System, das zu Ihrer Quelle passt.

Bu kategorideki tüm yazılar →

Devamı için