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

Metin2 Metin-steen Systeem: Level, Drop en Spawn Instellen

Het Metin2 metin-steen systeem is een van de meest herkenbare mechanismen van het spel: je slaat op een steen die op de map staat, de steen roept met vaste tussenpozen monsters op, en wanneer hij breekt laat hij beloningen vallen. Als je je eigen server beheert, is dit hele gedrag vastgelegd in de serverbestanden — je bepaalt dus het level van de metin-steen, de items die hij laat vallen en hoe vaak hij respawnt vanuit drie verschillende plekken. In dit artikel leg ik de logica achter metin-stenen uit en hoe je die drie instellingen veilig aanpast.

Hoe een metin-steen werkt aan de serverkant

Hoewel metin-stenen op statische objecten lijken, zijn ze intern gedefinieerd als "monsters". Drie onderdelen werken samen:

  • mob_proto — bevat de identiteit van de steen: vnum, naam, level, levenspunten (HP) en type. Metin-stenen zijn hier gemarkeerd met het type STONE.
  • regen-bestanden — bepalen op welke map, op welke coördinaten en hoeveel minuten er tussen respawns zitten.
  • drop-tabellen — bepalen de items die vallen wanneer de steen breekt, met percentagekansen.

Wanneer een speler op de steen begint te slaan, roept die met vaste tussenpozen de bijbehorende monsters (de spawn-groep) om zich heen op. Als de HP nul bereikt breekt de steen, gaat de drop-tabel af, en zodra de timer in het regen-bestand afloopt respawnt de steen op dezelfde plek. Deze lus vormt de kernlogica: definiëren → spawnen → breken → belonen → respawnen.

Het level en de HP van de metin-steen instellen

Level en HP staan in mob_proto. De meeste servers beheren dit via een SQL-tabel of een mob_proto.txt-bestand. De belangrijke kolommen zijn:

  • VNUM — de unieke identiteit van de steen (bijv. 8051).
  • LEVEL — het level van de metin-steen; bepaalt de schaal van moeilijkheid en beloning.
  • MAX_HP — de HP van de steen; bepaalt hoe lang hij standhoudt.
  • TYPE — moet hier STONE zijn zodat de client hem als metin-steen toont.

Stel dat je een midden-level steen wat steviger wilt maken. Op een opzet met mob_proto.txt pas je de waarden LEVEL en MAX_HP op de betreffende regel aan:

# VNUM  NAME            TYPE   LEVEL  MAX_HP   ...
8051    Metin_Steen_A   STONE  40     250000   ...

Beheer je het via SQL, dan doe je hetzelfde in één query:

UPDATE mob_proto
SET level = 40, max_hp = 250000
WHERE vnum = 8051;

Belangrijk: na het wijzigen van mob_proto vereisen de meeste serverbestanden dat je de bewerkte tabel omzet naar de mob_proto-binary en de game-core herstart. Omdat caching meespeelt, worden hot changes niet altijd meteen toegepast.

Metin-steen spawn en respawntijd aanpassen

De positie van de steen op de map en zijn respawntijd staan in de regen-bestanden in de map-map (meestal regen.txt of een extra regen-bestand speciaal voor metin-stenen). Elke regel definieert een spawnpunt. Een typische metin-steenregel ziet er zo uit:

s   441600   873200   0   0   0   30m   100   1   8051

De kolommen volgen, van links naar rechts, deze volgorde:

  • types markeert een metin-steen spawn.
  • x / y — de coördinaten op de map (positie in het spel).
  • x_dir / y_dir / z — de spreidingsradius en richting van het spawngebied; 0 betekent een vast punt.
  • tijd — het respawn-interval; je kunt 30m = 30 minuten, 1h = 1 uur, 10s = 10 seconden schrijven.
  • percentage — de spawnkans (100 = elke keer).
  • aantal — hoeveel stenen tegelijk spawnen.
  • vnum — welke steen spawnt; moet overeenkomen met de identiteit in mob_proto.

