Skiller Opsiyoneldir. Hangi Skill'i Verip Vermeceğiniz Size Bağlıdır.
Skilleri Master, Grand veya Perfect İle Başlatabilirsiniz. (Fonksiyonelsiz)
Farklı Skilleriniz Var İse Job Skill Index İçerisine Tanımlayınız.
Dosya İçeriğinde Olmayan ve Fonksiyonel Olarak Kullanmak İstiyorsanız:
CommonDefines.h veya Service.h
C++20 Destekler.
KANIT:
Skilleri Master, Grand veya Perfect İle Başlatabilirsiniz. (Fonksiyonelsiz)
Farklı Skilleriniz Var İse Job Skill Index İçerisine Tanımlayınız.
Dosya İçeriğinde Olmayan ve Fonksiyonel Olarak Kullanmak İstiyorsanız:
Kod:
void CHARACTER::SelectSkill_ForJob(std::initializer_list<uint8_t> skillList) { for (auto skill : skillList) { #if defined(__ENABLE_SKILL_SELECT__PERFECT__) SetSkillLevel(skill, 40); #elif defined(__ENABLE_SKILL_SELECT__GRAND__) SetSkillLevel(skill, 30); #elif defined(__ENABLE_SKILL_SELECT__MASTER__) SetSkillLevel(skill, 20); #else SetSkillLevel(skill, 1); #endif } }
CommonDefines.h veya Service.h
Kod:
#define __ENABLE_SKILL_SELECT__ # if defined(__ENABLE_SKILL_SELECT__) // #define __ENABLE_SKILL_SELECT__PERFECT__ // Aktif Edersen Perfect M. Başlar. // #define __ENABLE_SKILL_SELECT__GRAND__ // Aktif Edersen Grand M. Başlar. #define __ENABLE_SKILL_SELECT__MASTER__ // Aktif Edersen Master Başlar. # endif
C++20 Destekler.
KANIT:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Metin2 Özel Sunucu Geliştirme Serisi: [C++ & Python] Yetenek Seçim Sistemi (Skill Select System)
Yetenek Seçim Sistemi Nedir?
Metin2 özel sunucularında oyuncuların karakterlerine özgünlük katmak ve oyun deneyimini zenginleştirmek adına geliştirilen sistemlerden biridir Yetenek Seçim Sistemi (Skill Select System). Bu sistem sayesinde oyuncular, belirli seviyelere ulaştıkça yeteneklerini kişiselleştirebilir, farklı stratejiler geliştirebilir ve karakterlerini daha güçlü hale getirebilirler. Bu sistem genellikle C++ tabanlı sunucu tarafında ve Python tabanlı istemci tarafında geliştirilir.
Sistem Nasıl Çalışır?
Yetenek Seçim Sistemi, oyuncuların belirli bir seviyeye ulaştıklarında açılan bir pencerede yetenek noktaları almasını sağlar. Bu yetenek noktaları, oyuncunun karakter sınıfına göre farklı yeteneklerde harcanabilir. Örneğin bir Süvari, at biniciliği veya kılıç becerilerinde yetenek harcayabilirken, Ninja karakteri gizlilik ve hız yeteneklerini geliştirebilir.
C++ Tarafında Uygulama
Sunucu tarafında C++ kullanılarak yetenek verileri veritabanında saklanır ve oyuncu giriş yaptığında bu veriler yüklenir. Yetenek seçimleri sunucuya gönderilir ve sunucu bu seçimleri onaylayarak oyuncunun karakterine uygular. Bu süreçte güvenlik ön plandadır; çünkü herhangi bir hata, hileli oyunlara yol açabilir. Bu nedenle yetenek seçimleri doğrulanmalı ve oyuncunun seviyesine göre yetenek puanları kontrol edilmelidir.
Python Tarafında Arayüz
Oyuncular için yetenek seçim arayüzü genellikle Python dilinde yazılmıştır. Bu arayüz, UIScript dosyaları ve Py Root klasörü altında düzenlenir. Arayüzde yetenek ikonları, açıklamalar ve puanlama sistemi yer alır. Oyuncu yetenek seçimi yaptığında bu bilgi sunucuya gönderilir. Bu işlem sırasında GUI (Graphical User Interface) tasarımı kullanıcı dostu olmalıdır. Martysama gibi geliştiricilerin paylaştığı örnek UI scriptleri bu konuda yardımcı olabilir.
Veritabanı Entegrasyonu
Yetenek sistemlerinde DB (veritabanı) çok önemlidir. Oyuncuların yetenek tercihleri, seviye bilgileri ve yetenek puanları doğru şekilde veritabanına yazılmalı ve okunmalıdır. Game ve Auth sunucuları arasında veri aktarımı güvenli bir şekilde yapılmalıdır. Yetenek sistemleri genellikle hem core hem de db core üzerinde değişiklik gerektirir.
Paketleme ve Dağıtım
Yetenek sistemi geliştirildikten sonra paketlenerek sunuculara entegre edilebilir. Pack olarak adlandırılan bu süreçte hem C++ kodları hem de Python dosyaları birlikte çalışır hale getirilir. Paketler genellikle Metin2 Server SRC ile birlikte gelmez ve özel geliştiriciler tarafından hazırlanır.
Sonuç
Yetenek Seçim Sistemi, Metin2 özel sunucularında oyunculara daha fazla oynanabilirlik ve özelleştirme imkanı sunar. Hem C++ hem de Python bilgisi gerektiren bu sistem, Metin2 Development alanında uzmanlaşmak isteyen geliştiriciler için önemli bir öğrenme alanıdır. Metin2Lobby üzerinden daha fazla kaynak ve sistem örneği bulabilirsiniz.
Metin2 Private Server Development Series: [C++ & Python] Skill Select System
What Is a Skill Select System?
In Metin2 private servers, one of the systems developed to add uniqueness to players' characters and enrich the gaming experience is the Skill Select System. With this system, players can customize their skills, develop different strategies, and strengthen their characters as they reach certain levels. This system is generally developed on the C++ based server side and the Python-based client side.
How Does the System Work?
The Skill Select System allows players to gain skill points which they can spend on various abilities depending on their character class when they reach specific levels. For example, a Warrior may spend skill points on horse riding or sword techniques, while a Ninja might focus on stealth and speed abilities.
Implementation in C++
On the server side, skill data is stored in the database using C++. When a player logs in, these values are loaded and applied to the character. Skill selections are sent to the server and validated to ensure they comply with level restrictions. Security is crucial since errors could lead to cheating. Each selection must be verified against the player's level and skill point availability.
Interface in Python
The skill selection interface for players is typically written in Python. It uses UIScript files and is located within the Py Root folder. The interface displays icons, descriptions, and a point allocation system. When a player selects a skill, the information is sent to the server. The GUI (Graphical User Interface) should be user-friendly. Examples shared by developers like Martysama can assist in this process.
Database Integration
The database (DB) plays a critical role in skill systems. Player skill choices, level data, and allocated points must be correctly saved and retrieved from the database. Data transfer between Game and Auth servers must be secure. Skill systems often require modifications to both core and db core.
Packaging and Distribution
Once the skill system is developed, it can be packaged and integrated into servers. This process, known as Pack, involves making both C++ codes and Python files work together. These packages are not included in standard Metin2 Server SRC and are created by specialized developers.
Conclusion
The Skill Select System offers players more playability and customization options in Metin2 private servers. Requiring knowledge in both C++ and Python, this system serves as an important learning area for developers aiming to specialize in Metin2 Development. You can find additional resources and system examples at Metin2Lobby.
