[KEN]Offline Shop İtem kopyalama fix

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 75

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
...​

Metin2 Offline Shop Item Kopyalama Sorunu ve Çözümü

Metin2 özel sunucularında offline shop sistemi sunucu sahipleri tarafından sıklıkla tercih edilen popüler bir özelliktir. Bu sistem sayesinde oyuncuların aktif olmadığı zamanlarda bile eşyalarını alıp satması sağlanabilir. Ancak bu sistemin doğru çalışabilmesi için bazı güvenlik önlemleri alınmalıdır. Özellikle item kopyalama gibi sorunlar doğrudan ekonomik dengeleri etkileyebilecek ciddi problemlere yol açabilir.

Offline Shop Item Kopyalama Fix Nedir?

Bu hata genellikle C++ kaynak kod tarafında item transferi yapılırken doğrudan kontrol eksikliğinden kaynaklanır. Örneğin bir oyuncu offline shop'a bir item koyar, başka bir oyuncu da aynı itemi satın alır ama sistemde item silinme işlemi yapılmazsa, orijinal item sahibine iade edilerek çift item oluşumu sağlanabilir. Bu durum hem sunucu ekonomisini tehdit eder hem de oyun içi deneyimi bozar.

Fix Uygulama Adımları

1. Game Sunucusu Kodları (src):
Game sunucusu üzerinde item transferi yapan fonksiyonları kontrol etmek gerekir. Özellikle item_remove veya benzeri item silme fonksiyonlarının çalıştığı yerler incelenmelidir. Burada eksik bir kontrol varsa, itemin gerçekten satın alan kişiye geçip geçmediği ve eski sahibinden silinip silinmediği kontrol edilmelidir.

2. Offline Shop Sistemi:
Sunucu tarafında itemin offline shop'a konulduğundan emin olmak için inventory ve offline_shop tabloları arasındaki senkronizasyon sağlanmalıdır. Item satın alındığında, sistem önce itemin varlığını kontrol etmeli, ardından satın alan kişiye vermeden önce eski sahibinden silmeli ve son olarak itemi satın alan kişiye geçirmelidir.

3. DB (Veritabanı) Kontrolü:
Database seviyesinde item_id, owner_char_id gibi verilerin tutarlılığı sağlanmalıdır. Item silindiğinde bu verilerin de güncellenmesi sağlanmalıdır. Aksi takdirde, item kopyalama gibi güvenlik açıkları ortaya çıkabilir.

Python Script ile Güvenlik Katmanı Oluşturmak

Python tarafında py root içinde bir kontrol mekanizması kurulabilir. Örneğin, bir item satın alındığında, satın alan kişiye geçmeden önce itemin gerçekten offline shop'ta bulunduğu ve sahibinin artık başka bir kişi olmadığı doğrulanabilir. Bu kontrollerin her item transferi sırasında yapılması büyük önem taşır.

Test ve Doğrulama

Fix uygulandıktan sonra mutlaka test aşaması yapılmalıdır. Gerçekçi senaryolar üzerinden testler yapılmalı ve item kopyalama ihtimali tamamen ortadan kaldırılmalıdır. Bu testler sırasında hileli işlemler simüle edilerek sistemde hala bir açık var mı diye kontrol edilmelidir.

Sonuç

Metin2 özel sunucularında offline shop item kopyalama gibi sorunlar doğrudan sunucu güvenliğini ve oyun içi dengeyi etkiler. Bu nedenle, hem game server hem de database seviyesinde gerekli kontrollerin sağlanması büyük önem taşır. Martysama ve diğer Metin2 geliştirici toplulukları sayesinde bu tür fixler hakkında bilgi almak ve destek almak mümkündür. Güvenli, dengeli ve kaliteli sistemler için düzenli kod incelemesi yapılmalı ve güvenlik açıkları zamanında tespit edilmelidir.


Metin2 Offline Shop Item Duplication Fix

The offline shop system in Metin2 private servers is a popular feature frequently preferred by server owners. This system allows players to buy and sell items even when they are not online. However, certain security measures must be taken for this system to function properly. Issues such as item duplication can lead to serious problems that directly affect economic balances.

What is the Offline Shop Item Duplication Fix?

This error typically occurs due to missing checks during item transfers on the C++ source code side. For example, if a player places an item in the offline shop and another player purchases the same item, but the system does not remove the item from the original owner, the original item may be returned to its owner, causing double items. This situation threatens both the server economy and the in-game experience.

Steps to Apply the Fix

1. Game Server Code (src):
Functions responsible for item transfers on the game server must be checked. Specifically, areas where item_remove or similar functions operate should be reviewed. If any checks are missing, it must be ensured that the item has truly been transferred to the buyer and removed from the previous owner.

2. Offline Shop System:
Synchronization between inventory and offline_shop tables must be maintained. When an item is purchased, the system should first verify its existence in the shop, then remove it from the previous owner before transferring it to the new buyer.

3. Database Checks:
Consistency of data like item_id and owner_char_id must be maintained at the database level. When an item is deleted, these records must also be updated; otherwise, vulnerabilities like item duplication may arise.

Creating Security Layer with Python Scripts

A control mechanism can be established within py root using Python scripts. For instance, before an item is transferred to a new buyer, the system can verify whether the item truly exists in the offline shop and confirm that it no longer belongs to another character. Performing these checks during every transaction is crucial.

Testing and Validation

After applying the fix, thorough testing is essential. Realistic scenarios should be simulated to ensure that item duplication is completely eliminated. During these tests, fraudulent operations should be simulated to check if any vulnerabilities remain in the system.

Conclusion

Item duplication issues in Metin2 private server offline shops directly impact server security and in-game balance. Therefore, necessary checks must be made at both game server and database levels. Thanks to developer communities like Martysama, information and support regarding such fixes are available. Regular code reviews and timely detection of vulnerabilities are essential for maintaining secure, balanced, and high-quality systems.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt