KEN OFFLİNE SHOP İTEM KOPYALAMA FİXSİ KULLANAN ARKADAŞLAR İÇİN ÖNEMLİ FİX
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Metin2 Offline Shop Item Kopyalama Fixsi
Metin2 özel sunucularında kullanıcılara avantaj sağlayacak sistemlerden birisi olan Offline Shop sistemi, oyuncuların oyun kapalıyken bile eşya satıp alabilmesini sağlar. Ancak bu sistemde bazı güvenlik açıkları oluşabiliyor. Bunlardan birisi de Item Kopyalama sorunudur. Bu yazıda, Offline Shop sisteminde meydana gelen item kopyalama hatasını nasıl düzelteceğinizi adım adım anlatacağız.
Offline Shop Sistemi Nedir?
Offline Shop, oyuncunun oyun kapalıyken dahi market sistemi üzerinden eşya satabilmesini sağlayan gelişmiş bir özelliktir. Bu sistem sayesinde oyuncular, aktif olamadıkları zamanlarda bile ekonomik olarak fayda sağlayabilirler. Ancak bu sistemin doğru kurulmaması veya güvenlik açıklarının kapatılmaması, sunucuda büyük problemlere yol açabilir. Özellikle item kopyalama gibi hatalar, sunucu ekonomisini ciddi anlamda etkileyebilir.
Item Kopyalama Sorunu Nedir?
Item kopyalama, bir oyuncunun aynı eşyayı birden fazla kez satabilmesiyle ortaya çıkar. Bu durum genellikle sunucu tarafında yapılan işlemlerde eksik kontrollerden kaynaklanır. Örneğin, bir oyuncu eşyasını sattıktan sonra eşyanın envanterden silinmemesi gibi durumlar, bu hatanın oluşmasına neden olabilir.
Fix Uygulama Adımları
1. OfflineShopManager.cpp dosyasını açın.
2. BuyItem fonksiyonunu bulun.
3. Eşya satın alındığında, eski sahibinden silinip silinmediğini kontrol edin.
4. Safebox veya Inventory kontrolleri ekleyin.
5. Satın alma işlemi tamamlandıktan sonra, satıcı karakterin envanterindeki eşyanın silinip silinmediğini tekrar kontrol edin.
Python Tarafında Kontroller
Root klasöründe yer alan offline_shop.py dosyasında da benzer kontroller yapılmalıdır. Özellikle buy_item fonksiyonu üzerinden gelen verilerin doğruluğu kontrol edilmelidir. Eşya ID'si, miktarı, sahibi gibi bilgilerin tutarlı olup olmadığı kontrol edilmeli. Ayrıca, packet üzerinden gelen verilerin manipüle edilip edilmediği de göz önünde bulundurulmalıdır.
Veritabanı Seviyesinde Güvenlik
MySQL veritabanınızda player.item tablosunda yapılan işlemler için transaction kontrolleri uygulanmalıdır. Bir eşyanın satışı sırasında, hem satıcının envanterinden silinmesi hem de alıcının envanterine eklenmesi atomik olarak yapılmalıdır. Aksi takdirde, işlem yarıda kalırsa veri tutarsızlıkları oluşabilir.
Sonuç
Offline Shop sisteminde item kopyalama hatasını düzeltmek, sunucu güvenliği ve ekonomisi açısından kritik öneme sahiptir. Hem C++ hem de Python seviyesinde kontroller yaparak, bu tür güvenlik açıklarını minimuma indirebilirsiniz. Bu fix, sunucunuzda daha adil ve stabil bir ekonomi oluşturacaktır.
Metin2 Offline Shop Item Duplication Fix
In Metin2 private servers, the Offline Shop system allows players to sell and buy items even while offline. However, this system can have security flaws. One of them is the item duplication bug. In this article, we will explain step by step how to fix the item duplication issue that occurs in the Offline Shop system.
What Is The Offline Shop System?
The Offline Shop allows players to trade items through a marketplace even when they are not online. This feature helps players gain economic benefits during inactive periods. However, incorrect implementation or lack of security checks can cause major problems in the server. Especially item duplication bugs can severely impact the server economy.
What Is The Item Duplication Issue?
Item duplication occurs when a player sells the same item more than once. This usually stems from missing validation steps on the server side. For example, if an item is not properly removed from the seller's inventory after being sold, it can lead to this bug.
Steps To Apply The Fix
1. Open the OfflineShopManager.cpp file.
2. Locate the BuyItem function.
3. Ensure the item is deleted from the original owner's inventory upon purchase.
4. Add checks for Safebox or Inventory.
5. After the purchase is completed, verify that the item has been removed from the seller's inventory again.
Checks On The Python Side
In the root folder, similar checks must be done in the offline_shop.py file. Especially, the validity of the data coming from the buy_item function should be checked. Verify item IDs, quantities, and ownership. Also, consider whether the packet data might be manipulated.
Database-Level Security
In your MySQL database, use transactions for operations in the player.item table. During an item sale, both the removal from the seller's inventory and addition to the buyer's inventory must occur atomically. Otherwise, incomplete transactions can lead to data inconsistencies.
Conclusion
Fixing the item duplication bug in the Offline Shop system is crucial for server security and economy. By implementing checks at both C++ and Python levels, you can minimize such vulnerabilities. This fix will help create a fairer and more stable economy on your server.
