Sunucu Sahipleri İçin

Metin2 GM Yetkisi Nasıl Verilir? Yetki Seviyeleri ve Güvenli Kullanım

Metin2 GM Yetkisi Nasıl Verilir? Yetki Seviyeleri ve Güvenli Kullanım

Metin2 serverında GM yetkisi vermek birkaç satırlık bir veritabanı işidir; zor olan, yetkiyi doğru kişiye doğru seviyede vermek ve kötüye kullanılmasını önlemektir. Bu rehberde GM yetkisinin nerede tanımlandığını, yetki seviyelerini, yetki verme ve geri alma adımlarını ve güvenlik önlemlerini anlatıyoruz. Bilgiler herkese açık Metin2 sunucu kaynak koduna ve SQL dosyalarına dayanıyor; sunucu dosyalarının sürümüne ve yapılan düzenlemelere göre ayrıntılar farklı olabilir.

GM yetkisi nerede tanımlanır?

Yetkiler common veritabanındaki gmlist tablosunda tutulur. db çekirdeği bu tabloyu okuyup oyun çekirdeklerine gönderir; karakterin yetki seviyesi, karakter oyuna yüklenirken bu listeden belirlenir.

Sütun Anlamı
mAccount GM'in oyun hesabının kullanıcı adı
mName Yetki verilecek karakterin adı
mContactIP İzin verilen bağlantı IP'si (aşağıdaki uyarıya bak)
mServerIP Geçerli olduğu oyun sunucusu; ALL hepsi demektir
mAuthority Yetki seviyesi

Yetki karaktere bağlıdır; aynı hesaptaki başka bir karakter GM olmaz. Kaynağın Türkiye ve Avrupa yerel ayarlarında hesap adı da karşılaştırılır: GM karakteri silinip adı başka bir hesapta yeniden alınsa bile o hesap yetki kazanamaz.

Yetki seviyeleri

Kaynakta seviyeler düşükten yükseğe sıralanır ve her seviye, alttakilerin komutlarını da kullanabilir:

Seviye Stok komut tablosunda eklenen örnek komutlar
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

Bazı SQL dosyalarında mAuthority sütununun seçenekleri arasında WIZARD yer almaz; kod bu değeri tanısa da sütun izin vermiyorsa bu seviyeyi atayamazsın. Komutların açıklamaları için GM komutları listesi yazımıza bakabilirsin.

Adım adım GM yetkisi verme

  1. Ayrı hesap aç: GM için kendi oyuncu hesabından ayrı bir oyun hesabı ve karakter oluştur.

  2. Listeye ekle: common veritabanında, değerleri kendine göre değiştirerek şu sorguyu çalıştır:

    INSERT INTO gmlist (mAccount, mName, mContactIP, mServerIP, mAuthority)
    VALUES ('gmhesap', 'GMKarakter', '', 'ALL', 'LOW_WIZARD');
    
  3. Listeyi yenile: IMPLEMENTOR seviyesindeki bir karakterle oyunda /reload a yaz ya da sunucuyu yeniden başlat. Kaynakta yenileme, listede olup o anda oyunda bulunan karakterlere de hemen uygulanır.

  4. Dene: GM karakteriyle oyuna gir ve seviyesine uygun zararsız bir komut çalıştır, örneğin /state.

Yetkiyi geri alma

Görevi biten GM'in satırını sil ve listeyi yenile:

DELETE FROM gmlist WHERE mName = 'GMKarakter';

Ardından /reload a yaz. Burada önemli bir ayrıntı var: kaynakta yenileme, listeden çıkarılan ama o sırada oyunda olan karakterin seviyesini düşürmez; yetki, karakter yeniden yüklenene kadar kalır. Bu yüzden kişinin bağlantısını /dc ile kes ve GM hesabının şifresini değiştir.

Komut seviyelerini CMD dosyasıyla daraltmak

Oyun çekirdeğinin klasöründeki CMD dosyası, komutların gerektirdiği seviyeyi değiştirmeni sağlar. Her satıra bir komut ve bir seviye yazılır; DISABLE, komutu herkese kapatır:

item IMPLEMENTOR
shutdown IMPLEMENTOR
full_set DISABLE

Stok tabloda en düşük seviye olan LOW_WIZARD bile /full_set ve /all_skill_master gibi, GM'in kendi karakterine tam ekipman, efsun ve beceri veren test komutlarına erişebiliyor; en düşük seviyeyi zararsız sanma. Kaynakta hatalı bir satır çekirdeğin açılmasını engellediği için değişikliği önce test sunucusunda dene.

Güvenli kullanım için öneriler

  • En az yetki: Her GM'e işini yapmaya yetecek en düşük seviyeyi ver; destek ekibi için çoğu zaman LOW_WIZARD yeterlidir.
  • Güçlü ve benzersiz şifre: GM hesaplarının şifresi başka hiçbir yerde kullanılmamalı ve ekip içinde paylaşılmamalı.
  • IP kısıtı: mContactIP sütunu olsa da incelediğimiz kaynakta Türkiye ve Avrupa yerel ayarlarında IP kontrol edilmiyor, yalnızca hesap adına bakılıyor. IP kısıtı istiyorsan bunu geliştiricine sunucu dosyalarında yaptırmalı ya da veritabanı, SSH ve panel gibi yönetim erişimlerinde uygulamalısın.
  • Test modu kapalı: Oyun çekirdeğinin CONFIG dosyasındaki TEST_SERVER ayarı açıkken kaynakta herkes IMPLEMENTOR yetkisi alır. Hazır dosyalarla gelen CONFIG'lerde bu satırın değerine bak; canlı sunucuda kapalı olduğundan emin ol.
  • Kayıtları incele: Kaynakta GM girişleri ve /item ile oluşturulan eşyalar log veritabanına yazılır; Türkiye ve Avrupa ayarlarında GM komutları ayrıca command_log tablosuna düşer. Bu kayıtlara haftada bir göz at.
  • Düzenli temizlik: Ekipten ayrılan ya da aktif olmayan GM'lerin kayıtlarını beklemeden sil.

Ekibin ve dosyaların hazır olduğunda serverını ücretsiz listeleyebilir, diğer sunucu sahipleriyle deneyim paylaşmak için forumumuzu kullanabilirsin.

Sık sorulan sorular

GM yetkisi verdim ama komutlar çalışmıyor, neden?

Listeyi /reload a ile yenilemediysen ya da sunucuyu yeniden başlatmadıysan yetki görünmez. Hesap ve karakter adının gmlist satırıyla birebir aynı olduğunu, seviyenin de komuta yettiğini kontrol et.

Bir GM'e birden fazla karakterde yetki verebilir miyim?

Evet, her karakter için ayrı bir satır eklemen gerekir. Yine de her ek karakter yeni bir risk demektir; gerçekten gerekmedikçe tek karakterle sınırla.

Test sunucusunda neden herkes GM?

Kaynakta TEST_SERVER açıkken her karakter en yüksek seviyeyi alır. Bu davranış test ortamı içindir; canlı sunucuda bu ayarı asla açık bırakma.

Oyun içinden GM yetkisi verilebilir mi?

Stok kaynakta bunun için bir oyun içi komut yoktur; yetki gmlist tablosundan verilir ve /reload a ile yenilenir. Bazı sunucu dosyalarında bu iş için ek araçlar bulunabilir.

0 Beğeni

Diğer yazılar

Yorumlar 0

Henüz yorum yapılmadı.