Jak dodać GM'a na własnym serwerze Metin2?

Cześć, rozpoczynam serię nowych poradników, które będą tworzyć naszą bazę wiedzę o tworzeniu prywatnych serwerów Metin2. Ten poradnik dla wielu z was będzie banalny i pewnie część osób określi go jako zbędny, dlatego chciałbym to na początku wyjaśnić. Tym poradnikiem chcę pokazać, że materiały opisujące nawet podstawowe kwestie związane z tworzenia serwera są u nas bardzo mile widziane. Chcemy zbudować na Sharegon solidną i w pełni aktualną bazę wiedzy dotyczącą tworzenia prywatnych serwerów Metin2 oraz zarządzania nimi. Tu mój drobny apel do społeczności jeśli coś potrafisz i umiesz to dobrze opisać, podziel się tym z nami. Chcemy, żeby było to miejsce przystępne zarówno dla osób mających dużą wiedzę programistyczną, jak i dla początkujących, którzy dopiero zdobywają doświadczenie. To tyle krótkiego wstępu. Chciałem od razu wyjaśnić, skąd pomysł na tak podstawowy poradnik i uprzedzić podobne komentarze. Przejdźmy teraz do konkretów, zapraszam do mini lektury.😉

Połączenie z bazą danych

Nie będę tu opisywał dokładnie połączenia z bazą dodam link do tematu, gdy taki utworzę. Po nawiązaniu połączenia z bazą danych przejdź do bazy: common

db connect.png

Będziemy pracować w tabeli: gmlist

Po otworzeniu zobaczysz taką strukturę tabeli:

struktura gmlist.png

Omówienie struktury tabeli

mID to unikalny identyfikator wpisu w tabeli gmlist, który jest kluczem głównym i otrzymuje automatycznie kolejny numer poprzez atrybut AUTO INKREMENT

mAccount login do konta na którym ma być GM.

mName nazwa postaci GM musi być dokładnie taka sama, co nazwa już utworzonej postaci.

mContactIP ta kolumna jest pomijana - pozostaw pustą. W innych regionach była wykorzystywana do określenia adresu IP z którego GM się loguje na serwer.

mServerIP określa, na którym serwerze gry zostanie załadowany dany wpis GM. Wartość ALL oznacza wszystkie serwery. Na oficjalnych serwerach jest ich kilka i to pole pozwala przypisać GM'a do konkretnego serwera. W naszym przypadku będziemy ustawiać wartość domyślną ALL

mAuthority poziom uprawnień w formie tekstowej akceptowane są następujące wartości: PLAYER -> LOW_WIZZARD -> GOD -> HIGH_WIZARD -> IMPLEMENTOR.

Wyjaśnienie

AUTO_INCREMENT to właściwość kolumny, która sprawia, że MySQL automatycznie nadaje jej kolejne wartości podczas dodawania rekordów.

W tabeli gmlist dotyczy kolumny mID .

Poziomy uprawnień

Poziom uprawnień określa z jakich komend administracyjnych może korzystać dana postać. Im wyższy poziom tym większy zakres dostępnych poleceń.

  • GM_IMPLEMENTOR

  • GM_HIGH_WIZARD

  • GM_GOD

  • GM_LOW_WIZZARD

  • GM_PLAYER

Dostępne polecenia dla poszczególnych poziomów

Najwyższy poziom obejmuje wszystkie komendy niższych poziomów i dodatkowo:

  • who

  • set

  • book

  • refine_rod

  • refine_pick

  • max_pick

  • fish_simul

  • qf

  • setjob

  • setskillpoint

  • reload

  • mount_test

  • private

  • observer

  • socketitem

  • saveati

  • change_attr

  • add_attr

  • add_socket

  • temp

  • check_mmoney

  • flush

  • special_item

Obejmuje poziomy GM_PLAYER, GM_LOW_WIZARD, GM_WIZARD, GM_HIGH_WIZARD i dodatkowo:

  • weaken

  • item

  • advance

Obejmuje wszystkie niższe poziom i dodatkowo:

  • user

  • notice

  • big_notice

  • eventflag

  • mob

  • mob_ld

  • ma

  • mc

  • mm

  • kill

  • ipurge

  • group

  • grrandom

  • reset

  • greset

  • shutdow

  • shutdown

  • makeguild

  • deleteguild

  • safebox

  • clear_quest

  • setskillother

  • cooltime

  • polyitem

  • priv_empire

  • priv_guild

  • xmas_boom

  • xmas_snow

  • xmas_santa

  • jy

  • clear_land

  • horse_state

  • horse_level

  • horse_ride

  • horse_summon

  • horse_unsummon

  • horse_set_stat

  • elect

  • frog

  • reset_subskill

  • eclipse

  • eventhelper

Obejmuje komendy GM_PLAYER i dodatkowo:

  • warp

  • notice_map

  • dc

  • transfer

  • goto

  • level

  • geteventflag

  • console

  • stat_reset

  • state

  • stun

  • slow

  • invisible

  • setskill

  • gwlist

  • gwstop

  • gwcancel

  • gstate

  • getqf

  • setqf

  • delqf

  • set_state

  • detaillog

  • monsterlog

  • forgetme

  • aggregate

  • attract_ranger

  • pull_monster

  • polymorph

  • affect_remove

  • pcbang_update

  • pcbang_check

  • show_arena_list

  • end_all_duel

  • end_duel

  • duel

  • con+

  • int+

  • str+

  • dex+

  • break_marriage

  • show_quiz

  • log_oxevent

  • get_oxevent_att

  • effect

  • threeway_info

  • threeway_myinfo

  • rmcandidacy

  • setmonarch

  • rmmonarch

  • inventory

  • siege

  • weeklyevent

  • get_mob_count

  • item_id_list

  • set_socket

  • tcon

  • tint

  • tstr

  • tdex

  • cannot_dead

  • can_dead

  • full_set

  • item_full_set

  • attr_full_set

  • all_skill_master

  • use_item

  • do_clear_affect

