Jak nadać uprawnienia GM w Metin2? Poziomy i bezpieczne użycie
Nadanie uprawnień GM na serwerze Metin2 to kilka linijek w bazie danych; trudniejsze jest przyznanie ich właściwej osobie, na właściwym poziomie, i zapobieganie nadużyciom. W tym poradniku wyjaśniamy, gdzie definiuje się uprawnienia GM, jakie są poziomy uprawnień, jak je nadać i odebrać oraz jakie środki bezpieczeństwa zastosować. Informacje opierają się na publicznie dostępnym kodzie źródłowym serwera Metin2 i plikach SQL; zależnie od wersji plików serwera i wprowadzonych zmian szczegóły mogą się różnić.
Gdzie definiuje się uprawnienia GM?
Uprawnienia są przechowywane w tabeli gmlist w bazie danych common. Rdzeń db odczytuje tę tabelę i przekazuje ją rdzeniom gry; poziom uprawnień postaci jest ustalany na podstawie tej listy w chwili wczytywania postaci do gry.
| Kolumna | Znaczenie |
|---|---|
mAccount |
Nazwa użytkownika konta gry GM-a |
mName |
Nazwa postaci, która dostaje uprawnienia |
mContactIP |
Dozwolony adres IP połączenia (zob. uwagę niżej) |
mServerIP |
Serwer gry, na którym uprawnienia obowiązują; ALL oznacza wszystkie |
mAuthority |
Poziom uprawnień |
Uprawnienia są przypisane do postaci; inna postać na tym samym koncie nie zostaje GM-em. Przy tureckich i europejskich ustawieniach regionalnych kodu źródłowego porównywana jest też nazwa konta: nawet jeśli postać GM zostanie usunięta, a jej nazwę ktoś zajmie na innym koncie, to konto nie zdobędzie uprawnień.
Poziomy uprawnień
W kodzie źródłowym poziomy są ułożone od najniższego do najwyższego, a każdy poziom może używać także komend niższych poziomów:
| Poziom | Przykładowe komendy dodawane w standardowej tabeli komend |
|---|---|
| LOW_WIZARD | /warp, /goto, /transfer, /dc, /invisible, /notice_map |
| WIZARD | /purge, /respawn |
| HIGH_WIZARD | /notice, /mob, /kill, /eventflag, /shutdown |
| GOD | /item, /advance |
| IMPLEMENTOR | /reload, /set, /who |
W niektórych plikach SQL wśród dozwolonych wartości kolumny mAuthority nie ma WIZARD; nawet jeśli kod rozpoznaje tę wartość, nie przypiszesz tego poziomu, gdy kolumna na to nie pozwala. Opisy komend znajdziesz w naszej liście komend GM.
Nadawanie uprawnień GM krok po kroku
-
Załóż osobne konto: Dla GM-a utwórz konto gry i postać oddzielne od swojego konta gracza.
-
Dodaj do listy: W bazie danych common uruchom takie zapytanie, zmieniając wartości na własne:
INSERT INTO gmlist (mAccount, mName, mContactIP, mServerIP, mAuthority) VALUES ('gmhesap', 'GMKarakter', '', 'ALL', 'LOW_WIZARD'); -
Odśwież listę: Wpisz w grze
/reload apostacią z poziomem IMPLEMENTOR albo zrestartuj serwer. W kodzie źródłowym odświeżenie od razu obejmuje też postacie z listy, które są w tym momencie w grze. -
Przetestuj: Wejdź do gry postacią GM i uruchom nieszkodliwą komendę zgodną z jej poziomem, np.
/state.
Odbieranie uprawnień
Usuń wiersz GM-a, który kończy swoją funkcję, i odśwież listę:
DELETE FROM gmlist WHERE mName = 'GMKarakter';
Następnie wpisz /reload a. Tu ważny szczegół: w kodzie źródłowym odświeżenie nie obniża poziomu postaci, która została usunięta z listy, ale w tej chwili jest w grze; uprawnienia zostają do ponownego wczytania postaci. Dlatego rozłącz tę osobę komendą /dc i zmień hasło do konta GM.
Zawężanie poziomów komend plikiem CMD
Plik CMD w folderze rdzenia gry pozwala zmienić poziom wymagany przez komendy. W każdej linii wpisuje się jedną komendę i jeden poziom; DISABLE wyłącza komendę dla wszystkich:
item IMPLEMENTOR
shutdown IMPLEMENTOR
full_set DISABLE
W standardowej tabeli nawet najniższy poziom LOW_WIZARD ma dostęp do komend testowych takich jak /full_set i /all_skill_master, które dają postaci GM-a pełny ekwipunek, bonusy i umiejętności; nie uważaj najniższego poziomu za nieszkodliwy. W kodzie źródłowym błędna linia uniemożliwia uruchomienie rdzenia, dlatego zmianę najpierw przetestuj na serwerze testowym.
Zalecenia dotyczące bezpiecznego użycia
- Minimalne uprawnienia: Każdemu GM-owi dawaj najniższy poziom wystarczający do jego pracy; dla zespołu pomocy zwykle wystarcza LOW_WIZARD.
- Silne i unikalne hasło: Hasła do kont GM nie powinny być używane nigdzie indziej ani udostępniane w zespole.
- Ograniczenie IP: Choć istnieje kolumna
mContactIP, w przeanalizowanym przez nas kodzie źródłowym przy tureckich i europejskich ustawieniach regionalnych adres IP nie jest sprawdzany, a jedynie nazwa konta. Jeśli chcesz ograniczenia IP, zleć jego wdrożenie w plikach serwera swojemu programiście albo stosuj je przy dostępach administracyjnych, takich jak baza danych, SSH i panel. - Wyłączony tryb testowy: Gdy w pliku CONFIG rdzenia gry włączone jest ustawienie TEST_SERVER, w kodzie źródłowym każdy dostaje uprawnienia IMPLEMENTOR. Sprawdź wartość tej linii w plikach CONFIG dołączonych do gotowych plików serwera; upewnij się, że na żywym serwerze jest wyłączone.
- Przeglądaj logi: W kodzie źródłowym logowania GM-ów i przedmioty utworzone komendą
/itemtrafiają do bazy logów; przy tureckich i europejskich ustawieniach komendy GM są dodatkowo zapisywane w tabelicommand_log. Przeglądaj te wpisy raz w tygodniu. - Regularne porządki: Wpisy GM-ów, którzy odeszli z zespołu albo są nieaktywni, usuwaj bez zwłoki.
Gdy zespół i pliki będą gotowe, możesz bezpłatnie dodać swój serwer do listy, a doświadczeniami z innymi właścicielami serwerów podzielisz się na naszym forum.
Najczęściej zadawane pytania
Dlaczego komendy nie działają mimo nadanych uprawnień GM?
Jeśli nie odświeżysz listy komendą /reload a albo nie zrestartujesz serwera, uprawnienia nie będą aktywne. Sprawdź, czy nazwa konta i postaci jest dokładnie taka sama jak w wierszu gmlist i czy poziom wystarcza do danej komendy.
Czy mogę dać jednemu GM-owi uprawnienia na kilku postaciach?
Tak, ale dla każdej postaci musisz dodać osobny wiersz. Każda dodatkowa postać to jednak nowe ryzyko; jeśli nie jest to naprawdę potrzebne, ogranicz się do jednej postaci.
Dlaczego na serwerze testowym każdy jest GM-em?
W kodzie źródłowym, gdy włączone jest TEST_SERVER, każda postać dostaje najwyższy poziom. To zachowanie jest przeznaczone dla środowiska testowego; na żywym serwerze nigdy nie zostawiaj tego ustawienia włączonego.
Czy uprawnienia GM można nadać z poziomu gry?
W standardowym kodzie źródłowym nie ma do tego komendy w grze; uprawnienia nadaje się w tabeli gmlist i odświeża komendą /reload a. W niektórych plikach serwera mogą być do tego dodatkowe narzędzia.
Komentarze 0
Nie dodano jeszcze żadnych komentarzy.