Böyle detaylı ve temiz anlatım için şahsınıza teşekkür ederim sayın yetkilim.Src elimde mevcut bunu kaldırmanın bypass etmenin yolunu bana anlatırmısınız.
Bu noktada açık konuşmak lazım, çünkü etrafta çok yanlış bilgi dönüyor. Granny sürüm uyumsuzluğunu “bypass edeyim, client yine çizsin” diye bir yol yok. Source elinde olsa bile bu iş öyle if kapatmakla çözülmüyor.
Sebebi şu: Granny’de olay sadece sürüm kontrolü değil. Model dosyasının iç yapısı, kullanılan struct’lar, offset’ler sürüme göre değişiyor. Client dosyayı okurken “bu sürüm değil, geçiyorum” demiyor; zaten okuyamıyor. Okuyamayınca da ne hata basıyor ne crash atıyor, objeyi tamamen yok sayıyor. Senin yaşadığın durum tam olarak bu.
O yüzden source tarafında kapatabileceğin bir “granny check” satırı yok. #define GrannyProduction kısmı da görsel bir tanım, asıl mesele linklenen G
#defineütüphanesi.
Source varken yapılabilecek iki mantıklı yol var:
Birincisi, client’i objelerin geldiği Granny sürümüne göre yeniden derlemek. Bu teknik olarak mümkün ama zahmetlidir. Doğru Granny SDK elinde yoksa zaten yapılamaz. Ayrıca animasyon, skeleton ve render tarafı komple o sürüme bağlanır. Yani küçük bir düzenleme değil.
İkincisi (ki piyasada herkesin yaptığı yol budur), objeleri senin client’in kullandığı Granny sürümüne göre yeniden export etmek. Bu bypass değil ama en sağlıklı çözümdür. WorldEditor’da görünen ama oyunda görünmeyen map’lerin neredeyse tamamı bu şekilde düzeltilir.
“Granny’yi devre dışı bırakayım, objeyi başka türlü çizdireyim” gibi bir şey de pratikte yok. Bu, Metin2 client’inin render mantığını baştan yazmak anlamına gelir ki kimse bununla uğraşmaz.
Özetle:
– Granny sürüm uyuşmazlığı atlanamaz
– Source olsa bile zorla yükletme yok
– Ya client’i objelere uyduracaksın
– Ya objeleri client’e uyduracaksın
Bunun dışındaki her yol zaman kaybı.