GM_PLAYER oznacza poziom zwykłego gracza. Te komendy nie wymagają uprawnień GM:

  • war

  • nowar

  • stat

  • stat-

  • mount

  • restart_here

  • restart_town

  • phase_selec

  • phase_select

  • qui

  • quit

  • logou

  • logout

  • skillup

  • gskillup

  • pvp

  • safebox_close

  • safebox_passwor

  • safebox_password

  • safebox_change_passwor

  • safebox_change_password

  • mall_passwor

  • mall_password

  • mall_close

  • ungroup

  • close_shop

  • set_walk_mode

  • set_run_mode

  • pkmode

  • messenger_auth

  • setblockmode

  • unmount

  • party_request

  • party_request_accept

  • party_request_deny

  • observer_exit

  • view_equip

  • vote_block_chat

  • block_chat

  • block_chat_list

  • build

  • emotion_allow

  • kiss

  • slap

  • french_kiss

  • clap

  • cheer1

  • cheer2

  • dance1

  • dance2

  • dance3

  • dance4

  • dance5

  • dance6

  • congratulation

  • forgive

  • angry

  • attractive

  • sad

  • shy

  • cheerup

  • banter

  • joy

  • user_horse_ride

  • user_horse_back

  • user_horse_feed

  • mto

  • mtr

  • minfo

  • mtax

  • mmob

  • hair

  • cube

  • gift

  • mnotice

  • in_game_mall

  • dice

  • click_mall

  • ride

  • costume

  • dragon_soul

  • ds_list

Informacja

Pewnie zastanawiasz się dlaczego tu widnieje GM_PLAYER jest to poziom zwykłego gracza. Nie nadaje mu żadnych uprawnień GM. Istnieją komendy, które są wywoływane w różnych zdarzeniach np. użycie skrótu CTR + B wywołuje komendę user_horse_back odwołującą konia gdy jest przywołany, wciśnięcie przycisku wyloguj wywoła polecenie logout itd. właśnie do tego typu komend został stworzony ten poziom.

Nadanie GM - krok po kroku

  • Połącz się z bazą danych, następnie przejdź do bazy common i otwórz tabelę gmlist

  • W polu mAccount wpisz poprawny login konta.

  • W polu mName wpisz nazwę postaci, której chcesz nadać uprawnienia GM. Postać musi być wcześniej utworzona.

  • Pole mContactIP pozostaw puste. mServerIP możesz pozostawić z domyślną wartością ALL.

  • W kolumnie mAuthority określ poziom uprawnień. Jeśli chcesz nadać pełne uprawnienia GM, wybierz IMPLEMENTOR.

  • Zapisz dodany rekord, klikając przycisk zatwierdzenia zmian.

  • Na koniec zrestartuj serwer gry, aby nowe uprawnienia zostały zastosowane.

Przykładowy rekord:

test rekord.png

Brawo, właśnie dodałeś GM'a na swoim serwerze i możesz rozdawać ajtemki👏😏

gm present.png

Uwaga

Gdy masz na serwerze włączony tryb testowy każde konto otrzymuje poziom GM_IMPLEMENTOR . Jest to wygodne podczas testów, natomiast nie będzie wtedy widocznego znaczka GM, a wszystkie konta będą miały te uprawnienia. Aby odczyt tabeli gmlist działał poprawnie, upewnij się, że tryb testowy jest wyłączony. Sprawdzisz to w pliku CONFIG znajdującym się w folderze z kanałami gry. Wartość powinna być ustawiona na: TEST_SERVER: 0

Jeśli widzisz jakieś błędy merytoryczne o czymś zapomniałem albo coś jest niejasne, daj znać w komentarzu.

łap plusa na zachętę

Mordo, dobra robota. :D

Jest błąd w:
Informacja

Pewnie zastanawiasz się dlaczego tu widnieje GM_PLAYER jest to poziom zwykłego gracza. Nie nadaje mu żadnych uprawnień GM. Istnieją komendy, które są wywoływane w różnych zdarzeniach np. użycie skrótu CTR + B wywołuje komendę user_horse_back odwołującą konia gdy jest przywołany, wyciśnięcie przycisku wyloguj wywoła polecenie logout itd. właśnie do tego typu komend został stworzony ten poziom.

Nie wyciśnięcie tylko wciśnięcie. Więcej błędów nie znalazłem i nie pamiętam a za wszelkie bardzo żałuję xD

Faktycznie machnąłem się, ale od rana trochę mi zeszło żeby to przygotować i jeszcze pisałem na czacie, dzięki poprawiłem. A poza tym merytorycznie jest zrozumiały? Chciałem dość szczegółowo opisać żeby każdy wiedział, co z czego wynika i do czego służy bo równie dobrze można ten temat skrócić do kilku kroków, ale nie taki był cel.

Dla mnie git, choć ja to już na pamięć klikam i dodaję. XD
Czytałem dwa razy, trzeci już nie czytam bo głowa boli. Ale chyba wszystko już ok xd