Metin2 MySQL ile Sık Yapılan İşlemler: Eşya Verme, Ban, Seviye, GM

Kayıtlı
1 Yıl 9 Ay 14 Gün
Katılım
10 Ocak 2025
Konular
50
Mesajlar
140
Tepkime puanı
21
Online süresi
7h 23m
Puan
43
Konum
Türkiye
Web sitesi
www.zyncra.shop
​

📌 Konu İçeriği — Hızlı Bakış
01.
Önce karakteri ve hesabı bul
02. Sunucu açıkken: item_award
03. Yang verme
04. Metin2 ban atma ve kaldırma
05. Seviye yükseltme
06. GM yetkisi

  1. Önce karakteri ve hesabı bul
  2. MySQL ile eşya verme

    1. Sunucu açıkken: item_award
    2. Sunucu kapalıyken: efsunlu eşyayı envantere yazmak

    Metin2'de eşya vermek, ban atmak, seviye yükseltmek ya da GM eklemek MySQL'de tek satırlık sorgulardır; sonucu belirleyen, hangi tabloya ve ne zaman yazıldığıdır.

    [01] Önce karakteri ve hesabı bul

    Sorguların çoğu karakter numarasını (player.id) ya da hesap adını (account.login) ister:

    SQL:
    SELECT id, account_id, name, level, map_index FROM player.player
    WHERE name = 'KarakterAdi';
    
    SELECT p.id, p.name, p.level FROM player.player AS p
    JOIN account.account AS a ON a.id = p.account_id
    WHERE a.login = 'hesapadi';

    Oyunun mt2 kullanıcısı beş veritabanının hepsinde okuma ve yazma yetkisine sahip olduğu için veritabanları arası JOIN bu kullanıcıyla da çalışır.

    Sunucu açıkken: item_award

    item_award'a eklenen satırı db 5 saniyede bir okur; bu yenilemeyi ENABLE_ITEMAWARD_REFRESH tanımı açar, tanım kapalıysa yeni satırlar db'ye ulaşmaz. Eşya, oyuncu depoyu (mall 0) ya da Nesne Marketi Deposu'nu (mall 1) açtığında ilk boş kutuya yerleşir; db satırın taken_time ve item_id sütunlarını doldurur.

    SQL:
    INSERT INTO player.item_award (login, vnum, count, given_time, why, mall, socket0)
    VALUES ('hesapadi', 50300, 1, NOW(), 'destek', 0, 4);

    [02] Yang verme

    LEAST Yang'ın oyunun sınırını aşmasını engeller; 2.000.000.000'a ulaşan bir karakter artık Yang kazanamaz. Oyuncu oyundaysa SQL yerine IMPLEMENTOR yetkili bir GM, oyuncuyla aynı çekirdekteyken /set KarakterAdi gold 1000000 yazar; komut değeri eskisinin üstüne ekler, eksi değer düşer.

    [03] Metin2 ban atma ve kaldırma

    Ban hesaba işler ve girişte denetlenir; oyundaki oyuncuyu düşürmek için aynı çekirdekteki bir GM /dc KarakterAdi yazar. Birden çok tabloyu birleştiren UPDATE'te MySQL LIMIT kabul etmez, bu yüzden üçüncü sorgudan önce aynı JOIN ile SELECT çalıştırıp tek satır döndüğünü görmek gerekir.

    [04] Seviye yükseltme

    Sağlıklı yol oyuncu oyundayken tecrübe vermektir: IMPLEMENTOR yetkili bir GM, oyuncuyla aynı çekirdekteyken /set KarakterAdi exp 50000000 yazar. Oyun seviye atlamalarını kendisi yapar; statü ve beceri puanları ile rastgele HP artışı her seviyede normal yoldan gelir, seviye CONFIG'deki MAX_LEVEL'ı geçmez.

    [05] GM yetkisi

    Değişiklik sunucu yeniden başlatılınca ya da IMPLEMENTOR bir GM oyunda /reload a yazınca geçerli olur.

    [06] Sıkışan karakteri köye almak

    Karakterin krallığı player_index.empire sütunundadır (1 Shinsoo, 2 Chunjo, 3 Jinno).

    [07] Uygunsuz karakter adını değiştirtmek

    Oyuncu bu karakterle girmeden önce karakter seçim ekranında yeni bir ad seçmek zorunda kalır. Oyun yeni adı kendi kurallarıyla ve başka bir karakterde kullanılıp kullanılmadığına bakarak denetler; adı doğrudan name sütununa yazmak bu denetimleri atlar.

    [08] Depo şifresini sıfırlamak

    Depo şifresi her depo açılışında MySQL'den okunduğu için bu işlem sunucu açıkken de yapılabilir.

    [09] İşlemden sonra

    Aynı SELECT'i yeniden çalıştırıp sonucu gör. SQL ile yapılan değişiklikler oyunun günlüklerine düşmez; kimin, ne zaman, hangi sebeple eşya ya da ban aldığını kendi kaydında tut.

    [10] İlgili sayfalar
    • Metin2 GM Komutları: En Çok Kullanılan Komutlar ve Yetki Seviyeleri (Server kurma)
    • Metin2 GM Nasıl Yapılır? gmlist Tablosu ve GM Yetki Seviyeleri (Server kurma)
    • Metin2 account Tablosu: Hesap Durumu, Ban ve Diğer Alanlar (Server kurma)

    Sıkça Sorulan Sorular (SSS)
    Soru 1: Metin2 MySQL ile Sık Yapılan İşlemler: Eşya Verme, Ban, Seviye, GM rehberindeki ayarlar tüm sunucu yapılarında geçerli mi?
    Evet, rehberde paylaşılan temel mekanikler hem emek (zor) hem de orta/vs'lik sunucu kurgularında doğrudan uygulanabilir; sunucu oranlarına göre küçük ince ayarlar yapılabilir.

    Soru 2: En yüksek verim için hangi sıralama takip edilmeli?
    Öncelikle karakter/sistem temel gereksinimlerini tamamlayıp ardından konu içerisindeki adım adım dizilim ve optimizasyon tavsiyelerini sırasıyla uygulamanız en yüksek performansı sağlar.
 
Son düzenleme:
Geri
Üst