Paylaş :
Bu rehberde Metin2 source üzerinde kullanılabilecek daha gelişmiş /reload komutlarından bahsediyoruz. Normal /reload sistemi bazı işlemler için yeterli olsa da, özellikle item proto ve mob proto gibi verileri oyun açıkken yeniden yüklemek isteyenler için daha geniş bir reload yapısı gerekiyor.
Bu sistemin amacı serverı tamamen kapatıp açmadan bazı dosyaları veya tabloları tekrar okutabilmek. Özellikle test serverında item düzenlemesi, mob düzenlemesi, drop ayarı ya da proto tarafındaki değişiklikleri hızlı kontrol etmek için baya işe yarıyor.

Normalde bazı source yapılarında item proto veya mob proto reload edildiğinde karakter oyundan düşebiliyor. Yani komut aslında çalışıyor, veriler yeniden yükleniyor ama işlem sırasında bağlantı kopması yaşanıyor. Oyuncu tekrar giriş yaptığında değişiklikler aktif oluyor. Bu da sistemin çalıştığını gösteriyor ama kullanım olarak pek temiz bir durum değil.
Buradaki geliştirilmiş reload yapısında amaç bu işlemi daha düzgün hale getirmek. Item proto ve mob proto gibi veriler reload edildiğinde oyun tarafında gereksiz disconnect yaşanmadan sistemin devam etmesi hedefleniyor. Böylece özellikle geliştirme yaparken her küçük değişiklikten sonra game kapatıp açmak zorunda kalmıyorsun.
Bu tarz sistemlerde en önemli nokta reload edilen verinin hangi tarafta kullanıldığını bilmek. Sadece dosyayı tekrar okutmak yetmeyebilir. Eğer ilgili veri cache üzerinde tutuluyorsa, eski verinin temizlenmesi ya da yeniden oluşturulması gerekir. Aksi halde reload komutu çalışmış gibi görünür ama oyun hâlâ eski bilgiyi kullanmaya devam eder.

Örneğin item proto reload edilecekse item manager tarafında kullanılan proto verileri yeniden okunmalı. Mob proto için de mob manager ya da ilgili table yapısı tekrar yüklenmeli. Source yapısına göre fonksiyon isimleri değişebilir ama mantık aynıdır. Önce eski tabloyu veya bellekteki veriyi güvenli şekilde temizlersin, sonra güncel protoyu tekrar okutursun.
Gelişmiş /reload komutları genelde cmd_gm.cpp veya komutların işlendiği benzer dosyalarda düzenlenir. Burada komut parametresine göre farklı reload işlemleri çağrılır. Mesela /reload item_proto, /reload mob_proto, /reload quest, /reload admin gibi ayrı kontroller eklenebilir.
![[DEV] EMOJİ](https://dev.mmooyun.com/wp-content/uploads/2026/03/cropped-cropped-Gemini_Generated_Image_r2ljj1r2ljj1r2lj-1.png)
