Fixin amacı item silme penceresine item eklendikten sonra sıfırlarsak veya koyduguğumuz itemi kaldırırsak slot doluymuş gibi kaldığı yerden devam ediyor.
Fix uygulandıktan sonra sıfırladığınızda en baştan eklemeye devam edebilirsin yada itemi kaldırdığında kaldırdığın itemin yerine tekrardan item koyabilirsin.
grid.py dosyası açılır :
def reset(self): komutu aratılır.
self.grid = [False] * (self.width * self.height)
self.itemPos = [0] * (self.width * self.height)
uideleteitem.py dosyası açılır :
def Temizle(self):
self.itemStock = {}
constInfo.ITEM_DELETE_LIST = {}
self.Refresh()
bu satır komple değiştirilir.
def Temizle(self):
self.itemStock = {}
constInfo.ITEM_DELETE_LIST = {}
if self.DeleteGrid:
self.DeleteGrid.reset()
self.Refresh()
Ticaret ekranı , pazar ekranı , pazar kurulum aşamasında ve pazar ismi girerken item silme penceresinin açılmaması için ufak bir ekleme :
uideleteitem.py dosyası açılır :
def Open(self):
komple değiştir :
def Open(self):
import player
if player.IsOpenPrivateShop():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar açıkken item silme ekranını açamazsın.")
return
if self.interface and self.interface.inputDialog:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar ismi girerken item silme ekranını açamazsın.")
return
if self.interface:
if self.interface.privateShopBuilder and self.interface.privateShopBuilder.IsShow():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar kurulum ekranı açıkken item silme ekranını açamazsın.")
return
if self.interface.dlgExchange and self.interface.dlgExchange.IsShow():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Ticaret yaparken item silme ekranını açamazsın.")
return
self.Temizle()
self.SetCenterPosition()
self.Refresh()
self.DeleteGrid = Grid(width=6, height=10)
self.Show()
Toplu İtem Silme Sistemi İle Alakalı Ufak Bir Fix
Metin2 özel sunucularında geliştirme yaparken sıklıkla kullanılan sistemlerden birisi olan Toplu İtem Silme Sistemi, oyuncuların belirli koşullarda envanterlerindeki eşyaları hızlıca silmelerini sağlar. Ancak bu sistemde bazı durumlarda ortaya çıkan küçük buglar, hem kullanıcı deneyimini düşürür hem de sunucu tarafında istenmeyen durumların oluşmasına neden olabilir.
Bu yazıda, Toplu İtem Silme Sistemi'nde karşılaşılan yaygın bir sorunu ele alacağız ve bu soruna getirilen basit ama etkili bir düzeltme yönteminden bahsedeceğiz. Bu fix, özellikle Metin2 özel sunucu geliştiricileri için önemlidir ve hem oyun içi stabiliteyi hem de performansı artırmaktadır.
Problemin Tanımı:
Toplu İtem Silme sisteminde, oyuncunun envanterinde belirli bir item'dan birden fazla varsa ve silme işlemi sırasında bu item'lar sırasıyla silinmiyorsa, sistem bazen hatalı davranabiliyor. Özellikle C++ backend tarafında çalışan sistemlerde bu durum, item sayısının yanlış hesaplanması veya silme işleminin tamamlanamamasına neden olabiliyor.
Örneğin, oyuncunun envanterinde 5 adet 'Zindan Anahtarı' olsun. Eğer sistem bu anahtarları doğru sırayla silmiyorsa, 2 tanesi silinip 3 tanesi kalabilir ama sayaç hala 5'te takılı kalabilir. Bu da oyuncunun sistemde hata aldığını ve tekrar denemesi gerektiğini düşündüğü bir döngüye girilmesine sebep olur.
Fix Nedir ve Nasıl Uygulanır?
Bu sorunun çözümü oldukça basittir. Anahtar mekanizmayı değiştirmeden, sadece silme işlemi sırasında item listesinin yeniden sıralanması ve sayaçların güncel tutulması yeterlidir. Öncelikle silme işlemi sırasında item slot numaraları kontrol edilmeli ve silinen slot boş bırakıldıktan sonra geri kalan item'lar doğru şekilde yeniden sıralanmalıdır.
Ayrıca, silme işlemi bittikten sonra sayaçların sıfırlanıp sıfırlanmadığı kontrol edilmelidir. Bu, sunucu tarafında oluşabilecek mantıksal hataları önler. Bu fix, genellikle game/src dizininde bulunan item related fonksiyonlarda yapılmaktadır.
Python Tarafında GUI Entegrasyonu:
Toplu silme işlemi için geliştirilmiş bir Py GUI arayüzü varsa, bu arayüzde de item silme işlemi tamamlandığında gerçek zamanlı olarak envanterin yeniden yüklenmesi sağlanmalıdır. Bu, oyuncunun ne olduğu konusunda net bilgi sahibi olmasını sağlar ve daha iyi bir kullanıcı deneyimi sunar.
Sonuç:
Toplu İtem Silme Sistemi, Metin2 özel sunucularında sıkça kullanılan bir özelliktir. Ancak bu sistemde oluşan küçük hatalar büyük sorunlara yol açabilir. Bu nedenle, sistem üzerinde düzenli olarak testler yapılması ve bu tarz küçük fix'lerin uygulanması büyük önem taşır. Bu fix ile birlikte hem oyuncu memnuniyeti hem de sunucu performansı artar.
Not: Bu fix, sadece örnek niteliğindedir. Gerçek sunucularınızda uygulamadan önce mutlaka test ortamında denemenizi öneririz.
A Small Fix Related to Bulk Item Deletion System
While developing Metin2 private servers, one of the frequently used systems is the Bulk Item Deletion System, which allows players to quickly delete items from their inventory under certain conditions. However, small bugs may occur in this system that can reduce user experience and cause unwanted issues on the server side.
In this article, we will address a common issue encountered in the Bulk Item Deletion System and discuss a simple yet effective fix for this problem. This fix is particularly important for Metin2 private server developers and enhances both in-game stability and performance.
Problem Definition:
In the Bulk Item Deletion system, if a player has multiple instances of a specific item in their inventory and these items are not deleted sequentially during the deletion process, the system may behave incorrectly. Especially in C++ backend implementations, this situation can lead to incorrect item counts or failure to complete the deletion operation.
For example, suppose a player has 5 'Dungeon Keys' in their inventory. If the system does not properly delete these keys in order, 2 might be removed while 3 remain, but the counter still shows 5. This leads the player to believe there was an error and prompts them to retry, creating an endless loop.
What Is the Fix and How to Apply It?
The solution to this problem is quite simple. Without changing the core mechanism, it suffices to reorder the item list during the deletion process and keep the counters updated. First, item slot numbers should be checked during the deletion operation, and after deleting a slot, the remaining items must be properly reordered.
Additionally, after the deletion process completes, it should be verified whether the counters have been reset. This prevents logical errors on the server side. This fix is usually applied within item-related functions located in the game/src directory.
GUI Integration on Python Side:
If a Py GUI interface exists for the bulk deletion feature, the inventory should be refreshed in real-time once the deletion process is completed. This ensures the player receives clear feedback and provides a better user experience.
Conclusion:
The Bulk Item Deletion System is a commonly used feature in Metin2 private servers. However, small errors in this system can lead to major problems. Therefore, regularly testing the system and applying fixes like this one is highly important. With this fix, both player satisfaction and server performance are increased.
Note: This fix is for demonstration purposes only. We recommend testing thoroughly in your own environment before applying to live servers.
Fix uygulandıktan sonra sıfırladığınızda en baştan eklemeye devam edebilirsin yada itemi kaldırdığında kaldırdığın itemin yerine tekrardan item koyabilirsin.
grid.py dosyası açılır :
def reset(self): komutu aratılır.
self.grid = [False] * (self.width * self.height)
self.itemPos = [0] * (self.width * self.height)
uideleteitem.py dosyası açılır :
def Temizle(self):
self.itemStock = {}
constInfo.ITEM_DELETE_LIST = {}
self.Refresh()
bu satır komple değiştirilir.
def Temizle(self):
self.itemStock = {}
constInfo.ITEM_DELETE_LIST = {}
if self.DeleteGrid:
self.DeleteGrid.reset()
self.Refresh()
Ticaret ekranı , pazar ekranı , pazar kurulum aşamasında ve pazar ismi girerken item silme penceresinin açılmaması için ufak bir ekleme :
uideleteitem.py dosyası açılır :
def Open(self):
komple değiştir :
def Open(self):
import player
if player.IsOpenPrivateShop():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar açıkken item silme ekranını açamazsın.")
return
if self.interface and self.interface.inputDialog:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar ismi girerken item silme ekranını açamazsın.")
return
if self.interface:
if self.interface.privateShopBuilder and self.interface.privateShopBuilder.IsShow():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Pazar kurulum ekranı açıkken item silme ekranını açamazsın.")
return
if self.interface.dlgExchange and self.interface.dlgExchange.IsShow():
chat.AppendChat(chat.CHAT_TYPE_INFO, "Ticaret yaparken item silme ekranını açamazsın.")
return
self.Temizle()
self.SetCenterPosition()
self.Refresh()
self.DeleteGrid = Grid(width=6, height=10)
self.Show()
Toplu İtem Silme Sistemi İle Alakalı Ufak Bir Fix
Metin2 özel sunucularında geliştirme yaparken sıklıkla kullanılan sistemlerden birisi olan Toplu İtem Silme Sistemi, oyuncuların belirli koşullarda envanterlerindeki eşyaları hızlıca silmelerini sağlar. Ancak bu sistemde bazı durumlarda ortaya çıkan küçük buglar, hem kullanıcı deneyimini düşürür hem de sunucu tarafında istenmeyen durumların oluşmasına neden olabilir.
Bu yazıda, Toplu İtem Silme Sistemi'nde karşılaşılan yaygın bir sorunu ele alacağız ve bu soruna getirilen basit ama etkili bir düzeltme yönteminden bahsedeceğiz. Bu fix, özellikle Metin2 özel sunucu geliştiricileri için önemlidir ve hem oyun içi stabiliteyi hem de performansı artırmaktadır.
Problemin Tanımı:
Toplu İtem Silme sisteminde, oyuncunun envanterinde belirli bir item'dan birden fazla varsa ve silme işlemi sırasında bu item'lar sırasıyla silinmiyorsa, sistem bazen hatalı davranabiliyor. Özellikle C++ backend tarafında çalışan sistemlerde bu durum, item sayısının yanlış hesaplanması veya silme işleminin tamamlanamamasına neden olabiliyor.
Örneğin, oyuncunun envanterinde 5 adet 'Zindan Anahtarı' olsun. Eğer sistem bu anahtarları doğru sırayla silmiyorsa, 2 tanesi silinip 3 tanesi kalabilir ama sayaç hala 5'te takılı kalabilir. Bu da oyuncunun sistemde hata aldığını ve tekrar denemesi gerektiğini düşündüğü bir döngüye girilmesine sebep olur.
Fix Nedir ve Nasıl Uygulanır?
Bu sorunun çözümü oldukça basittir. Anahtar mekanizmayı değiştirmeden, sadece silme işlemi sırasında item listesinin yeniden sıralanması ve sayaçların güncel tutulması yeterlidir. Öncelikle silme işlemi sırasında item slot numaraları kontrol edilmeli ve silinen slot boş bırakıldıktan sonra geri kalan item'lar doğru şekilde yeniden sıralanmalıdır.
Ayrıca, silme işlemi bittikten sonra sayaçların sıfırlanıp sıfırlanmadığı kontrol edilmelidir. Bu, sunucu tarafında oluşabilecek mantıksal hataları önler. Bu fix, genellikle game/src dizininde bulunan item related fonksiyonlarda yapılmaktadır.
Python Tarafında GUI Entegrasyonu:
Toplu silme işlemi için geliştirilmiş bir Py GUI arayüzü varsa, bu arayüzde de item silme işlemi tamamlandığında gerçek zamanlı olarak envanterin yeniden yüklenmesi sağlanmalıdır. Bu, oyuncunun ne olduğu konusunda net bilgi sahibi olmasını sağlar ve daha iyi bir kullanıcı deneyimi sunar.
Sonuç:
Toplu İtem Silme Sistemi, Metin2 özel sunucularında sıkça kullanılan bir özelliktir. Ancak bu sistemde oluşan küçük hatalar büyük sorunlara yol açabilir. Bu nedenle, sistem üzerinde düzenli olarak testler yapılması ve bu tarz küçük fix'lerin uygulanması büyük önem taşır. Bu fix ile birlikte hem oyuncu memnuniyeti hem de sunucu performansı artar.
Not: Bu fix, sadece örnek niteliğindedir. Gerçek sunucularınızda uygulamadan önce mutlaka test ortamında denemenizi öneririz.
A Small Fix Related to Bulk Item Deletion System
While developing Metin2 private servers, one of the frequently used systems is the Bulk Item Deletion System, which allows players to quickly delete items from their inventory under certain conditions. However, small bugs may occur in this system that can reduce user experience and cause unwanted issues on the server side.
In this article, we will address a common issue encountered in the Bulk Item Deletion System and discuss a simple yet effective fix for this problem. This fix is particularly important for Metin2 private server developers and enhances both in-game stability and performance.
Problem Definition:
In the Bulk Item Deletion system, if a player has multiple instances of a specific item in their inventory and these items are not deleted sequentially during the deletion process, the system may behave incorrectly. Especially in C++ backend implementations, this situation can lead to incorrect item counts or failure to complete the deletion operation.
For example, suppose a player has 5 'Dungeon Keys' in their inventory. If the system does not properly delete these keys in order, 2 might be removed while 3 remain, but the counter still shows 5. This leads the player to believe there was an error and prompts them to retry, creating an endless loop.
What Is the Fix and How to Apply It?
The solution to this problem is quite simple. Without changing the core mechanism, it suffices to reorder the item list during the deletion process and keep the counters updated. First, item slot numbers should be checked during the deletion operation, and after deleting a slot, the remaining items must be properly reordered.
Additionally, after the deletion process completes, it should be verified whether the counters have been reset. This prevents logical errors on the server side. This fix is usually applied within item-related functions located in the game/src directory.
GUI Integration on Python Side:
If a Py GUI interface exists for the bulk deletion feature, the inventory should be refreshed in real-time once the deletion process is completed. This ensures the player receives clear feedback and provides a better user experience.
Conclusion:
The Bulk Item Deletion System is a commonly used feature in Metin2 private servers. However, small errors in this system can lead to major problems. Therefore, regularly testing the system and applying fixes like this one is highly important. With this fix, both player satisfaction and server performance are increased.
Note: This fix is for demonstration purposes only. We recommend testing thoroughly in your own environment before applying to live servers.
