Metin 2 files içindeki dizinlerin tek tek ne işe yaradığı: auth, db, ch1, share, locale ve conf dosyaları. Hangi dosyayı ne zaman düzenlemeniz gerekir?
Server files paketini ilk kez açtığınızda karşınıza onlarca klasör çıkar ve hangisine dokunacağınızı kestiremezsiniz. Bu yazıda dizinleri tek tek gezip her birinin ne işe yaradığını, hangi durumda hangi dosyayı düzenlemeniz gerektiğini anlatıyorum.
Not: dosya setleri arasında isimlendirme farkları olabilir. Aşağıdaki yapı en yaygın dağıtımları temel alıyor; sizinkinde bazı klasörler farklı adla veya iç içe olabilir.
Kök Dizinde Ne Var?
Tipik bir kurulumda kök dizin şuna benzer:
/usr/home/game/
├── auth/
├── channel1/
│ ├── core1/
│ ├── core2/
│ └── ...
├── db/
├── share/
│ ├── locale/
│ ├── data/
│ └── item_proto
└── log/
Bu dört ana dal işin tamamını oluşturur: kimlik doğrulama, oyun kanalları, veritabanı köprüsü ve paylaşılan veri.
auth/
Oyuncu giriş doğrulamasını yapan süreç burada çalışır. İçinde genellikle çalıştırılabilir dosya ve bir CONFIG bulunur. Bu CONFIG içindeki üç satır kritiktir:
- BIND_IP — sunucunuzun dışa açık IP adresi. Buradaki eski IP unutulursa oyuncular giriş ekranında takılır.
- PORT — auth sürecinin dinlediği port. Client tarafındaki ayarla eşleşmeli.
- DB_ADDR / DB_PORT — db sürecinin adresi.
Auth sunucusunu ayrı bir IP üzerinde çalıştırmak büyük sunucularda yaygın bir tercihtir; giriş yoğunluğunu oyun kanallarından ayırır.
channel1/ (ve varsa channel2, channel3...)
Oyun dünyasının fiilen çalıştığı yer. Her kanalın içinde core1, core2 gibi alt süreçler bulunur — bunlar haritaları paylaşır. Bir core belirli haritalardan sorumludur; hangi core'un hangi haritaya baktığı CONFIG dosyasındaki MAP_ALLOW satırlarıyla belirlenir.
Burada sık yapılan hata şudur: yeni bir harita eklerken hangi core'a atanacağı belirtilmez, harita hiçbir core tarafından yüklenmez ve oyuncu o bölgeye geçtiğinde bağlantısı kopar.
db/
Oyun süreçleri ile MySQL arasındaki köprü. Karakter kaydetme, eşya değişimi, lonca işlemleri bu süreçten geçer. CONFIG dosyasında veritabanı kullanıcı adı, şifresi ve şema adları tanımlanır.
Db süreci yavaşladığında belirti nettir: oyuncular "eşyam kayboldu", "karakterim geri gitti" der. Bunun sebebi genellikle veritabanı yazma performansıdır, oyun kodu değil.
share/
Tüm kanalların ortak kullandığı veri buradadır. En çok dokunacağınız klasör budur.
- item_proto — eşya tanımları. Yeni eşya eklemek veya mevcut bir eşyanın değerlerini değiştirmek için buraya bakılır.
- mob_proto — canavar tanımları; can, hasar, düşen eşya oranları.
- locale/ — dile ait metinler ve arayüz yazıları.
- data/ — harita dosyaları, kabile bölgeleri, doğma noktaları.
item_proto ve mob_proto genellikle ikili (binary) formattadır ve doğrudan metin editörüyle açılmaz; dönüştürücü araç gerekir. Dosya setinizle birlikte gelen araçları kullanın, farklı sürümden alınan dönüştürücü bozuk çıktı üretebilir.
log/
Çalışma günlükleri. Sorun çıktığında ilk bakılacak yer burasıdır — özellikle syserr dosyaları.
Hangi Dosyayı Ne Zaman Düzenlersiniz?
| Yapmak istediğiniz | Dokunacağınız yer |
|---|---|
| Sunucu IP değişikliği | auth/CONFIG, channel*/CONFIG, db/CONFIG |
| Tecrübe/eşya oranı | channel CONFIG veya veritabanı ayar tablosu |
| Yeni eşya eklemek | share/item_proto + locale dosyaları |
| Canavar dengesi | share/mob_proto |
| Yeni kanal açmak | channelN klasörü kopyalama + port ayarı |
| Harita eklemek | share/data + ilgili core MAP_ALLOW |
Düzenlemeden Önce: Yedek Alma Alışkanlığı
CONFIG dosyalarına dokunmadan önce kopyasını almak beş saniye sürer ve defalarca işinize yarar:
cp CONFIG CONFIG.yedek_$(date +%Y%m%d)
Aynısını item_proto gibi veri dosyaları için de yapın. Bozuk bir item_proto tüm sunucuyu başlatılamaz hale getirebilir ve hatanın nerede olduğunu bulmak saatler alır.
Dosya İzinleri
Yeni yüklediğiniz dosyalar çalışmıyorsa, çoğu zaman sebep izinlerdir. Çalıştırılabilir dosyaların execute izni olmalıdır:
chmod +x auth/auth
chmod +x db/db
chmod +x channel1/core1/game
Dosyaları Windows üzerinden aktardıysanız izinler kaybolmuş olabilir; FTP istemcileri bunu sıkça bozar.
Bir Uyarı: Kaynağı Belirsiz Setler
Klasör yapısını tanımak, dosya setinizde olmaması gereken bir şey olduğunda fark etmenizi de sağlar. Beklenmedik konumda duran betikler, tanımadığınız isimlerdeki çalıştırılabilir dosyalar veya dışarıya bağlantı kuran süreçler dikkat çekmelidir.
Bu konuyu ayrıntılı ele aldığımız files güvenlik denetimi yazısına göz atmanızı öneririm.
Kurulum Tarafı
Dosya yapısını tanıdıktan sonra kurulum adımları çok daha anlaşılır hale gelir. Sıfırdan kurulum yapacaksanız adım adım kurulum rehberimiz işinizi görür.
Sunucu tarafında hangi kaynaklara ihtiyacınız olduğunu hesaplamak için Metin2 sunucu paketlerimize bakabilirsiniz; dosya setinizi belirtirseniz uygun işletim sistemini kurulu teslim ediyoruz.
