Bu olay dosyanın bozuk olmasından değil, build aldıktan sonra
server tarafındaki dil/encoding ayarlarının değişmesinden kaynaklanıyor. Zaten senin de dediğin gibi dosyayı açınca her şey düzgün görünüyor, sorun oyun çalışırken ortaya çıkıyor.
Şöyle düşün:
Server string’i client’e gönderirken kullandığı karakter seti ile client’in beklediği karakter seti aynı değil. Bazı yazılar düzgün çıkıyor, bazıları saçma sapan Korece gibi görünüyor. Bunun sebebi de o satırlarda Türkçe karakter veya özel byte’lar geçmesi.
Bu problem özellikle source build aldıktan sonra başlar çünkü:
- FreeBSD ortamı UTF-8 locale ile çalışmaya başlar
- Metin2 client’leri (özellikle eski altyapılar) UTF-8 ile uyumlu değildir
- Server UTF-8 gibi gönderir, client ANSI bekler, sonuç bu olur
O yüzden “ara ara” oluyor. Düz ASCII olan satırlar sorun çıkarmıyor, Türkçe karakter geçenler patlıyor.
Çözüm tarafı server üzerindedir, dosyayı 50 kere değiştirsen de fayda etmez.
Yapman gereken şey, server’ı
C locale (ANSI) moduna sabitlemek.
FreeBSD’de şu dosyayı aç:
/etc/login.conf
default: bloğunun altına şunları ekle ya da varsa düzelt:
:lang=C:\
:setenv=LC_ALL=C:
Kaydedip çıktıktan sonra:
cap_mkdb /etc/login.conf
Sonra mutlaka
tam reboot at. Sadece game restart yetmez.
Eğer hızlı test yapmak istersen, geçici olarak:
export LC_ALL=C
yazıp game’i başlatabilirsin. Düzeliyorsa sebep kesin budur.
Özetle:
- locale_string.txt sağlam
- sorun quest, chat ya da item değil
- source kodu da suçlu değil
- problem tamamen server’ın UTF-8 locale ile çalışması
Bunu düzelttiğinde chat’teki garip yazılar tamamen kesilir ve bir daha geri gelmez.