// Edit
Metin2'de Skilleri 17 Seviyesine Kadar Yükseltmek (Master Yapma) - C++ Üzerinden Uygulama
Giriş
Metin2 özel sunucularında (private server) oyun dengelerini ayarlamak, geliştiriciler için kritik öneme sahiptir. Özellikle yetenek (skill) sistemleri, oyuncuların karakter gelişimini doğrudan etkiler. Standart Metin2 sistemlerinde bazı yetenekler 15 seviyeye kadar çıkarken, bazıları 20 veya daha fazla seviyeye sahip olabilir. Ancak bazı özel sunucularda bu seviyeleri artırmak isteyen geliştiriciler, yeteneklerin 17. seviyeye kadar çıkarılması gibi özelleştirmeler yaparlar. Bu işlem genellikle C++ tabanlı sunucu kaynak kodları üzerinde gerçekleştirilir. Bu makalede, Metin2 özel sunucularında yetenekleri 17 seviyeye kadar yükseltmeyi C++ üzerinden nasıl yapacağınızı adım adım anlatacağız.
Yetenek Sistemine Genel Bakış
Metin2 yetenek sistemi, oyuncunun savaş becerilerini, büyü güçlerini ve diğer özel yetilerini artıran bir özelliktir. Her yeteneğin bir maksimum seviye sınırı vardır. Bu sınırlar genellikle oyun dosyalarında tanımlıdır. Yeteneklerin 17. seviyeye kadar çıkarılması için öncelikle sunucu tarafında (server side) bu yeteneklerin tanımı yapılmış olmalıdır. Sunucu kaynak kodlarında bu yetenek seviyeleri, genellikle C++ kodları ile belirlenir. Özellikle game core olarak adlandırılan sunucu motoru, yetenek sistemini kontrol eder.
Yetenek Seviyesini Artırmak için Gerekli Adımlar
1. Yetenek Tanımlarının Kontrolü
Öncelikle, yeteneklerin tanımlandığı dosyaları kontrol etmeniz gerekir. Bunlar genellikle client src ve server src dosyalarında bulunur. Özellikle yetenek seviyesi limitlerini belirleyen yapılar header (.h) dosyalarında tanımlıdır. Örneğin, SkillManager.h veya char_skill.cpp gibi dosyalarda yetenek sınırları belirlenir.
2. Maksimum Yetenek Seviyesi Ayarı
Yeteneklerin 17. seviyeye kadar çıkabilmesi için, yetenek seviyesi limitlerinin artırılması gerekir. Bu genellikle MAX_SKILL_LEVEL gibi bir sabit (constant) ile belirlenir. Bu sabiti 17 veya daha yüksek bir değere ayarlamalısınız. Örneğin:
Kod:
#define MAX_SKILL_LEVEL 17
Ancak bu sabitin birden fazla yerde tanımlanmış olabileceği için tümünü güncellemek önemlidir.
3. Yetenek Veri Tabanı Ayarları
Yetenek seviyeleri DB (database) tarafında da desteklenmelidir. Oyuncunun yetenek seviyesi bilgisi veritabanında saklanır. Yetenek seviyesi sütunu, genellikle player tablosunda yer alır. Bu sütunun değer aralığı yetenek seviyesini desteklemelidir. Örneğin, yetenek seviyesi TINYINT UNSIGNED tipindeyse, maksimum 255'e kadar değer alabilir. Ancak yetenek seviyesi için bir constraint (kısıtlama) olabilir. Bu kısıtlamaları kaldırmanız gerekir.
4. Yetenek Arttırma Sistemi
Yetenek seviyesi artırmak için gerekli olan sistemler, genellikle uiscript veya py root dosyalarında tanımlanır. Oyuncu bir yeteneği artırdığında, bu eylem sunucuya gönderilir. Sunucu ise yetenek seviyesini kontrol eder ve günceller. Eğer yetenek seviyesi 17'yi geçiyorsa, yetenek artmamalıdır. Bu yüzden yetenek artırmayı engelleyen kontrolleri de güncellemelisiniz.
5. C++ Kodlarında Yetenek Seviyesi Kontrolü
Sunucu tarafında yetenek seviyesi kontrolü yapan fonksiyonlar genellikle char_skill.cpp dosyasında yer alır. Bu fonksiyonlarda yetenek seviyesi kontrolü yapılırken, yeni maksimum seviyeye göre güncellenmelidir. Örneğin:
Kod:
if (pSkill->dwLevel >= MAX_SKILL_LEVEL) { return false; }
Bu kontrol, yetenek seviyesinin 17'yi geçmemesi için güncellenmelidir.
6. Client Tarafında Yetenek Arayüzü
Client tarafında, yeteneklerin seviyesi gösterilir. Bu gösterimde de 17. seviyeye kadar yetenek gösterimi yapılmalıdır. uiscript dosyalarında yetenek penceresi (skill window) düzenlenmelidir. Yetenek butonları, seviye göstergeleri ve yetenek isimleri 17. seviyeye kadar desteklenmelidir.
Python Entegrasyonu
Bazı Metin2 sistemlerinde yetenek yönetimi için Python betikleri de kullanılır. Özellikle py gui tabanlı arayüzlerde yetenek seviyeleri Python tarafından kontrol edilebilir. Bu durumda py root dosyalarında yetenek seviyesi kontrolü yapan fonksiyonlar da güncellenmelidir. Örneğin, yetenek artırmada max_level değişkeni 17'ye eşitlenmelidir.
Sonuç
Metin2 özel sunucularında yetenek seviyelerini 17'ye kadar çıkarmak, hem oyuncular için daha fazla gelişim imkanı sağlar hem de sunucu deneyimini zenginletir. Bu işlem için hem C++ hem de Python sistemlerinde değişiklikler yapılması gerekir. Server src, client src, db, uiscript, py root gibi tüm bileşenler senkronize bir şekilde çalışmalıdır. Bu işlem, martysama veya benzeri Metin2 development kaynakları kullanılarak kolaylaştırılabilir. Yetenek sistemlerini özelleştirerek, sunucunuzun rekabet gücünü artırabilirsiniz.
Making Skills Master Level 17 in Metin2 - Through C++ Implementation
Introduction
In Metin2 private servers, adjusting game balance is critical for developers. Especially skill systems directly affect player character progression. In standard Metin2 systems, some skills reach up to level 15 while others may have 20 or more levels. However, some private server developers aim to increase these limits, such as raising skills up to level 17. This process is typically performed on C++ based server source codes. In this article, we will explain step-by-step how to raise skill levels up to 17 in Metin2 private servers through C++ implementation.
Overview of Skill System
The Metin2 skill system enhances players' combat abilities, magic power, and other special abilities. Each skill has a maximum level cap defined in game files. To enable skills reaching level 17, these must first be defined on the server side. Skill levels are generally determined by C++ code within the server source. The game core, which refers to the server engine, controls the skill system.
Steps Required to Increase Skill Levels
1. Check Skill Definitions
Firstly, you need to check the files where skills are defined. These are usually located in client src and server src. Skill level limits are often defined in header (.h) files. For instance, files like SkillManager.h or char_skill.cpp define skill limits.
2. Set Maximum Skill Level
To allow skills to reach level 17, you must increase the skill level limits. This is typically done by defining a constant like MAX_SKILL_LEVEL. You should set this constant to 17 or higher. Example:
Kod:
#define MAX_SKILL_LEVEL 17
Since this constant might be defined in multiple locations, updating all instances is important.
3. Database Settings for Skills
Skill levels must also be supported on the DB (database) side. Player skill levels are stored in the database, usually in the player table. The column for skill levels should support the new level range. For example, if the skill level column is TINYINT UNSIGNED, it can hold values up to 255. However, there might be a constraint limiting skill levels, which must be removed.
4. Skill Increase System
Systems required to increase skill levels are usually defined in uiscript or py root files. When a player increases a skill, the action is sent to the server, which checks and updates the skill level. If the level exceeds 17, the skill should not increase further. Therefore, checks preventing skill increases must be updated accordingly.
5. Skill Level Checks in C++ Code
Functions checking skill levels on the server side are typically located in char_skill.cpp. These functions must be updated to reflect the new maximum level. For example:
Kod:
if (pSkill->dwLevel >= MAX_SKILL_LEVEL) { return false; }
This check should be adjusted so that skill levels do not exceed 17.
6. Client-Side Skill Interface
On the client side, skill levels are displayed. The interface must support displaying up to level 17. Skill windows in uiscript files must be updated. Skill buttons, level indicators, and skill names should support up to level 17.
Python Integration
Some Metin2 systems use Python scripts for skill management. In py gui based interfaces, skill levels might be controlled by Python. In such cases, functions controlling skill levels in py root files must also be updated. For instance, the max_level variable in skill increase functions should be set to 17.
Conclusion
Raising skill levels to 17 in Metin2 private servers provides more progression options for players and enriches the server experience. This requires modifications in both C++ and Python systems. All components including server src, client src, db, uiscript, and py root must work synchronously. This process can be simplified using Metin2 development resources such as martysama. By customizing skill systems, you can enhance your server's competitiveness.
