*******************************************************
Scaleli Kuşak sistemi ekledikten sonra oluştan bi hata
*******************************************************
bu cpplerde ve pylerde var olan scaleli kuşak kodlarını kaldırıp bunları kurun
*******************************************************
örneğin auto pot üzerinde dönen beyaz efekt saçma sapan dönüşler yapıyor. clienti kastırıyor
bütün beyaz veya başka renk dönen efeklerin hepsinde kastırma yaptırıyor.
*******************************************************
Scaleli Kuşak sistemi ekledikten sonra oluştan bi hata
*******************************************************
bu cpplerde ve pylerde var olan scaleli kuşak kodlarını kaldırıp bunları kurun
*******************************************************
örneğin auto pot üzerinde dönen beyaz efekt saçma sapan dönüşler yapıyor. clienti kastırıyor
bütün beyaz veya başka renk dönen efeklerin hepsinde kastırma yaptırıyor.
*******************************************************
Çözümü :
ClientSource/EterPythonLib/PythonSlotWindow.cpp
Kod:
void CSlotWindow::DeactivateSlot(DWORD dwIndex)
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
pSlot->bActive = FALSE;
arat
altına ekle
Kod:
m_ReserveDestroyEffectDeque.clear();
arat
altına ekle
Kod:
if (rSlot.bActive)
arat
kodun blok bitişine ekle
Kod:
void CSlotWindow::__DestroySlotEnableEffect()
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
m_pBaseImageInstance = NULL;
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
__DestroySlotEnableEffect();
arat
altına ekle
Kod:
__DestroySlotSashEnableEffect();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ClientSource/EterPythonLib/PythonSlotWindow.h
Kod:
BOOL bActive;
arat
altına ekle
Kod:
void RefreshSlot();
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
void __DestroySlotEnableEffect();
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
CImageBox * m_pToggleSlotImage;
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ClientSource/EterPythonLib/PythonWindowManagerModule.cpp
Kod:
PyObject * wndMgrShowOverInWindowName(PyObject * poSelf, PyObject * poArgs)
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
/////////////////////////////////////////////
Kod:
{ "ShowOverInWindowName", wndMgrShowOverInWindowName, METH_VARARGS },
arat
altına ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
MakePack/root/uiinventory.py
Kod:
def RefreshBagSlotWindow(self):
arat
içerisine ekle
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Gerekli dosya :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
etc içine atınız.
Clienti Kastıran Kuşak Sorunu Fix
Metin2 özel sunucularında client tarafında yaşanan performans sorunlarının başında kuşak animasyonları nedeniyle oluşan gecikmeler gelmektedir. Bu yazıda, kuşak (belt) animasyonu nedeniyle clientte donmalar yaşayan oyuncular için kalıcı bir çözüm sunacağız.
Kuşak Sistemi Nedir?
Metin2 oyununda kuşaklar, karakterlerin bel bölgesine takılan görsel efekt objeleridir. Özellikle PVP odaklı sistemlerde estetik ve kişiselleştirme açısından önemlidir. Ancak bazı özel sunucularda kuşak animasyonları eksik veya hatalı tanımlanmışsa, client donmaları, FPS düşmeleri gibi ciddi performans problemleri yaşanabilir.
Sorunun Kaynağı
Bu sorun genellikle clientin kuşak animasyonlarını doğru şekilde işletememesinden kaynaklanır. Özellikle bazı kuşak tipleri için animasyon dosyaları eksikse ya da tanımlamalar yanlışsa, client sürekli olarak animasyonu yüklemeye çalışır. Bu durumda CPU ve GPU üzerinde gereksiz işlem yükü oluşur. Bu da karakter hareketlerinde donmalar, atlarla koşarken ani FPS düşüşleri gibi etkiler doğurur.
Fix Uygulama Adımları
1. Client Dosyası Kontrolü: client/root/uiinventory.py dosyasını açın. Burada kuşak sistemi ile ilgili tanımlar yer alır. Özellikle beltSlotWindow adlı fonksiyonu inceleyin. Eğer burada animasyon tanımları eksikse veya hatalıysa, client kuşak animasyonlarını doğru render edemez.
2. Animasyon Dosyalarının Doğrulanması: Clientin ef_dir klasöründe bulunan kuşak animasyon dosyalarını kontrol edin. Eksik veya bozuk dosya varsa, bu dosyaların doğru versiyonlarını temin edip değiştirin. Özellikle belt_0.gr2 gibi dosyalar eksik olmamalıdır.
3. Belt Slot Render Ayarı: uiinventory.py dosyasında belt slot render ayarlarını güncelleyerek, kuşak animasyonlarının sadece belirlenen tiplerde çalışmasını sağlayın. Bu sayede gereksiz animasyon yükünü azaltabilirsiniz.
4. Sunucu Tarafı Kontrolü: Auth ve Game sunucularında belt item tanımlamalarının doğru yapıldığından emin olun. Yanlış item ID tanımı, client tarafında kuşak animasyonunun bozulmasına sebep olabilir.
Alternatif Çözüm: Kuşak Sistemini Devre Dışı Bırakma
Eğer kuşak sistemini kullanmıyorsanız, client tarafında belt slot rendering kısmını devre dışı bırakarak tamamen sorundan kurtulabilirsiniz. Bu işlem için uiinventory.py dosyasında ilgili satırları yorum satırına çevirin veya silin.
Sonuç
Client tarafında kuşak animasyonundan kaynaklanan donma ve FPS düşmeleri, kullanıcı deneyimini ciddi şekilde etkiler. Doğru tanımlamalar ve eksiksiz animasyon dosyalarıyla bu sorun kolayca çözülebilir. Özellikle PVP odaklı Metin2 özel sunucularında, her milisaniye önemlidir. Bu fix sayesinde client daha stabil ve hızlı çalışacaktır.
Fix for Belt Animation Issue Causing Client Lag
In Metin2 private servers, one of the main performance issues on the client side arises from belt animations, which can cause significant lagging. In this article, we will provide a permanent solution for players experiencing stuttering or freezing caused by belt animation issues.
What is the Belt System?
Belts in Metin2 are visual effect objects attached to the waist area of characters. They are especially important in PVP-oriented servers for aesthetics and customization. However, if belt animations are incomplete or incorrectly defined in certain private servers, serious performance issues such as client freezes and FPS drops may occur.
Root Cause of the Problem
This issue typically stems from the client failing to properly handle belt animations. If animation files for specific belt types are missing or incorrectly defined, the client keeps trying to load the animation, causing unnecessary CPU and GPU load. This leads to stutters during character movement, sudden FPS drops while riding mounts, and other related issues.
Steps to Apply the Fix
1. Check Client Files: Open the client/root/uiinventory.py file. It contains definitions related to the belt system. Examine the function named beltSlotWindow. If animation definitions here are incomplete or incorrect, the client cannot render belt animations properly.
2. Verify Animation Files: Check the belt animation files located in the ef_dir folder of the client. If any files are missing or corrupted, replace them with correct versions. Especially ensure files like belt_0.gr2 are not missing.
3. Adjust Belt Slot Rendering Settings: Update the belt slot rendering settings in uiinventory.py to allow animations only for specific belt types. This reduces unnecessary animation load.
4. Server-Side Checks: Ensure that belt item definitions are correctly configured in both auth and game servers. Incorrect item IDs may cause belt animations to malfunction on the client side.
Alternative Solution: Disable Belt System
If you do not use the belt system, you can completely remove the issue by disabling belt slot rendering on the client side. To do so, comment out or remove relevant lines in the uiinventory.py file.
Conclusion
Lagging and FPS drops caused by belt animations on the client side significantly affect user experience. With correct definitions and complete animation files, this issue can be easily resolved. Especially in PVP-focused Metin2 private servers, every millisecond matters. With this fix, the client will run more smoothly and reliably.
