[C++] Exp, İtem, Sandık Karşılığı Alışveriş

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sizlere aynı zamanda benim de işime yarayan farklı bir metin2 c++ forumunda gördüğüm item, eşya, exp ile alışveriş yapmanıza olanak veren sistemi paylaşmak istedim. Araştırmalarım doğrultusunda forumda paylaşılmamış eğer gözümden kaçırdıysam konu kapatılabilir.

Alıntıdır.

metin2-turkmmo.jpg

metin2-turkmmo-2.jpg


Ekle

Kod:
if (pItemGroup->GetValue(i, "price_type", shopItems[i].price_type) && pItemGroup->GetValue(i, "price_vnum", shopItems[i].price_vnum) && shopItems[i].price_type == 3) {             if (shopItems[i].price_type > 4 || shopItems[i].price_type < 1) {                 sys_err("row(%d) of group items of group %s price_type is wrong!", i, pNode->GetNodeName().c_str());                 return false;             }             TItemTable * pProto = ITEM_MANAGER::instance().GetTable(shopItems[i].price_vnum);             if (!pProto) {                 sys_err("NOT GET ITEM PROTO %d", shopItems[i].price_vnum);                 return false;             }         }

Belleği boşaltmak için bunu ekleyebilirsiniz:

Kod:
memset(&getval, 0, sizeof(getval));








Metin2'de C++ ile Exp, Item ve Sandık Sistemiyle Alışveriş Sistemi Geliştirme


Metin2 özel sunucularında güçlü ve özelleştirilebilir sistemler geliştirmek, oyuncu deneyimini ciddi anlamda artırır. Bu bağlamda, Exp, Item ve Sandık gibi ödüllerin alındığı, oyuncuların bu ödülleri kendi aralarında takas edebileceği ya da belirli bir menü üzerinden satın alabileceği bir alışveriş sistemi oldukça değerlidir. Bu yazıda, C++ dilini kullanarak Metin2 özel sunucularınızda bu sistemi nasıl entegre edebileceğinizi ve geliştirme süreçlerini adım adım ele alacağız.

C++ ile Sistem Geliştirme
Metin2 özel sunucularında game core ve db core gibi yapılar genellikle C++ ile geliştirilir. Sistem seviyesinde müdahale gerektiren bu tür geliştirmelerde C++ kodları doğrudan sunucu üzerinde çalışır ve performans açısından büyük avantaj sağlar. Exp, item ve sandık gibi ödüllerin otomatik olarak oyuncuya verilmesi, bu ödüllerin bir puan sistemine dönüştürülerek alım-satım işlemlerine açılması gibi işlemler için C++ kullanmak gerekir.

Exp Sistemi Entegrasyonu
Exp (deneyim) puanı, oyuncuların seviye atlaması için temel unsurudur. Oyunculara belirli görevlerden sonra exp ödülü vermek yerine, bu exp miktarlarını bir puan sistemine dönüştürüp alım-satım yapabilecekleri bir menüye aktarmak, oyun içi ekonomiyi daha dengeli hale getirir. Bu işlem için C++ ile bir fonksiyon yazarak, belirli bir exp miktarı toplandığında, bu miktarın bir puan sistemine aktarılmasını sağlayabilirsiniz. Örneğin: 1000 exp = 1 puan gibi bir oran belirleyebilirsiniz.

Item ve Sandık Sistemleri
Item ve sandık sistemleri, oyuncuların doğrudan kullanabileceği ya da koleksiyon amaçlı saklayabileceği ögelerdir. Sandıklar genellikle rastgele ödüller içerir ve item sistemleri ise doğrudan bir eşya verme işlemidir. Bu ögeleri C++ ile kodlayarak, oyunculara belirli görevlerden sonra verilecek ödülleri özelleştirebilirsiniz. Ayrıca bu ödüllerin alım-satım menüsünde yer alması için item ve sandık değerlerini bir puan karşılığına dönüştürebilirsiniz. Örneğin 50 puan karşılığında bir sandık veya belirli bir item alımı yapılabilir.

Alışveriş Menüsü Geliştirme
Oyuncular için alışveriş menüsü, uiscript ve py gui gibi sistemlerle Python dilinde geliştirilir. Ancak bu menüde sunulan ürünlerin puan karşılıklarını ve verilen ödülleri kontrol eden sistem C++ ile geliştirilmelidir. Py root dosyalarında bir GUI tasarımı yapılırken, sunucu tarafında C++ ile yazılan komutlarla veriler karşılaştırılır. Böylece her alışveriş işlemi güvenli bir şekilde gerçekleşir.

