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

Metin2 GM-commando's: lijst en autoriteitsniveaus

Wanneer je een Metin2-server beheert, is het gereedschap dat je het meeste werk uit handen neemt de commando's die je in het chatvenster typt. Met Metin2 GM-commando's doe je vrijwel alles in één regel: items uitdelen, monsters spawnen, spelers teleporteren of protobestanden herladen. Maar die kracht kan in verkeerde handen je economie verwoesten, dus de commando's leren is even belangrijk als het correct opzetten van de rechten. In deze gids behandel ik de meest gebruikte commando's, de autoriteitsniveaus en hoe je een account veilig GM-rechten geeft.

Hoe GM-commando's werken

In de standaard Metin2-serverbron worden commando's geregistreerd in een tabel binnen de spelkern (het game-proces). Wanneer een speler tekst typt die begint met / in het chatvenster, vangt de input-laag dit op, herleidt de commandonaam en roept de bijbehorende functie aan. Het belangrijkste punt: elk commando vereist een specifiek minimaal autoriteitsniveau. Zelfs als een speler zonder voldoende rechten het commando typt, weigert de kern het stilletjes. Conceptueel ziet de commandotabel er zo uit:

// registratielogica in cmd_general / cmd_gm
{ "item",        do_item,        GM_IMPLEMENTOR },
{ "advance",     do_advance,     GM_HIGH_WIZARD },
{ "notice",      do_notice,      GM_LOW_WIZARD },
{ "warp",        do_warp,        GM_LOW_WIZARD },

Niet het bestaan van het commando telt dus, maar de autoriteit van de speler. Daarom loont het de moeite om de autoriteitsniveaus goed te begrijpen.

Autoriteitsniveaus (GM authority)

In de Metin2-bron wordt autoriteit gedefinieerd door een enum in gm.h. Van laag naar hoog zijn de niveaus:

  • GM_PLAYER — een gewone speler; geen enkel GM-commando werkt.
  • GM_LOW_WIZARD — beperkte supportrechten (mededelingen, teleporteren, enzovoort).
  • GM_WIZARD — eventrechten op middenniveau.
  • GM_HIGH_WIZARD — geavanceerd beheer (spelers levelen, mobbeheer).
  • GM_GOD — vrijwel onbeperkte rechten.
  • GM_IMPLEMENTOR — het hoogste niveau; gevaarlijke commando's zoals het aanmaken van items en reload bevinden zich hier.

De logica is eenvoudig: als een commando GM_HIGH_WIZARD vereist, kan iedereen op dat niveau en hoger het gebruiken. Een supportteam de laagst mogelijke autoriteit geven en het hoogste niveau voor jezelf reserveren is de gezondste aanpak.

De meest gebruikte Metin2 GM-commando's

De onderstaande commando's bestaan op vrijwel elke standaardserver. Begin bij het testen nooit op de liveserver — probeer ze eerst in een gesloten testomgeving.

  • /item <vnum> [aantal] — voegt het item met de gegeven vnum toe aan je inventaris.
  • /give <naam> <vnum> [aantal] — geeft een item aan een doelspeler.
  • /mob <vnum> — spawnt één monster op je locatie.
  • /group <vnum> — spawnt een monstergroep (een roedel).
  • /purge — verwijdert de NPC of mob die je target van de kaart.
  • /advance <naam> <level> — brengt een speler naar het gewenste level.
  • /transfer <naam> — teleporteert een speler naar jou.
  • /warp <x> <y> — teleporteert jezelf naar de opgegeven coördinaten.
  • /notice <bericht> — stuurt een gele systeemmelding naar de hele server.
  • /restart_here / /restart_town — respawn ter plekke of in de stad als je sterft.
  • /reload <vlag> — herlaadt de configuratie; bijvoorbeeld /reload p ververst de item/mob-proto.

Een voorbeeldstroom: als je spelers tijdens een event beloont, selecteer je eerst het doel en stuur je daarna het item:

