Pet açıkken Npc ve Pazar açınca petin kaybolmasını düzeltir.
NewPetSystem.cpp aç
Arat:
Kod:
if (m_pkOwner->IsDead() || (IsSummoned() && m_pkChar->IsDead()) || (IsSummoned() && (m_pkOwner->GetExchange() || m_pkOwner->GetMyShop() || m_pkOwner->GetShopOwner() || m_pkOwner->IsOpenSafebox() || m_pkOwner->IsCubeOpen() || m_dwduration <= 0)) || NULL == ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID()) || ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID())->GetOwner() != this->GetOwner() ) { this->Unsummon(); return true; }
değiştir:
Kod:
if (m_pkOwner->IsDead() || (IsSummoned() && m_pkChar->IsDead()) || (IsSummoned() && (m_pkOwner->GetExchange() || m_pkOwner->IsCubeOpen() || m_dwduration <= 0)) || NULL == ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID()) || ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID())->GetOwner() != this->GetOwner() ) { this->Unsummon(); return true; }
KİMİSİ BUG DİYOR KİMİSİ DEĞİL ÖZELDEN O ONA SORUYOR O ONA BUGDUR YADA DEĞİLDİR YAPILIŞI BÖYLEDİR ÇÖZÜMÜNÜ VERİYORUM KULLANAN KULLANIR
C++ ile Metin2 Pet Sistemi Geliştirme: Resmi Pet Sistemi Pazar Bugu Çözümü
Metin2 özel sunucularında pet sistem geliştirme, oyuncuların daha etkileşimli ve keyifli bir deneyim yaşamasını sağlar. Ancak pazar bug gibi güvenlik açıkları, bu tür sistemlerin doğru şekilde entegre edilmemesi sonucu oluşabilir. Bu yazıda, C++ tabanlı bir Pet Sistemi geliştirirken karşılaşılan yaygın sorunları ve çözüm önerilerini ele alacağız.
Pazar Bug Nedir?
Pazar bug, Metin2 oyununda oyuncuların pazarda eşya satış yaparken exploit kullanarak eşya çoğaltma veya hileli işlem yapmalarına olanak tanıyan bir güvenlik açığıdır. Bu bug genellikle client-server iletişimindeki eksik kontrollerden kaynaklanır. Pet sistemlerinde de benzer kontroller yapılmadığında, oyuncular pet üzerinden pazar işlemleri yaparak bu açığı kullanabilirler.
Pet Sistemi Nasıl Çalışır?[/BR]
Pet sistemi, oyuncuya yardımcı olan bir canlı ya da eşya[/BR] taşıyıcıdır. Oyuncu, pet aracılığıyla item[/BR] kullanabilir, seviye[/BR] kazandırabilir ve petin özelliklerini[/BR] geliştirebilir. Ancak pet sisteminin güvenli çalışması için server-side[/BR] kontrolleri mutlaka yapılmalıdır.
C++ ile Pet Sistem Güvenliği
C++ dilinde geliştirilen Metin2 sunucu kaynak kodları üzerinde pet sistemi geliştirilirken, özellikle input validation ve state management konularına dikkat edilmelidir. Örneğin, pet üzerinden bir item kullanıldığında sunucu, bu işlemin geçerli olup olmadığını kontrol etmelidir. Eğer bu kontrol yapılmazsa, saldırgan pet üzerinden pazar işlemleri başlatıp exploit yapabilir.
Pet Sisteminde Pazar İşlemi Kontrolü
Her pet nesnesi için ayrı bir inventory yönetimi yapılmalı ve petin pazar açma hakkı olup olmadığı server-side olarak kontrol edilmelidir. Sunucu tarafında şu kontroller yapılmalıdır:
- Pet sahibi aktif bir oyuncu mu?
- Pet ile pazar açılabilir mi?
- Pet üzerinden yapılan işlem geçerli mi?
- Eşya gerçekten pette mi?
Exploit Önleme Kod Örneği (C++)
Kod:
if (pet && pet->IsOpenShop()) { return false; } // Pet pazar açamaz
Bu gibi kontroller ile pet üzerinden pazar açılması engellenir ve pazar bug riski minimize edilir.
Python ile GUI Entegrasyonu
Pet sistemleri için Python tabanlı GUI arayüzleri (PyUI) ile kullanıcı dostu panel geliştirilebilir. Bu panellerde pet özellikleri, seviye bilgisi, envanter ve yetenekler görüntülenebilir. PyRoot ve UIScript ile client-side arayüz oluşturulabilir. Ancak bu arayüzlerin server-side ile güvenli haberleşmesi sağlanmalıdır.
Sunucu Kaynak Kodlarında Değişiklik
Metin2 server src üzerinde pet sistemine özel modül geliştirilirken, core yapılar dikkate alınmalıdır. Game server programming sürecinde DB ve Auth katmanları ile uyumlu çalışılmalı, pet verileri güvenli şekilde saklanmalıdır.
Martysama ve Metin2 Geliştirme
Metin2 özel sunucu geliştirme dünyasında Martysama gibi isimler, source edit ve system development konusunda örnek teşkil eder. Pet sistemleri gibi gelişmiş sistemler, bu tür kaynaklardan esinlenerek güvenli ve stabil hale getirilebilir.
Sonuç
Metin2 özel sunucularda pet sistemi geliştirirken, güvenlik her zaman öncelikli olmalıdır. C++ tabanlı sunucu kodlaması ile pazar bug gibi açıkların önüne geçilebilir. Bu sayede oyuncuların oyun içi deneyimi artırılırken, sunucu güvenliği de korunmuş olur.
C++ Based Metin2 Pet System Development: Official Pet System Market Bug Solution
Developing a pet system in Metin2 private servers enhances player engagement and interaction. However, security vulnerabilities such as market bugs can occur if these systems are not properly integrated. In this article, we will discuss common issues encountered when developing a C++ based Pet System and provide solutions.
What is Market Bug?
Market bug is a vulnerability in the Metin2 game that allows players to exploit item duplication or fraudulent transactions during marketplace trades. This bug typically arises from missing checks in the client-server communication. If similar checks are not implemented in pet systems, players might exploit pet-related marketplace actions.
How Does Pet System Work?
The pet system serves as an assistant or item carrier for the player. Players can use items through pets, level them up, and enhance their abilities. For the pet system to function securely, server-side validations must be implemented.
C++ Pet System Security
When developing pet systems in Metin2 server source code with C++, special attention must be paid to input validation and state management. For instance, when an item is used via pet, the server should verify the legitimacy of the action. Without such checks, attackers could exploit marketplace interactions through pets.
Market Transaction Checks in Pet Systems
Each pet entity should have its own inventory management, and whether a pet can open a market should be checked server-side. The following checks should be performed on the server side:
- Is the pet owner an active player?
- Can the pet open a market?
- Is the transaction via pet valid?
- Is the item actually in the pet's inventory?
Exploit Prevention Code Example (C++)
Kod:
if (pet && pet->IsOpenShop()) { return false; } // Pet cannot open shop
With such checks, marketplace access through pets is blocked, minimizing the risk of market bug.
Python GUI Integration
User-friendly panels for pet systems can be developed using Python based GUI interfaces like PyUI. These panels can display pet stats, levels, inventories, and skills. Interfaces can be built using PyRoot and UIScript, but secure communication between client and server must be ensured.
Server Source Modifications
When developing custom modules for pet systems in Metin2 server src, core structures must be considered. During game server programming, compatibility with DB and Auth layers should be maintained, and pet data must be stored securely.
Martysama and Metin2 Development
In the world of Metin2 private server development, names like Martysama serve as examples in source editing and system development. Advanced systems like pet systems can be made secure and stable by drawing inspiration from such resources.
Conclusion
When developing a pet system for Metin2 private servers, security must always be prioritized. Using C++ based server coding, vulnerabilities like market bug can be prevented. This ensures both enhanced gameplay experience and server security.