Puan Sistemi ve Veritabanı Entegrasyonu
Puan sistemlerinin güvenli ve kalıcı olması için DB Core kısmında değişiklikler yapılması gerekir. Auth ve Game sunucuları arasında senkronize bir şekilde çalışan veritabanları, oyuncuların sahip olduğu puanların doğru şekilde saklanmasını sağlar. Bu sistemde, oyuncuların kazandığı exp, item ve sandık gibi ödüllerin puan sistemine dönüşmesi için veritabanında özel tablolar oluşturulabilir. Bu sayede oyuncu bilgileri güvenli bir şekilde yönetilir ve alışveriş işlemleri sorunsuz çalışır.

Martysama ve Metin2Dev Kaynakları
Metin2 özel sunucu geliştirme konusunda deneyimli geliştiricilerden biri olan Martysama, birçok C++ tabanlı sistem geliştirmiştir. Benzer şekilde Metin2Dev toplulukları da source edit, pack ve compile süreçleri hakkında geniş bilgi sağlar. Bu tür kaynaklardan faydalanarak, Exp, item ve sandık sistemlerini entegre ederken daha hızlı ve etkili çözümler elde edebilirsiniz.

Sonuç
Metin2 özel sunucularında C++ tabanlı Exp, item ve sandık sistemlerini kullanarak bir alışveriş menüsü geliştirmek, hem oyuncu deneyimini artırır hem de sunucu yöneticileri için daha esnek bir ekonomi modeli sunar. Bu tür sistemlerin doğru entegrasyonu, game server programming, db core ve uiscript gibi alanlarda derin bilgi gerektirir. Ancak doğru yapılandırıldığında, oyuncuların uzun süre oyunda kalmasını sağlayacak etkili bir araç haline gelir.


Developing Exp, Item, and Chest-Based Trading System with C++ in Metin2


In Metin2 private servers, developing powerful and customizable systems significantly enhances the player experience. In this context, a trading system where rewards like Exp, Item, and Chests are collected, exchanged between players or purchased via a specific menu is highly valuable. In this article, we will detail how to integrate and develop such a system in your Metin2 private servers using C++.

System Development with C++
In Metin2 private servers, structures such as game core and db core are generally developed using C++. Such developments requiring system-level modifications rely on C++ code running directly on the server, offering significant performance benefits. To automatically award Exp, Items, and Chests to players, and convert these rewards into tradeable points for purchase options, C++ is essential.

Exp System Integration
Exp (experience) is the fundamental element for players to level up. Instead of rewarding players directly with exp, converting those exp amounts into a points system which can be used for trading helps create a more balanced in-game economy. This process involves writing a function in C++ that transfers exp earned from certain quests into a points system. For example: 1000 exp = 1 point.

Item and Chest Systems
Items and chests are objects players can use directly or collect. Chests often contain random rewards, while items provide direct rewards. These can be coded in C++ to customize rewards given after specific quests. Additionally, you can convert items and chests into point-based purchases. For example, a chest or a specific item could be available for 50 points.

Developing the Trading Menu
The trading menu for players is usually developed in Python using systems like uiscript and py gui. However, the system verifying point values and validating purchases must be coded in C++. While a GUI is designed in py root files, commands written in C++ handle data validation on the server side, ensuring secure transactions.

Points System and Database Integration
For the security and persistence of points systems, modifications must be made in the DB Core. Databases synchronized between auth and game servers securely store player points. Custom database tables allow conversion of rewards like exp, items, and chests into points. This ensures player data is managed safely and trading operations run smoothly.

Martysama and Metin2Dev Resources
Martysama, an experienced developer in Metin2 private server development, has created many C++-based systems. Similarly, Metin2Dev communities offer extensive resources on source edit, pack, and compile processes. Utilizing such resources allows faster and more effective solutions when integrating Exp, item, and chest systems.

Conclusion
Developing a C++-based Exp, item, and chest trading system in Metin2 private servers enhances both the player experience and offers flexible economic models for server administrators. Proper integration of these systems requires deep knowledge in areas such as game server programming, db core, and uiscript. When configured correctly, these systems become powerful tools that keep players engaged for longer periods.
 

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

Benzer konular

Geri
Üst Alt