Om de spawntijd te verkorten, hoef je alleen de tijdkolom te verlagen. Bijvoorbeeld op een drukke event-map waar je wilt dat stenen sneller terugkeren:

s   441600   873200   0   0   0   5m   100   2   8051

Deze regel laat elke 5 minuten twee stenen op hetzelfde punt spawnen. Na het opslaan van het bestand moet je het betreffende mapproces herstarten; regen-bestanden worden alleen gelezen wanneer de map opstart.

Metin-steen drops instellen

De items die vallen wanneer een steen breekt, worden gedefinieerd in drop-tabellen. De meest gangbare methode is een groep te maken die gekoppeld is aan de vnum van de steen en daarin de items met hun kansen op te sommen. De logica werkt zo:

  • Je geeft elk item een kans (meestal per tienduizend of in percentage, afhankelijk van het bestandsformaat dat je gebruikt).
  • Naarmate het level van de steen stijgt, voeg je waardevollere items toe met een lagere kans; daar komt de balans vandaan.
  • Je kunt op dezelfde steen zowel gegarandeerde (altijd-droppende) als zeldzame beloningen definiëren.

De conceptuele vorm van een drop-groep ziet er zo uit:

Group	Metin_Steen_A_Drop
{
    Mob	8051
    Type	kill
    1	71001	1	30      # drank, 30%
    2	25040	1	5       # zielsteen, 5%
    3	19	1	1           # yang (geld), 1%
}

Hier volgt elke regel de logica volgorde item_vnum aantal kans. Wees niet hebberig bij het balanceren van de kansen: een te hoge drop-rate breekt de economie onmiddellijk. Begin bij het toevoegen van een nieuwe steen met kleine kansen, test op de server en verhoog ze daarna geleidelijk.

Veelgemaakte fouten en testen

De problemen die je het vaakst tegenkomt bij metin-steeninstellingen komen meestal door eenvoudige oorzaken:

  • De steen spawnt nooit: de vnum in de regen-regel komt niet overeen met de identiteit in mob_proto, of het mapproces is niet herstart.
  • De steen spawnt maar dropt niets: de drop-groep is niet aan de juiste vnum gekoppeld, of het betreffende bestand is niet geladen.
  • De tijd is veranderd maar heeft geen effect: regen-bestanden worden alleen bij het opstarten gelezen; de wijziging werkt niet zonder het proces te herstarten.

Verander bij het testen altijd één variabele en controleer het resultaat. Breek de steen zelf met een GM-account, bekijk de drop en klok daarna het spawn-interval. Deze discipline voorkomt verrassende onbalans op een live server.

Veelgestelde vragen

Verbetert de drop automatisch als ik het level van de metin-steen verhoog?

Nee. Level is slechts een getal in mob_proto; de drop is gedefinieerd in een aparte tabel. Verhoog je het level, dan oogt de steen sterker, maar de gedropte items veranderen niet. Wil je betere beloningen, dan moet je de drop-groep apart aanpassen.

Ik heb de spawntijd gewijzigd maar er gebeurde niets — waarom?

Regen-bestanden worden alleen gelezen wanneer het mapproces opstart. Na het opslaan van het bestand moet je de betreffende map (of de hele game-core indien nodig) herstarten. Controleer ook of je de letters m, h, s in de tijdkolom correct hebt geschreven.

Kan ik de metin-steentijd op alle maps tegelijk wijzigen?

Niet met één instelling; elke map heeft zijn eigen regen-bestand. In de praktijk kun je een klein script gebruiken om de tijdkolom van de s-regels in alle regen-bestanden in bulk bij te werken, maar maak altijd een back-up vóór de wijziging.

Wil je het metin-steen systeem op je eigen Metin2-server van de grond af opzetten of herbalanceren? Ik kan de level-, drop- en spawninstellingen configureren en testen passend bij de economie van je server — neem contact met me op en laten we je project samen plannen.

Bu kategorideki tüm yazılar →

Devamı için