Het Metin2 alchemie systeem laat spelers drakenstenen (Dragon Soul Stones) plaatsen om extra bonussen op hun personages te krijgen, en het is een van de meest gevraagde eindgame-mechanieken op elke server. Officieel heet dit systeem Dragon Soul; in het spel verschijnt het als de "alchemie"-interface, en goed opgezet voedt het zowel de servereconomie als de spelersbinding aanzienlijk. In deze gids bouwen we het systeem stap voor stap, van de serverbron tot de clientkant, definiëren we drakenstenen in item_proto en stellen we hun bonussen af via dragon_soul_table.txt.
Hoe het systeem werkt
Het alchemie systeem bestaat uit drie lagen die allemaal gelijk moeten lopen:
- Serverbron (game/db): deze moet Dragon Soul-ondersteuning bevatten. Officiële 2014+ en de meeste moderne bronnen (TMP4, Marty, enz.) leveren dit mee. Oudere bronnen vereisen dat de functieset handmatig wordt toegevoegd.
- Database/proto: drakenstenen worden gedefinieerd met een speciaal itemtype (
ITEM_DS) en bevinden zich in de alchemie-inventaris. - Configuratiebestand:
dragon_soul_table.txtbepaalt de grade, step, sterkte van elke steen en welke bonussen hij geeft.
De speler opent de alchemie-NPC of de interface-snelkoppeling (standaard een aparte Dragon Soul-inventaris), plaatst een steen in een slot, en de bonus die past bij het type steen (bijvoorbeeld Oorlog-, Magie-, Ziel- of Mod-drakensteen) en de klasse van het personage wordt actief.
Vereiste bestanden en voorwaarden
Zorg er voordat je begint voor dat het volgende aanwezig is:
dragon_soul_table.txtaan serverkant (meestal ondershare/locale/<taal>/of de datamap die je bron leest).dragon_soul.txtaan clientkant plus de Python-scripts van de alchemie-interface (uiDragonSoul.pyen de aanroepen ingame.py).- Het type
ITEM_DSgedefinieerd initemtypes.txt. - Databasetoegang:
item_protoen een client-item_protodumptool (bijv. eentxt <-> protoconverter).
Maak een back-up van elk bestand voordat je het bewerkt. De makkelijkste manier om het drakensteen-systeem te breken is een mismatch creëren tussen de bonusindexen en item_proto.
De drakensteen definiëren in item_proto
Anders dan gewone items worden drakenstenen gedefinieerd met het type ITEM_DS en een subtype voor de steenvariant. Conceptueel draagt een item_proto-regel deze velden:
vnum name type subtype value0 value1 value2 value3 value4 value5
45301 "Oorlog Drakensteen" ITEM_DS DS_SLOT... 0 1 1 0 0 0
Het cruciale deel zijn de value-velden: ze coderen de grade, step en sterkte van de steen. Deze waarden moeten exact overeenkomen met de definities in dragon_soul_table.txt. Zo niet, dan komt de steen in de inventaris maar geeft hij geen bonus, of laat hij de server crashen.
Vermijd niet-ASCII-tekens in namen; op de meeste bronnen verwacht de proto-lezer een niet-UTF-8-codering. Lever de gelokaliseerde naam via de client-item_names.txt.
De structuur van dragon_soul_table.txt
Dit bestand is het brein van het alchemie systeem. Het is opgedeeld in secties die elk het gedrag van de stenen bepalen:
- BASIC: hoeveel typen drakensteen-slots er zijn en de algemene telling.
- GRADE: de kansen en naamgewichten van elke grade (normaal, gezegend, draken, legendarisch, enz.).
- STEP: de steps binnen dezelfde grade; een hogere step geeft een sterker bonusbereik.
- STRENGTH / REFINE: de kansen voor het zuiveren/verbeteren (refinen) van een steen.
- APPLY-tabellen: de bonussen die beschikbaar zijn voor elke combinatie van type + grade + step, met hun min–max waardebereiken.
Gebruik bij het definiëren van bonussen de echte APPLY_*-constanten van het spel. Veelgebruikte:
APPLY_MAX_HP +HP
APPLY_ATT_GRADE_BONUS +Aanvalswaarde
APPLY_DEF_GRADE_BONUS +Verdediging
APPLY_CRITICAL_PCT +Kritiek %
APPLY_PENETRATE_PCT +Doordringing %
APPLY_ATTBONUS_MONSTER +Schade tegen monsters
Een bonusregel geeft het APPLY-type en een waardebereik aan; wanneer een steen wordt gegenereerd kiest de server een waarde uit dat bereik (willekeurig of gewogen). Houd de bereiken gebalanceerd: 50% kritiek op één steen geven verwoest meteen de economie en de PvP-balans.
Bonussen gebalanceerd definiëren
Een praktische balansaanpak:
- Stenen van lage grade geven alleen "veilige" bonussen zoals
APPLY_MAX_HPof een kleine verdediging. - Sterke procentuele bonussen (kritiek, doordringing, gemiddelde schade) ontgrendelen alleen bij de hoogste grade + hoogste step, in een smal bereik.
- Verdeel steentypen per klasse: Oorlog-steen voor melee, Magie-steen voor sura/sjamaan-spreuken, Ziel-/Mod-stenen voor ondersteuningsbonussen.
Sla na elke wijziging het bestand op en herstart het game-proces; op de meeste bronnen wordt dragon_soul_table.txt alleen bij het opstarten gelezen, zonder hot-reload.
Clientkant en testen
Zodra de server klaar is, synchroniseer je de client:
- Houd de client-
dragon_soul.txtmet dezelfde type/grade/step-structuur als de server. - Pak de nieuwe
item_proto- en iconbestanden (icon/item/) in de client. - Geef voor het testen de steen met een GM-account via
/item <vnum>, plaats hem in de alchemie-inventaris en controleer of de bonus in het statuspaneel van het personage verschijnt.
De meest voorkomende fout is een verschil tussen client- en server-proto; de steen verschijnt dan als een "onbekend item" of de client crasht bij plaatsing. De tweede is een typefout in een APPLY-type in dragon_soul_table.txt — die laat de bonus stilletjes vallen, dus controleer altijd het opstartlogboek van de server.
Veelgestelde vragen
Wat als mijn oude serverbron geen Dragon Soul-ondersteuning heeft?
Sommige bronnen van voor 2013 missen de Dragon Soul-engine. In dat geval is overstappen naar een moderne bron (officieel 40k+, op TMP4 of Marty gebaseerd) veel veiliger dan het systeem handmatig backporten; een backport vereist diepe wijzigingen in de item- en personage-engines.
De bonuswaarden verschijnen nooit — wat kan het zijn?
Meestal een van drie oorzaken: de value-velden in item_proto komen niet overeen met dragon_soul_table.txt, een APPLY-constante is verkeerd gespeld, of de client-proto is niet bijgewerkt. Lees de "dragon soul"-regels in het opstartlogboek van de server om te vinden welke.
Hoe kan ik de stenen verfijnen (refinen)?
Verfijnen werkt via de kansen in de REFINE/STRENGTH-sectie van dragon_soul_table.txt. Je combineert een vast aantal stenen van hetzelfde type tot een steen van hogere grade; deze kansen laag houden geeft refine-materialen echte economische waarde.
Wil je het alchemie systeem netjes in je server integreren? Voor hulp bij Dragon Soul-opzet, gebalanceerde bonustabellen en client-packaging, neem contact met me op — laten we samen een crashvrij alchemie systeem bouwen dat past bij jouw bron.