Son zamanlarda çok fazla dupe yapıp serverleri zor durumda bırakanlar var.
Ikarus Offline Shop - Dupe Bug Fix
Metin2 özel sunucularında popüler olan Ikarus Offline Shop sistemi, oyuncuların sunucu kapalıyken bile mağaza işlemleri yapabilmesini sağlar. Ancak bu sistemde zaman zaman güvenlik açıkları doğabiliyor. Bu yazıda, Ikarus Offline Shop sisteminde ortaya çıkan 'Dupe Bug' adı verilen eşya çoğaltma hatasını nasıl düzelteceğimizi detaylıca inceleyeceğiz.
Ikarus Offline Shop Nedir?
Ikarus Offline Shop, Metin2 özel sunucularında oyuncuların sunucu açıkken veya kapalıyken eşya alıp satabileceği gelişmiş bir mağaza sistemidir. Oyuncular eşyalarını koyup satış yapabilir, başka oyuncular da satın alabilir. Bu sayede sunucu kapalıyken dahi ekonomik aktiviteler devam eder. Ancak bu sistemde bazı güvenlik açıkları doğduğunda, özellikle 'dupe' yani eşya çoğaltma sorunları yaşanabilir.
Dupe Bug Nedir?
'Dupe' terimi, oyunlarda bir eşyanın birden fazla kez çoğaltılması anlamına gelir. Bu hata genellikle sunucu tarafında yapılan işlemlerde eksik kontrollerden kaynaklanır. Ikarus Offline Shop sisteminde bu durum, bir oyuncunun aynı eşyayı birden fazla satabilmesine veya iade işlemi sırasında eksik veri kontrolü nedeniyle çoğaltmasına sebep olabilir.
Dupe Bug Fix İçin Gerekli Adımlar
Öncelikle Ikarus Offline Shop'un Python tarafındaki dosyalarda, eşya işlemleri yapılırken veritabanında gerekli kontrollerin eksik olup olmadığını kontrol etmeliyiz. Özellikle item_check fonksiyonları ve transaction_log kayıt süreçlerinde eksiklikler varsa buradan hata çıkabilir. Bu fonksiyonlara ek olarak, eşya silme ve ekleme işlemlerinde mutex lock gibi senkronizasyon yöntemlerinin aktif olduğundan emin olmalıyız.
C++ Tarafında Kontrol Noktaları
Metin2 server src tarafında, Ikarus Offline Shop ile entegre çalışan sistemlerde, eşya transferi sırasında item ID'lerin kontrol edilip edilmediği, aynı ID'nin tekrar kullanılıp kullanılmadığı gibi konular incelenmelidir. Ayrıca auth ve game sunucuları arasında veri alışverişinde, transactionID benzeri bir numara ile işlem kontrolü yapılmalıdır. Bu sayede eşya iadesi sırasında hatalı veri girişi engellenir.
Veritabanı Seviyesinde Güvenlik
DB core tarafında, eşya işlemleri için özel trigger'lar veya stored procedure'ler yazarak, bir eşyanın birden fazla kez kullanılmamasını sağlayabiliriz. Örneğin, bir eşya satıldığında otomatik olarak 'used' ya da 'locked' status'u 1 yapılır. Bu sayede tekrar işlem yapılmaz. Aynı zamanda transaction log tutulmalı ve her işlem loglanmalıdır. Bu loglar, ileride hata analizi için çok önemlidir.
Günlük Bakım ve Monitörleme
Sistem sürekli olarak logları takip etmeli ve anormal işlem sayıları fark edildiğinde manuel müdahale yapılmalıdır. Bu gibi hatalar, sunucunun ekonomisini ciddi şekilde bozabileceğinden, düzenli olarak log analizleri yapılmalı ve gerekirse otomatik uyarı sistemleri kurulmalıdır.
Sonuç
Ikarus Offline Shop sisteminde dupe bug'ı düzeltmek için hem Python hem de C++ tarafında kontrollerin artırılması, veritabanında güvenli işlem süreçlerinin kurulması ve logların düzenli takip edilmesi gereklidir. Bu sayede sunucu güvenliği sağlanır ve oyun içi ekonomi dengesi korunur.
Ikarus Offline Shop - Dupe Bug Fix
The popular Ikarus Offline Shop system in Metin2 private servers allows players to perform shop transactions even when the server is offline. However, security vulnerabilities can occasionally arise in this system. In this article, we will examine in detail how to fix the 'Dupe Bug', an item duplication error that occurs in the Ikarus Offline Shop system.
What is Ikarus Offline Shop?
Ikarus Offline Shop is an advanced shop system in Metin2 private servers that allows players to buy and sell items while the server is online or offline. Players can place items for sale, and other players can purchase them. This ensures economic activity continues even when the server is down. However, certain security flaws in this system can lead to issues like 'dupe'—the duplication of items.
What is the Dupe Bug?
The term 'dupe' refers to the duplication of an item multiple times within games. Such errors typically arise from missing checks during server-side operations. In the Ikarus Offline Shop system, this issue may result in a player selling the same item more than once or duplicating it due to insufficient data validation during return processes.
Steps for Dupe Bug Fix
Firstly, we need to check if the necessary database validations are missing in the Python-side files of the Ikarus Offline Shop where item transactions occur. Especially, functions like item_check and transaction_log processes should be reviewed. Additionally, synchronization methods like mutex locks should be active during item deletion and addition operations.
Checkpoints on the C++ Side
In the Metin2 server source code, especially in systems integrated with Ikarus Offline Shop, it should be checked whether item IDs are validated during item transfers and whether the same ID is reused. Furthermore, a transaction ID or similar number should be used to control the process during data exchange between the auth and game servers. This prevents faulty data entry during item returns.
Database-Level Security
On the DB core side, triggers or stored procedures can be written for item operations to ensure that an item is not used more than once. For example, when an item is sold, its status can be automatically set to 'used' or 'locked'. Transaction logs should also be kept and each operation logged. These logs are crucial for future error analysis.
Daily Maintenance and Monitoring
The system must continuously monitor logs and manually intervene when abnormal transaction numbers are detected. Such errors can seriously disrupt the server economy; thus, regular log analyses should be performed and automatic alert systems implemented if needed.
Conclusion
To fix the dupe bug in the Ikarus Offline Shop system, it's essential to enhance validations on both the Python and C++ sides, establish secure transaction processes in the database, and regularly monitor logs. This ensures server security and maintains in-game economic balance.
Kod:
// ARAT bool CShopManager::RecvShopSafeboxLoadDBPacket(DWORD dwOwnerID, const TValutesInfo& valute, const std::vector<DWORD>& ids, const std::vector<TItemInfoEx>& items) { if(GetShopSafeboxByOwnerID(dwOwnerID)) return false; // DEĞİŞ bool CShopManager::RecvShopSafeboxLoadDBPacket(DWORD dwOwnerID, const TValutesInfo& valute, const std::vector<DWORD>& ids, const std::vector<TItemInfoEx>& items) { /*if(GetShopSafeboxByOwnerID(dwOwnerID)) return false;*/
Ikarus Offline Shop - Dupe Bug Fix
Metin2 özel sunucularında popüler olan Ikarus Offline Shop sistemi, oyuncuların sunucu kapalıyken bile mağaza işlemleri yapabilmesini sağlar. Ancak bu sistemde zaman zaman güvenlik açıkları doğabiliyor. Bu yazıda, Ikarus Offline Shop sisteminde ortaya çıkan 'Dupe Bug' adı verilen eşya çoğaltma hatasını nasıl düzelteceğimizi detaylıca inceleyeceğiz.
Ikarus Offline Shop Nedir?
Ikarus Offline Shop, Metin2 özel sunucularında oyuncuların sunucu açıkken veya kapalıyken eşya alıp satabileceği gelişmiş bir mağaza sistemidir. Oyuncular eşyalarını koyup satış yapabilir, başka oyuncular da satın alabilir. Bu sayede sunucu kapalıyken dahi ekonomik aktiviteler devam eder. Ancak bu sistemde bazı güvenlik açıkları doğduğunda, özellikle 'dupe' yani eşya çoğaltma sorunları yaşanabilir.
Dupe Bug Nedir?
'Dupe' terimi, oyunlarda bir eşyanın birden fazla kez çoğaltılması anlamına gelir. Bu hata genellikle sunucu tarafında yapılan işlemlerde eksik kontrollerden kaynaklanır. Ikarus Offline Shop sisteminde bu durum, bir oyuncunun aynı eşyayı birden fazla satabilmesine veya iade işlemi sırasında eksik veri kontrolü nedeniyle çoğaltmasına sebep olabilir.
Dupe Bug Fix İçin Gerekli Adımlar
Öncelikle Ikarus Offline Shop'un Python tarafındaki dosyalarda, eşya işlemleri yapılırken veritabanında gerekli kontrollerin eksik olup olmadığını kontrol etmeliyiz. Özellikle item_check fonksiyonları ve transaction_log kayıt süreçlerinde eksiklikler varsa buradan hata çıkabilir. Bu fonksiyonlara ek olarak, eşya silme ve ekleme işlemlerinde mutex lock gibi senkronizasyon yöntemlerinin aktif olduğundan emin olmalıyız.
C++ Tarafında Kontrol Noktaları
Metin2 server src tarafında, Ikarus Offline Shop ile entegre çalışan sistemlerde, eşya transferi sırasında item ID'lerin kontrol edilip edilmediği, aynı ID'nin tekrar kullanılıp kullanılmadığı gibi konular incelenmelidir. Ayrıca auth ve game sunucuları arasında veri alışverişinde, transactionID benzeri bir numara ile işlem kontrolü yapılmalıdır. Bu sayede eşya iadesi sırasında hatalı veri girişi engellenir.
Veritabanı Seviyesinde Güvenlik
DB core tarafında, eşya işlemleri için özel trigger'lar veya stored procedure'ler yazarak, bir eşyanın birden fazla kez kullanılmamasını sağlayabiliriz. Örneğin, bir eşya satıldığında otomatik olarak 'used' ya da 'locked' status'u 1 yapılır. Bu sayede tekrar işlem yapılmaz. Aynı zamanda transaction log tutulmalı ve her işlem loglanmalıdır. Bu loglar, ileride hata analizi için çok önemlidir.
Günlük Bakım ve Monitörleme
Sistem sürekli olarak logları takip etmeli ve anormal işlem sayıları fark edildiğinde manuel müdahale yapılmalıdır. Bu gibi hatalar, sunucunun ekonomisini ciddi şekilde bozabileceğinden, düzenli olarak log analizleri yapılmalı ve gerekirse otomatik uyarı sistemleri kurulmalıdır.
Sonuç
Ikarus Offline Shop sisteminde dupe bug'ı düzeltmek için hem Python hem de C++ tarafında kontrollerin artırılması, veritabanında güvenli işlem süreçlerinin kurulması ve logların düzenli takip edilmesi gereklidir. Bu sayede sunucu güvenliği sağlanır ve oyun içi ekonomi dengesi korunur.
Ikarus Offline Shop - Dupe Bug Fix
The popular Ikarus Offline Shop system in Metin2 private servers allows players to perform shop transactions even when the server is offline. However, security vulnerabilities can occasionally arise in this system. In this article, we will examine in detail how to fix the 'Dupe Bug', an item duplication error that occurs in the Ikarus Offline Shop system.
What is Ikarus Offline Shop?
Ikarus Offline Shop is an advanced shop system in Metin2 private servers that allows players to buy and sell items while the server is online or offline. Players can place items for sale, and other players can purchase them. This ensures economic activity continues even when the server is down. However, certain security flaws in this system can lead to issues like 'dupe'—the duplication of items.
What is the Dupe Bug?
The term 'dupe' refers to the duplication of an item multiple times within games. Such errors typically arise from missing checks during server-side operations. In the Ikarus Offline Shop system, this issue may result in a player selling the same item more than once or duplicating it due to insufficient data validation during return processes.
Steps for Dupe Bug Fix
Firstly, we need to check if the necessary database validations are missing in the Python-side files of the Ikarus Offline Shop where item transactions occur. Especially, functions like item_check and transaction_log processes should be reviewed. Additionally, synchronization methods like mutex locks should be active during item deletion and addition operations.
Checkpoints on the C++ Side
In the Metin2 server source code, especially in systems integrated with Ikarus Offline Shop, it should be checked whether item IDs are validated during item transfers and whether the same ID is reused. Furthermore, a transaction ID or similar number should be used to control the process during data exchange between the auth and game servers. This prevents faulty data entry during item returns.
Database-Level Security
On the DB core side, triggers or stored procedures can be written for item operations to ensure that an item is not used more than once. For example, when an item is sold, its status can be automatically set to 'used' or 'locked'. Transaction logs should also be kept and each operation logged. These logs are crucial for future error analysis.
Daily Maintenance and Monitoring
The system must continuously monitor logs and manually intervene when abnormal transaction numbers are detected. Such errors can seriously disrupt the server economy; thus, regular log analyses should be performed and automatic alert systems implemented if needed.
Conclusion
To fix the dupe bug in the Ikarus Offline Shop system, it's essential to enhance validations on both the Python and C++ sides, establish secure transaction processes in the database, and regularly monitor logs. This ensures server security and maintains in-game economic balance.
