Öncelikle iyi günler kolay gelsin, konumda istek geldiği için böyle bir konu açma gereksinimi duydum. Fazla uzatmadan konuya geçelim. Bu arada bir hatam olduysa kusura bakmayın elimden geldiğince açıklamaya çalıştım yanlış açıkladığım veya açıklayamadığım yerleri düzeltirseniz sevinirim. İyi forumlar <3...
İlk kısım olarak Client SRC Kısmı olucak Burada Düzenleyeceğimiz kısımlar
GameLib>ItemData.h olucak
ItemData.h üzerinden "APPLY_ATTBONUS" Değeri atayacağız Örneğin
APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI,
Gibi
Ardından UserInterface kısmına geçelim
Bu kısımda ise bir adet poModule ve bir adet Point atayacağız
ve bir point type'si atayacağız örneğin
Burada işimiz bitti sıra GameSRC'de
ilk olarak commondan başlıyoruz burada kullanacağımız dosya
GameSRC>common>length.h
Buradaki amacımız ise RaceFlag şartı ile yazacağımız için efsunumuzu bir adet RaceFlag atamak ve ClientSRC'de atadığımız APPLY_ATTBONUS_ISTEDIGINIZEFSUN, değerini buraya da yazmak.
RaceFlag Kısmı >length.h
APPLY_ATTBONUS Kısmı ise >length.h
Gelelim GameSRC>game Kısmına
Burada
1-> Efsunun etki edeceği şartı yazacağız.
2-> Pointimizi ve Apply_Attbonusumuzu bir daha yazacağız case içinde
3-> Enum EPointTypes'i bir daha tanıtacağız ClientSRC'de yaptığımız gibi
4-> cmd üzerinden yansıtıldığında gözükecek adının kontrolüyün yapacağız
5-> TApplyInfo (Point) ve TValueName ("Karşı güçlü olacak mobumuzun RaceFlagına ekleyeceğimiz şeyi ve onun hangi apply'i çalıştırıcağını ekliyeceğiz")
İlk olarak game>char.h
"3->" Kısmını yapacağız
Ardından 2-> Kısmı için
game>char.cpp kısmı
Şimdi de "4->" kısmını yapalım
game>cmd_general.cpp
ve
game>cmd_gm.cpp
5-> Kısmına geçelim
game>constants.cpp
TApplyInfo Kısmı
ve TValueName Kısmı
game>cosntants.cpp
Gelelim db kısmına
db'de kontrol edeceğimiz 1 adet dosya var
ProtoReader dosyası, burada yapacağımız işlem ise
RaceFlag'ımızı tanıtmak ve ApplyType'i tanıtmak
ApplyType'i tanıtmak ilk olarak
db>protoreader.cpp
ve RaceFlag'ı tanıtmak
GameSRC Kısmında işimiz bitti şimdi DumpProto_SRC'ye geçelim
DumpProto>Source>ItemCSVReader.cpp
Burada yapacağımız işlem db'de yaptığımız işlem ile 1e1 aynı
fazla uzatmıyorum o yüzden
Burada da işimiz bittiğine göre pack kısmına geçelim
İlk olarak
root>uitooltip.py üzerinden locale_game.txt'de efsunumuzu tanımlayacağız.
pack>uitooltip.py
ve son olarak
pack>locale>xx>xx>locale_game.txt
Kendinize Özel Metin2 Efsunları Oluşturmak
Metin2 özel sunucularında oyun deneyimini zenginleştirmek için kendi efsunlarınızı yaratmak oldukça popülerdir. Bu rehberde, Metin2lobby.com kullanıcıları olarak, C++, Python ve UIScript gibi teknik kaynaklar kullanarak nasıl kendi efsun sisteminizi kurabileceğinizi adım adım anlatacağız.
Efsun Nedir?
Metin2'de efsunlar, karakterinize özel bonuslar sağlar. Bu bonuslar攻击力, savunma, doğruluk, kritik gibi istatistikleri artırabilir. Özel sunucularda bu sistem daha da genişletilebilir. Örneğin, özel PvP sistemleri için özel efsunlar yaratılabilir.
Efsun Sistemi Nasıl Çalışır?
Öncelikle, efsun sistemi için bir veritabanı (DB) yapısı oluşturulmalıdır. Bu yapıda efsun adı, seviyesi, bonus etkileri gibi bilgiler tutulur. Game server programming bilgisi olan geliştiriciler, game core dosyalarında değişiklik yaparak bu sistemi entegre edebilir.
C++ ile Efsun Sistemi Geliştirme
Efsun sistemi için öncelikle C++ source edit işlemleri yapılmalıdır. Metin2 server src üzerinde efsun verileri için yeni tablolar eklenmeli. Ayrıca, oyuncu envanterine eklenecek efsun item'larının tanımı yapılmalıdır. Bu işlemde martysama tarzı kaynaklar yardımcı olabilir.
Python ve Py Root Kullanımı
Oyuncuya efsun takma işlemi genellikle bir GUI üzerinden yapılır. Py GUI[/COORD] veya Python GUI kullanarak kullanıcı dostu arayüzler yaratabilirsiniz. Py root dosyaları ile efsun ekleme, çıkarma gibi işlemleri kontrol eden komutlar yazılabilir.
UIScript ile Arayüz Geliştirme
Efsun arayüzü için UIScript kullanılır. Bu script dosyası, efsun penceresinin nasıl görüneceğini belirler. Arka plan, butonlar, yazı fontları gibi detaylar burada tanımlanır. Metin2dev geliştiricileri bu yapıyı özelleştirerek kullanıcıya görsel olarak zengin bir deneyim sunabilirler.
Efsun Paketi Hazırlama
Oyuna eklenecek efsunlar, özel pack dosyaları ile sunucuya entegre edilir. Bu paketlerde hem grafik hem de veri dosyaları bulunur. Metin2 compile işlemi sırasında bu paketler derlenir ve oyuna dahil edilir.
Güvenlik ve DB Core
Efsun sistemi, auth ve db core ile entegre çalışmalıdır. Bu sayede hileli kullanım engellenir. Efsun verileri güvenli bir şekilde saklanır ve oyuncu karakterleri ile ilişkilendirilir.
Sonuç
Kendi efsun sisteminizi yaratmak, Metin2 özel sunucularında oyun deneyimini ciddi anlamda geliştirir. Metin2lobby.com topluluğu olarak, game core, C++, Python gibi teknolojileri kullanarak özgün sistemler geliştirebilirsiniz. Bu rehber sayesinde temel adımları attınız. Artık kendi efsunlarınızı yaratmaya hazırsınız.
Creating Your Own Custom Metin2 Enchantments
To enhance the gaming experience on Metin2 private servers, creating your own enchantments is quite popular. In this guide, as Metin2lobby.com users, we will explain step by step how to create your own enchantment system using technical resources like C++, Python, and UIScript.
What Are Enchantments?
In Metin2, enchantments provide special bonuses to your character. These bonuses can increase stats like attack power, defense, accuracy, critical hit rate, etc. On private servers, this system can be extended further. For example, special enchantments can be created for custom PvP systems.
How Does the Enchantment System Work?
Firstly, a database (DB) structure must be created for the enchantment system. This structure holds information such as the name, level, and bonus effects of each enchantment. Developers with game server programming knowledge can integrate this system by making modifications in the game core files.
Developing an Enchantment System with C++
For the enchantment system, C++ source edit operations must be performed first. New tables for enchantment data should be added to the Metin2 server src. Additionally, definitions for enchantment items to be added to the player's inventory must be made. Resources like martysama can assist in this process.
Using Python and Py Root
The process of equipping enchantments to players is usually done through a GUI. You can create user-friendly interfaces using Py GUI or Python GUI. Commands that control adding or removing enchantments can be written using Py root files.
UI Development with UIScript
The UIScript is used for the enchantment interface. This script file determines how the enchantment window appears, defining elements like background, buttons, fonts, and more. Metin2dev developers can customize this structure to provide visually rich experiences to users.
Preparing an Enchantment Pack
The enchantments to be added into the game are integrated into the server via custom pack files. These packages contain both graphics and data files. During the Metin2 compile process, these packs are compiled and included in the game.
Security and DB Core
The enchantment system must work integrated with auth and db core. This prevents cheating. Enchantment data is securely stored and linked to player characters.
Conclusion
Creating your own enchantment system significantly enhances the gameplay on Metin2 private servers. As part of the Metin2lobby.com community, you can develop unique systems using technologies like game core, C++, and Python. With this guide, you've taken the basic steps. Now you're ready to create your own enchantments.
İlk kısım olarak Client SRC Kısmı olucak Burada Düzenleyeceğimiz kısımlar
GameLib>ItemData.h olucak
ItemData.h üzerinden "APPLY_ATTBONUS" Değeri atayacağız Örneğin
APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI,
Gibi
Kod:
//ARAT enum EApplyTypes { //ÝÇÝNDE BUL MAX_APPLY_NUM, //ÜSTÜNE EKLE APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI,
Ardından UserInterface kısmına geçelim
Bu kısımda ise bir adet poModule ve bir adet Point atayacağız
Kod:
//poModule Örneği //arat PyModule_AddIntConstant(poModule, "APPLY_ANTI_PENETRATE_PCT", CItemData::APPLY_ANTI_PENETRATE_PCT ); //ALTINA EKLE PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI", CItemData::APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI);
ve bir point type'si atayacağız örneğin
Kod:
//ARAT enum EPointTypes { // ICINNDE EN SONA EKLE POINT_ATTBONUS_ISTEDIGINIZEFSUNADI,
Burada işimiz bitti sıra GameSRC'de
ilk olarak commondan başlıyoruz burada kullanacağımız dosya
GameSRC>common>length.h
Buradaki amacımız ise RaceFlag şartı ile yazacağımız için efsunumuzu bir adet RaceFlag atamak ve ClientSRC'de atadığımız APPLY_ATTBONUS_ISTEDIGINIZEFSUN, değerini buraya da yazmak.
RaceFlag Kısmı >length.h
Kod:
//ARAT enum ERaceFlags { //Buraya ekliyoruz }; RACE_FLAG_ATT_ISTEDIGINIZEFSUNADI = (1 << /*Sizdeki son sayý ne ise 1 fazlasi*/)
APPLY_ATTBONUS Kısmı ise >length.h
Kod:
//ARAT enum EApplyTypes // İçinde arat MAX_APPLY_NUM, // //Ekle APPLY_ATTBONUS_ISTEDGINIZEFSUNADI,
Gelelim GameSRC>game Kısmına
Burada
1-> Efsunun etki edeceği şartı yazacağız.
2-> Pointimizi ve Apply_Attbonusumuzu bir daha yazacağız case içinde
3-> Enum EPointTypes'i bir daha tanıtacağız ClientSRC'de yaptığımız gibi
4-> cmd üzerinden yansıtıldığında gözükecek adının kontrolüyün yapacağız
5-> TApplyInfo (Point) ve TValueName ("Karşı güçlü olacak mobumuzun RaceFlagına ekleyeceğimiz şeyi ve onun hangi apply'i çalıştırıcağını ekliyeceğiz")
İlk olarak game>char.h
"3->" Kısmını yapacağız
Kod:
//arat enum EPointTypes { // ICINE EKLE EN SONA POINT_ATTBONUS_ISTEDIGINIZEFSUNADI,
Ardından 2-> Kısmı için
game>char.cpp kısmı
Kod:
//arat case POINT_RESIST_SHAMAN : // ALTINA EKLE case POINT_ATTBONUS_ISTEDIGINIZEFSUNADI: //ARAT case APPLY_NORMAL_HIT_DAMAGE_BONUS: //ALTINA EKLE case APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI:
Şimdi de "4->" kısmını yapalım
game>cmd_general.cpp
Kod:
//ARAT static const char* [...] switch (apply_number) { // ICINDE BUL case POINT_RESIST_SHAMAN: return LC_TEXT("¹«´ç°ø°Ý¿¡ %d%% ÀúÇ×"); // Altina ekle case POINT_ATTBONUS_ISTEDIGINIZEFUNADI: return LC_TEXT("Istediğniiz efsun adına karþý güçlü %d%%");
ve
game>cmd_gm.cpp
Kod:
//ARAT tch->GetPoint(POINT_ATTBONUS_SHAMAN)); // ALTINA EKLE ch->ChatPacket(CHAT_TYPE_INFO, " ISTEDIGINIZEFSUNADI:%3d%%", tch->GetPoint(POINT_ATTBONUS_ISTEDIGINIZEFSUNADI)); //Son hali ch->ChatPacket(CHAT_TYPE_INFO, " WARR:%3d%% ASAS:%3d%% SURA:%3d%% SHAM:%3d%%", tch->GetPoint(POINT_ATTBONUS_WARRIOR), tch->GetPoint(POINT_ATTBONUS_ASSASSIN), tch->GetPoint(POINT_ATTBONUS_SURA), tch->GetPoint(POINT_ATTBONUS_SHAMAN)); ch->ChatPacket(CHAT_TYPE_INFO, " ISTEDIGINZEFSUNADI:%3d%%", tch->GetPoint(POINT_ATTBONUS_ISTEDIGINZEFSUNADI));
5-> Kısmına geçelim
game>constants.cpp
TApplyInfo Kısmı
Kod:
//ARAT const TApplyInfo aApplyInfo[MAX_APPLY_NUM] = // Icıne ekle { POINT_ATTBONUS_ISTEDIGINIZEFSUNADI, }, // APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI,
ve TValueName Kısmı
game>cosntants.cpp
Kod:
//ARAT TValueName c_aApplyTypeNames[] = // ICINDE BUL { NULL, 0 } //ÜSTÜNE EKLE { "ATT_ISTEDIGINIZEFSUNADI", APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI },
Kod:
//ARAT if (pkVictim->IsRaceFlag(RACE_FLAG_ANIMAL)) iAtk+= (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ANIMAL)) / 100; // ALTINA EKLE if (pkVictim->IsRaceFlag(RACE_FLAG_ATT_ISTEDIGINIZEFSUNADI)) iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ISTEDIGINIZEFSUNADI)) / 100;
Gelelim db kısmına
db'de kontrol edeceğimiz 1 adet dosya var
ProtoReader dosyası, burada yapacağımız işlem ise
RaceFlag'ımızı tanıtmak ve ApplyType'i tanıtmak
ApplyType'i tanıtmak ilk olarak
db>protoreader.cpp
Kod:
//ARAT string arApplyType[] // içine ekle "APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI", //Son hali string arApplyType[] = {"APPLY_NONE", "APPLY_MAX_HP", "APPLY_MAX_SP", "APPLY_CON", "APPLY_INT", "APPLY_STR", "APPLY_DEX", "APPLY_ATT_SPEED", "APPLY_MOV_SPEED", "APPLY_CAST_SPEED", "APPLY_HP_REGEN", "APPLY_SP_REGEN", "APPLY_POISON_PCT", "APPLY_STUN_PCT", "APPLY_SLOW_PCT", "APPLY_CRITICAL_PCT", "APPLY_PENETRATE_PCT", "APPLY_ATTBONUS_HUMAN", "APPLY_ATTBONUS_ANIMAL", "APPLY_ATTBONUS_ORC", "APPLY_ATTBONUS_MILGYO", "APPLY_ATTBONUS_UNDEAD", "APPLY_ATTBONUS_DEVIL", "APPLY_STEAL_HP", [...] "APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI", };
ve RaceFlag'ı tanıtmak
Kod:
//ARAT string arRaceFlag[] //Ýçine ekle "ATT_ISTEDIGINIZEFSUNADI" //Son hali string arRaceFlag[] = {"ANIMAL","UNDEAD","DEVIL","HUMAN","ORC","MILGYO","INSECT","FIRE","ICE","DESERT","TREE","ATT_ELEC","ATT_FIRE","ATT_ICE","ATT_WIND","ATT_EARTH","ATT_DARK","ATT_ISTEDIGINIZEFSUNADI"};
GameSRC Kısmında işimiz bitti şimdi DumpProto_SRC'ye geçelim
DumpProto>Source>ItemCSVReader.cpp
Burada yapacağımız işlem db'de yaptığımız işlem ile 1e1 aynı
fazla uzatmıyorum o yüzden
Kod:
//ARAT string arApplyType[] //ÝÇÝNE EKLE "APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI", //SON HALÝ string arApplyType[] = {"APPLY_NONE", "APPLY_MAX_HP", "APPLY_MAX_SP", "APPLY_CON", "APPLY_INT", "APPLY_STR", "APPLY_DEX", "APPLY_ATT_SPEED", "APPLY_MOV_SPEED", "APPLY_CAST_SPEED", "APPLY_HP_REGEN", "APPLY_SP_REGEN", "APPLY_POISON_PCT", "APPLY_STUN_PCT", "APPLY_SLOW_PCT", "APPLY_CRITICAL_PCT", "APPLY_PENETRATE_PCT", "APPLY_ATTBONUS_HUMAN", "APPLY_ATTBONUS_ANIMAL", "APPLY_ATTBONUS_ORC", "APPLY_ATTBONUS_MILGYO", "APPLY_ATTBONUS_UNDEAD", "APPLY_ATTBONUS_DEVIL", "APPLY_STEAL_HP", "APPLY_STEAL_SP", "APPLY_MANA_BURN_PCT", "APPLY_DAMAGE_SP_RECOVER", "APPLY_BLOCK", "APPLY_DODGE", "APPLY_RESIST_SWORD", "APPLY_RESIST_TWOHAND", "APPLY_RESIST_DAGGER", "APPLY_RESIST_BELL", "APPLY_RESIST_FAN", "APPLY_RESIST_BOW", "APPLY_RESIST_FIRE", "APPLY_RESIST_ELEC", "APPLY_RESIST_MAGIC", "APPLY_RESIST_WIND", "APPLY_REFLECT_MELEE", "APPLY_REFLECT_CURSE", "APPLY_POISON_REDUCE", "APPLY_KILL_SP_RECOVER", "APPLY_EXP_DOUBLE_BONUS", "APPLY_GOLD_DOUBLE_BONUS", "APPLY_ITEM_DROP_BONUS", "APPLY_POTION_BONUS", "APPLY_KILL_HP_RECOVER", "APPLY_IMMUNE_STUN", "APPLY_IMMUNE_SLOW", "APPLY_IMMUNE_FALL", "APPLY_SKILL", "APPLY_BOW_DISTANCE", "APPLY_ATT_GRADE_BONUS", "APPLY_DEF_GRADE_BONUS", "APPLY_MAGIC_ATT_GRADE", "APPLY_MAGIC_DEF_GRADE", "APPLY_CURSE_PCT", "APPLY_MAX_STAMINA", "APPLY_ATTBONUS_WARRIOR", "APPLY_ATTBONUS_ASSASSIN", "APPLY_ATTBONUS_SURA", "APPLY_ATTBONUS_SHAMAN", "APPLY_ATTBONUS_MONSTER", "APPLY_MALL_ATTBONUS", "APPLY_MALL_DEFBONUS", "APPLY_MALL_EXPBONUS", "APPLY_MALL_ITEMBONUS", "APPLY_MALL_GOLDBONUS", "APPLY_MAX_HP_PCT", "APPLY_MAX_SP_PCT", "APPLY_SKILL_DAMAGE_BONUS", "APPLY_NORMAL_HIT_DAMAGE_BONUS", "APPLY_SKILL_DEFEND_BONUS", "APPLY_NORMAL_HIT_DEFEND_BONUS", "APPLY_PC_BANG_EXP_BONUS", "APPLY_PC_BANG_DROP_BONUS", "APPLY_EXTRACT_HP_PCT", "APPLY_RESIST_WARRIOR", "APPLY_RESIST_ASSASSIN", "APPLY_RESIST_SURA", "APPLY_RESIST_SHAMAN", "APPLY_ENERGY", "APPLY_DEF_GRADE", "APPLY_COSTUME_ATTR_BONUS", "APPLY_MAGIC_ATTBONUS_PER", "APPLY_MELEE_MAGIC_ATTBONUS_PER", "APPLY_RESIST_ICE", "APPLY_RESIST_EARTH", "APPLY_RESIST_DARK", "APPLY_ANTI_CRITICAL_PCT", "APPLY_ANTI_PENETRATE_PCT", "APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI", }; //ARAT string arRaceFlag[] //ÝÇÝNE EKLE "ATT_ISTEDIGINIZEFSUNADI" //SON HALÝ string arRaceFlag[] = {"ANIMAL","UNDEAD","DEVIL","HUMAN","ORC","MILGYO","INSECT","FIRE","ICE","DESERT","TREE", "ATT_ELEC","ATT_FIRE","ATT_ICE","ATT_WIND","ATT_EARTH","ATT_DARK","ATT_ISTEDIGINIZEFSUNADI"};
Burada da işimiz bittiğine göre pack kısmına geçelim
İlk olarak
root>uitooltip.py üzerinden locale_game.txt'de efsunumuzu tanımlayacağız.
pack>uitooltip.py
Kod:
## ARAT item.APPLY_ATTBONUS_DEVIL : localeInfo.TOOLTIP_APPLY_ATTBONUS_DEVIL, ## Altına Ekle item.APPLY_ATTBONUS_ISTEDIGINEFSUNADI : localeInfo.TOOLTIP_APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI,
ve son olarak
pack>locale>xx>xx>locale_game.txt
Kod:
//ARAT TOOLTIP_APPLY_ATTBONUS_UNDEAD Ölümsüzlere karþý güçlü +%d%% SA ALTINA EKLE TOOLTIP_APPLY_ATTBONUS_ISTEDIGINIZEFSUNADI Istediğiniz efsunlara karşı güçlü +%d%% SA
Kendinize Özel Metin2 Efsunları Oluşturmak
Metin2 özel sunucularında oyun deneyimini zenginleştirmek için kendi efsunlarınızı yaratmak oldukça popülerdir. Bu rehberde, Metin2lobby.com kullanıcıları olarak, C++, Python ve UIScript gibi teknik kaynaklar kullanarak nasıl kendi efsun sisteminizi kurabileceğinizi adım adım anlatacağız.
Efsun Nedir?
Metin2'de efsunlar, karakterinize özel bonuslar sağlar. Bu bonuslar攻击力, savunma, doğruluk, kritik gibi istatistikleri artırabilir. Özel sunucularda bu sistem daha da genişletilebilir. Örneğin, özel PvP sistemleri için özel efsunlar yaratılabilir.
Efsun Sistemi Nasıl Çalışır?
Öncelikle, efsun sistemi için bir veritabanı (DB) yapısı oluşturulmalıdır. Bu yapıda efsun adı, seviyesi, bonus etkileri gibi bilgiler tutulur. Game server programming bilgisi olan geliştiriciler, game core dosyalarında değişiklik yaparak bu sistemi entegre edebilir.
C++ ile Efsun Sistemi Geliştirme
Efsun sistemi için öncelikle C++ source edit işlemleri yapılmalıdır. Metin2 server src üzerinde efsun verileri için yeni tablolar eklenmeli. Ayrıca, oyuncu envanterine eklenecek efsun item'larının tanımı yapılmalıdır. Bu işlemde martysama tarzı kaynaklar yardımcı olabilir.
Python ve Py Root Kullanımı
Oyuncuya efsun takma işlemi genellikle bir GUI üzerinden yapılır. Py GUI[/COORD] veya Python GUI kullanarak kullanıcı dostu arayüzler yaratabilirsiniz. Py root dosyaları ile efsun ekleme, çıkarma gibi işlemleri kontrol eden komutlar yazılabilir.
UIScript ile Arayüz Geliştirme
Efsun arayüzü için UIScript kullanılır. Bu script dosyası, efsun penceresinin nasıl görüneceğini belirler. Arka plan, butonlar, yazı fontları gibi detaylar burada tanımlanır. Metin2dev geliştiricileri bu yapıyı özelleştirerek kullanıcıya görsel olarak zengin bir deneyim sunabilirler.
Efsun Paketi Hazırlama
Oyuna eklenecek efsunlar, özel pack dosyaları ile sunucuya entegre edilir. Bu paketlerde hem grafik hem de veri dosyaları bulunur. Metin2 compile işlemi sırasında bu paketler derlenir ve oyuna dahil edilir.
Güvenlik ve DB Core
Efsun sistemi, auth ve db core ile entegre çalışmalıdır. Bu sayede hileli kullanım engellenir. Efsun verileri güvenli bir şekilde saklanır ve oyuncu karakterleri ile ilişkilendirilir.
Sonuç
Kendi efsun sisteminizi yaratmak, Metin2 özel sunucularında oyun deneyimini ciddi anlamda geliştirir. Metin2lobby.com topluluğu olarak, game core, C++, Python gibi teknolojileri kullanarak özgün sistemler geliştirebilirsiniz. Bu rehber sayesinde temel adımları attınız. Artık kendi efsunlarınızı yaratmaya hazırsınız.
Creating Your Own Custom Metin2 Enchantments
To enhance the gaming experience on Metin2 private servers, creating your own enchantments is quite popular. In this guide, as Metin2lobby.com users, we will explain step by step how to create your own enchantment system using technical resources like C++, Python, and UIScript.
What Are Enchantments?
In Metin2, enchantments provide special bonuses to your character. These bonuses can increase stats like attack power, defense, accuracy, critical hit rate, etc. On private servers, this system can be extended further. For example, special enchantments can be created for custom PvP systems.
How Does the Enchantment System Work?
Firstly, a database (DB) structure must be created for the enchantment system. This structure holds information such as the name, level, and bonus effects of each enchantment. Developers with game server programming knowledge can integrate this system by making modifications in the game core files.
Developing an Enchantment System with C++
For the enchantment system, C++ source edit operations must be performed first. New tables for enchantment data should be added to the Metin2 server src. Additionally, definitions for enchantment items to be added to the player's inventory must be made. Resources like martysama can assist in this process.
Using Python and Py Root
The process of equipping enchantments to players is usually done through a GUI. You can create user-friendly interfaces using Py GUI or Python GUI. Commands that control adding or removing enchantments can be written using Py root files.
UI Development with UIScript
The UIScript is used for the enchantment interface. This script file determines how the enchantment window appears, defining elements like background, buttons, fonts, and more. Metin2dev developers can customize this structure to provide visually rich experiences to users.
Preparing an Enchantment Pack
The enchantments to be added into the game are integrated into the server via custom pack files. These packages contain both graphics and data files. During the Metin2 compile process, these packs are compiled and included in the game.
Security and DB Core
The enchantment system must work integrated with auth and db core. This prevents cheating. Enchantment data is securely stored and linked to player characters.
Conclusion
Creating your own enchantment system significantly enhances the gameplay on Metin2 private servers. As part of the Metin2lobby.com community, you can develop unique systems using technologies like game core, C++, and Python. With this guide, you've taken the basic steps. Now you're ready to create your own enchantments.