/notice Over 30 minuten begint er een event op het centrale plein!
/transfer WinnendeSpeler
/give WinnendeSpeler 71001 5

Het commando /reload is zeer krachtig: het laat je wijzigingen in item_proto of mob_proto toepassen zonder de server af te sluiten. Toch is bij grote schemawijzigingen een volledige herstart veiliger.

Een account GM-rechten geven

Om de commando's te laten werken, moet je weten waar de autoriteit vandaan wordt gelezen. Metin2 laadt rechten uit de tabel gmlist in de database player. Een rij aan die tabel toevoegen maakt het betreffende account een GM. De typische kolommen zijn:

  • mID — de primaire sleutel.
  • mAccount — de loginnaam van het account dat rechten krijgt.
  • mName — de personagenaam die rechten krijgt (vaak * voor alle personages).
  • mContactIP — een beperking zodat commando's alleen vanaf dit IP werken.
  • mAuthority — het autoriteitsniveau (IMPLEMENTOR, GOD, HIGH_WIZARD ...).

Een voorbeeldrecord:

INSERT INTO player.gmlist (mAccount, mName, mContactIP, mServerIP, mAuthority)
VALUES ('adminaccount', '*', '85.100.20.10', 'ALL', 'IMPLEMENTOR');

Nadat je de rij hebt toegevoegd, moet je de server herstarten (of, als je bron dat ondersteunt, de GM-lijst herladen) om de wijziging actief te maken. In de meeste setups opent een leeg mContactIP-veld het commando vanaf elke locatie; vul voor de veiligheid daar je eigen vaste IP in.

Beveiliging: laat GM-rechten niet lekken

GM-commando's zijn het gevoeligste oppervlak van een server. Eén enkele /item-lek kan de hele economie laten instorten. Een paar basisregels:

  • Minste privilege: geef je supportteam het laagste niveau dat volstaat, niet GM_IMPLEMENTOR.
  • IP-beperking: vul altijd mContactIP in zodat zelfs een gestolen account geen GM-commando's vanaf een vreemd IP kan uitvoeren.
  • Logging: Metin2 schrijft GM-commando's naar de tabel command_log in de database log. Bekijk dit logboek regelmatig; houd bij wie wat en wanneer gaf.
  • Apart account: wees geen GM op het personage waarmee je dagelijks speelt; houd een apart account alleen voor beheer.
  • Testomgeving: probeer nieuwe commando's en /reload-experimenten eerst op een gesloten testserver.

Pas je deze regels toe, dan profiteer je van de kracht van de commando's terwijl je het risico tot een minimum beperkt.

Veelgestelde vragen

Ik typte een GM-commando maar er gebeurt niets, waarom?

De meest voorkomende oorzaak is dat je autoriteitsniveau onvoldoende is of dat je gmlist-record nog niet is ingelezen. Controleer de mAuthority-waarde van je account en herstart de server na de wijziging. Bovendien werken de commando's stilletjes niet als mContactIP niet gelijk is aan het IP waarmee je verbindt.

Waar vind ik de volledige lijst van alle commando's?

De exacte lijst hangt af van de bron die je gebruikt. De betrouwbaarste methode is om de registratietabel in de bestanden cmd.cpp / cmd_general.cpp / cmd_gm.cpp van je serverbron te lezen; de naam van elk commando en het vereiste autoriteitsniveau staan daar expliciet vermeld.

Laat /reload de server crashen?

Correct gebruikt niet — het is ontworpen om proto en configuratie te verversen. Toch kan het uitvoeren met een kapotte item_proto of een ontbrekend bestand fouten veroorzaken. Daarom moet je grote wijzigingen in een testomgeving valideren voordat je live gaat.

Wil je je Metin2-server veilig opzetten? Heb je hulp nodig met GM-autoriteit, loginfrastructuur en commandobeveiliging, neem dan contact met me op — laten we je server samen verstevigen.

Bu kategorideki tüm yazılar →

Devamı için