Merhaba arkadaşlar,
Bu konumuzda 6. ve 7. efsunlarını kullanabilmek için yapılacaklardan bahsedeceğim.
Eğer 40k
Bu kodlar varsa zaten hali hazırda sisteminizde 6. ve 7. efsunlar kullanıma hazır demektir.
71051 ve 71052 itemlerini almaya çalıştığınızda sistem size böyle bi item yok diyorsa kendiniz eklemeniz gerekiyor.
item_proto.txt dosyasına şunları ekleyin;
item_names.txt dosyasına ekleyin.
Daha sonra item_proto.txt ve item_names.txt dosyasını dump_proto'dan geçirip locale_tr/ui içine atınız.
Server kısmında da itemlerin eklenmesi için txt dosyalarını server filesinize atın.
locale_tr/ui/itemlist.txt ekleyin;
locale_tr/ui/itemdesc.txt ekleyin;
player.item_attr_rare tablosu yoksa şu sql komutlarını çalıştırınız.
Tüm bu işlemleri yaptıktan sonra artık 6. ve 7. efsunları kullanabileceksiniz.
MaviAyGames | Metin2 6. ve 7. Efsunları Eklemek
Metin2 özel sunucularında gelişmiş özellikler eklemek, oyuncuların deneyimini ciddi anlamda artırabilir. Bu bağlamda, MaviAyGames gibi isimlerle tanıdığımız bazı sistemler, Metin2 özel sunucu geliştiricileri arasında popülerlik kazanmaktadır. Özellikle Metin2 6. ve 7. efsun gibi yüksek seviye bonuslar, oyuncuların karakterlerini daha güçlü hale getirmelerine olanak tanır. Bu yazıda, Metin2 özel sunucularında 6. ve 7. efsunları nasıl ekleyeceğinizi detaylıca anlatacağız.
Metin2 Efsun Sistemi Nedir?
Metin2 oyununda efsunlar, eşyaların rastgele veya sabit bonuslar almasını sağlayan sistemlerdir. Orijinal oyunda maksimum 5. efsuna kadar çıkılır. Ancak özel sunucularda bu sınır genellikle geliştirilir. 6. ve 7. efsunlar, oyuncuların silah ve zırhlarına ekstra bonuslar kazandırarak PVP sistemlerinde büyük avantaj sağlar. Bu bonuslar genellikle攻击力, savunma, can ve diğer özel istatistikler olabilir.
C++ Kaynak Kodlarında Efsun Değişikliği
Metin2 özel sunucularında 6. ve 7. efsunları eklemek için genellikle game server source code üzerinde değişiklik yapılması gerekir. Özellikle C++ tabanlı sistemlerde bu işlem oldukça teknik seviyede yapılır. İlk olarak, efsun sistemini yöneten fonksiyonların bulunduğu dosyaları incelemek gerekir. Bunlar genellikle char_item.cpp ve item_manager.cpp gibi dosyalardır.
Öncelikle, constantsmanager.cpp dosyasında maksimum efsun limiti belirlenmelidir. Burada MAX_REFINE constant’ı 6 veya 7 olarak ayarlanmalıdır. Ardından, efsun sırasında hangi bonusların verileceği belirlenir. Bu da genellikle bir tablo üzerinden yapılır. Örneğin, 6. efsun %10攻击力 artışı, 7. efsun ise %15攻击力 artışı sağlayabilir.
Python Tarafında UI Script ve Py Root Ayarları
Efsun sistemini ekledikten sonra, bu değişikliğin oyun arayüzünde de görünmesi gerekir. Bu nedenle, uiscript dosyalarında da değişiklikler yapılmalıdır. Özellikle efsun penceresi (refine window), yeni efsunları gösterecek şekilde düzenlenmelidir. Bu işlemler için py root dizinindeki python dosyaları düzenlenir.
Örneğin, uiinventory.py dosyasında efsun seviyesi kontrolü yapan fonksiyonlar güncellenir. Ayrıca, refine_dialog.py gibi dosyalarla kullanıcıya 6. ve 7. efsunun ne gibi bonuslar vereceği gösterilmelidir. Eğer bu bonuslar dinamikse, PyGUI ile arayüzde dinamik veri gösterimi yapılabilir.
Database Ayarları ve Bonus Oranları
6. ve 7. efsunlar için bonus oranları, db core kısmında tanımlanmalıdır. Özellikle mob_proto, item_proto ve refine_proto tabloları üzerinde çalışmak gerekir. Yeni efsun seviyeleri için yeni item ID’leri veya özel refine item’ları tanımlanabilir. Bu sayede oyuncular, belirli item’larla 6. veya 7. efsun yapabilsin.
Ayrıca, auth server ile haberleşen sistemlerde, efsun esnasında veritabanı sorguları da yeniden düzenlenmelidir. Bu, hem güvenlik hem de performans açısından önemlidir. Martysama gibi sistemlerle entegrasyon halindeyse, bu noktada ekstra dikkat gerektirir.
Test ve Derleme İşlemi
Tüm değişiklikler yapıldıktan sonra, Metin2 compile işlemi gerçekleştirilir. Hem game server, hem de client tarafında test edilmelidir. Özellikle efsun sırasında crash veya hata alınmaması için tüm sistemlerin uyumlu olması gerekir. Source edit işlemleri sonrası, sunucu başlatıldığında 6. ve 7. efsunlar sorunsuz çalışmalıdır.
Sonuç: Metin2 özel sunucularında 6. ve 7. efsunları eklemek, oyuncular için daha heyecanlı ve rekabetçi bir oyun deneyimi sunar. Bu işlem, C++ source edit, PyGUI, DB Core ve Client SRC gibi birçok alanı kapsar. Doğru yapılandırıldığında, oyuncuların karakterlerini güçlendirme konusunda ciddi bir ilerleme sağlar.
MaviAyGames | Adding 6th and 7th Enchantments to Metin2
Adding advanced features in Metin2 private servers can significantly enhance player experience. In this context, systems like those known from MaviAyGames have gained popularity among Metin2 private server developers. Particularly, high-level bonuses such as Metin2 6th and 7th enchantments allow players to strengthen their characters. In this article, we will explain in detail how to add 6th and 7th enchantments to Metin2 private servers.
What is the Metin2 Enchantment System?
In Metin2, enchantments are systems that allow items to gain random or fixed bonuses. In the original game, the maximum enchantment level reaches up to 5. However, on private servers, this limit is often extended. The 6th and 7th enchantments provide extra bonuses to weapons and armor, giving significant advantages in PVP systems. These bonuses typically include attack power, defense, health, and other special stats.
Enchantment Changes in C++ Source Code
To add 6th and 7th enchantments to Metin2 private servers, modifications are usually required in the game server source code. Especially in C++-based systems, these operations are performed at a technical level. First, you need to examine the files where functions managing the enchantment system are located. These are typically files like char_item.cpp and item_manager.cpp.
Firstly, the maximum enchantment limit must be set in the constantsmanager.cpp file. Here, the MAX_REFINE constant should be set to 6 or 7. Then, bonuses given during enchantment are defined. This is usually done through a table. For example, the 6th enchantment could grant a 10% attack increase, while the 7th enchantment provides a 15% attack boost.
UI Script and Py Root Settings in Python
After adding the enchantment system, these changes must also appear in the game interface. Therefore, modifications must be made in uiscript files. Especially, the enchant window needs to be adjusted to display the new enchantments. For this, python files in the py root directory are edited.
For instance, enchantment level checking functions in uiinventory.py are updated. Additionally, files like refine_dialog.py should show what bonuses the 6th and 7th enchantments provide. If these bonuses are dynamic, dynamic data display can be implemented using PyGUI.
Database Settings and Bonus Rates
For 6th and 7th enchantments, bonus rates must be defined in the db core. Specifically, work must be done on tables like mob_proto, item_proto, and refine_proto. New item IDs or special refine items may be defined for new enchantment levels, allowing players to perform 6th or 7th enchantment with certain items.
Also, in systems communicating with the auth server, database queries during enchantment must be restructured. This is important for both security and performance. Extra care is needed if integrated with systems like Martysama.
Testing and Compilation Process[/BR]After all changes are completed, the Metin2 compile process must be executed. Both the game server and client sides should be tested. To avoid crashes or errors during enchanting, all systems must be compatible. Once properly configured, the 6th and 7th enchantments should work smoothly after starting the server.
Conclusion: Adding 6th and 7th enchantments to Metin2 private servers offers a more exciting and competitive gameplay experience. This involves multiple areas such as C++ source edit, PyGUI, DB Core, and Client SRC. When correctly configured, it allows players significant progression in strengthening their characters.
Bu konumuzda 6. ve 7. efsunlarını kullanabilmek için yapılacaklardan bahsedeceğim.
Eğer 40k
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
kullanıyorsanız char_item.cpp dosyasında şu kodların olması gerekiyor.
Kod:
case 71051 : // 진재가 { // 유럽, 싱가폴, 베트남 진재가 사용금지 LPITEM item2; if (!IsValidItemPosition(DestCell) || !(item2 = GetInventoryItem(wDestCell))) return false; if (ITEM_COSTUME == item2->GetType()) // @fixme124 { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다.")); return false; } if (item2->IsExchanging() || item2->IsEquipped()) // @fixme114 return false; if (item2->GetAttributeSetIndex() == -1) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다.")); return false; } if (item2->AddRareAttribute() == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성공적으로 속성이 추가 되었습니다")); int iAddedIdx = item2->GetRareAttrCount() + 4; char buf[21]; snprintf(buf, sizeof(buf), "%u", item2->GetID()); LogManager::instance().ItemLog( GetPlayerID(), item2->GetAttributeType(iAddedIdx), item2->GetAttributeValue(iAddedIdx), item->GetID(), "ADD_RARE_ATTR", buf, GetDesc()->GetHostName(), item->GetOriginalVnum()); item->SetCount(item->GetCount() - 1); } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더 이상 이 아이템으로 속성을 추가할 수 없습니다")); } } break; case 71052 : // 진재경 { // 유럽, 싱가폴, 베트남 진재가 사용금지 LPITEM item2; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (ITEM_COSTUME == item2->GetType()) // @fixme124 { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다.")); return false; } if (item2->IsExchanging() || item2->IsEquipped()) // @fixme114 return false; if (item2->GetAttributeSetIndex() == -1) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다.")); return false; } if (item2->ChangeRareAttribute() == true) { char buf[21]; snprintf(buf, sizeof(buf), "%u", item2->GetID()); LogManager::instance().ItemLog(this, item, "CHANGE_RARE_ATTR", buf); item->SetCount(item->GetCount() - 1); } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변경 시킬 속성이 없습니다")); } } break;
Bu kodlar varsa zaten hali hazırda sisteminizde 6. ve 7. efsunlar kullanıma hazır demektir.
71051 ve 71052 itemlerini almaya çalıştığınızda sistem size böyle bi item yok diyorsa kendiniz eklemeniz gerekiyor.
item_proto.txt dosyasına şunları ekleyin;
Kod:
71051 眞·재가비서 ITEM_USE USE_SPECIAL 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 71052 眞·재경비서 ITEM_USE USE_SPECIAL 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0
item_names.txt dosyasına ekleyin.
Kod:
71051 6. ve 7. Arttırma Kağıdı 71052 6. ve 7. Efsun Nesnesi
Daha sonra item_proto.txt ve item_names.txt dosyasını dump_proto'dan geçirip locale_tr/ui içine atınız.
Server kısmında da itemlerin eklenmesi için txt dosyalarını server filesinize atın.
locale_tr/ui/itemlist.txt ekleyin;
Kod:
71051 ETC icon/item/71051.tga 71052 ETC icon/item/71052.tga
locale_tr/ui/itemdesc.txt ekleyin;
Kod:
71051 6. ve 7. Arttırma Kağıdı Eşyalarınıza 6. ve 7. efsunları ekler. 71052 6. ve 7. Efsun Nesnesi Eşyalarınızda bulunan 6. ve 7. efsunları değiştirir.
player.item_attr_rare tablosu yoksa şu sql komutlarını çalıştırınız.
Kod:
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for item_attr_rare -- ---------------------------- DROP TABLE IF EXISTS `item_attr_rare`; CREATE TABLE `item_attr_rare` ( `apply` enum('MAX_HP','MAX_SP','CON','INT','STR','DEX','ATT_SPEED','MOV_SPEED','CAST_SPEED','HP_REGEN','SP_REGEN','POISON_PCT','STUN_PCT','SLOW_PCT','CRITICAL_PCT','PENETRATE_PCT','ATTBONUS_HUMAN','ATTBONUS_ANIMAL','ATTBONUS_ORC','ATTBONUS_MILGYO','ATTBONUS_UNDEAD','ATTBONUS_DEVIL','STEAL_HP','STEAL_SP','MANA_BURN_PCT','DAMAGE_SP_RECOVER','BLOCK','DODGE','RESIST_SWORD','RESIST_TWOHAND','RESIST_DAGGER','RESIST_BELL','RESIST_FAN','RESIST_BOW','RESIST_FIRE','RESIST_ELEC','RESIST_MAGIC','RESIST_WIND','REFLECT_MELEE','REFLECT_CURSE','POISON_REDUCE','KILL_SP_RECOVER','EXP_DOUBLE_BONUS','GOLD_DOUBLE_BONUS','ITEM_DROP_BONUS','POTION_BONUS','KILL_HP_RECOVER','IMMUNE_STUN','IMMUNE_SLOW','IMMUNE_FALL','SKILL','BOW_DISTANCE','ATT_GRADE_BONUS','DEF_GRADE_BONUS','MAGIC_ATT_GRADE_BONUS','MAGIC_DEF_GRADE_BONUS','CURSE_PCT','MAX_STAMINA','ATT_BONUS_TO_WARRIOR','ATT_BONUS_TO_ASSASSIN','ATT_BONUS_TO_SURA','ATT_BONUS_TO_SHAMAN','ATT_BONUS_TO_MONSTER','ATT_BONUS','MALL_DEFBONUS','MALL_EXPBONUS','MALL_ITEMBONUS','MALL_GOLDBONUS','MAX_HP_PCT','MAX_SP_PCT','SKILL_DAMAGE_BONUS','NORMAL_HIT_DAMAGE_BONUS','SKILL_DEFEND_BONUS','NORMAL_HIT_DEFEND_BONUS','PC_BANG_EXP_BONUS','PC_BANG_DROP_BONUS','EXTRACT_HP_PCT','RESIST_WARRIOR','RESIST_ASSASSIN','RESIST_SURA','RESIST_SHAMAN','ENERGY','DEF_GRADE','COSTUME_ATTR_BONUS','MAGIC_ATT_BONUS_PER','MELEE_MAGIC_ATT_BONUS_PER','RESIST_ICE','RESIST_EARTH','RESIST_DARK','RESIST_CRITICAL','RESIST_PENETRATE','BLEEDING_REDUCE','BLEEDING_PCT','ATT_BONUS_TO_WOLFMAN','RESIST_WOLFMAN','RESIST_CLAW') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'MAX_HP', `prob` int(11) UNSIGNED NOT NULL DEFAULT 0, `lv1` int(11) UNSIGNED NOT NULL DEFAULT 0, `lv2` int(11) UNSIGNED NOT NULL DEFAULT 0, `lv3` int(11) UNSIGNED NOT NULL DEFAULT 0, `lv4` int(11) UNSIGNED NOT NULL DEFAULT 0, `lv5` int(11) UNSIGNED NOT NULL DEFAULT 0, `weapon` int(11) UNSIGNED NOT NULL DEFAULT 0, `body` int(11) UNSIGNED NOT NULL DEFAULT 0, `wrist` int(11) UNSIGNED NOT NULL DEFAULT 0, `foots` int(11) UNSIGNED NOT NULL DEFAULT 0, `neck` int(11) UNSIGNED NOT NULL DEFAULT 0, `head` int(11) UNSIGNED NOT NULL DEFAULT 0, `shield` int(11) UNSIGNED NOT NULL DEFAULT 0, `ear` int(11) UNSIGNED NOT NULL DEFAULT 0, `costume_body` int(11) UNSIGNED NOT NULL DEFAULT 0, `costume_hair` int(11) UNSIGNED NOT NULL DEFAULT 0, `costume_weapon` int(11) UNSIGNED NOT NULL DEFAULT 0 ) ENGINE = MyISAM CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed; -- ---------------------------- -- Records of item_attr_rare -- ---------------------------- INSERT INTO `item_attr_rare` VALUES ('MAX_HP', 1, 500, 500, 500, 500, 500, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('MAX_SP', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('CON', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('INT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('STR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('DEX', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('CRITICAL_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('PENETRATE_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_GRADE_BONUS', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_MONSTER', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_WARRIOR', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_ASSASSIN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SURA', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SHAMAN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_WARRIOR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_ASSASSIN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_SURA', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_SHAMAN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_SPEED', 1, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('MOV_SPEED', 1, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('MAX_HP', 1, 500, 500, 500, 500, 500, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('MAX_SP', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('CON', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('INT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('STR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('DEX', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('CRITICAL_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('PENETRATE_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_GRADE_BONUS', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_MONSTER', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_WARRIOR', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_ASSASSIN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SURA', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SHAMAN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_WARRIOR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_ASSASSIN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_SURA', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('RESIST_SHAMAN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('ATT_SPEED', 1, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); INSERT INTO `item_attr_rare` VALUES ('MOV_SPEED', 1, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0); SET FOREIGN_KEY_CHECKS = 1;
Tüm bu işlemleri yaptıktan sonra artık 6. ve 7. efsunları kullanabileceksiniz.
MaviAyGames | Metin2 6. ve 7. Efsunları Eklemek
Metin2 özel sunucularında gelişmiş özellikler eklemek, oyuncuların deneyimini ciddi anlamda artırabilir. Bu bağlamda, MaviAyGames gibi isimlerle tanıdığımız bazı sistemler, Metin2 özel sunucu geliştiricileri arasında popülerlik kazanmaktadır. Özellikle Metin2 6. ve 7. efsun gibi yüksek seviye bonuslar, oyuncuların karakterlerini daha güçlü hale getirmelerine olanak tanır. Bu yazıda, Metin2 özel sunucularında 6. ve 7. efsunları nasıl ekleyeceğinizi detaylıca anlatacağız.
Metin2 Efsun Sistemi Nedir?
Metin2 oyununda efsunlar, eşyaların rastgele veya sabit bonuslar almasını sağlayan sistemlerdir. Orijinal oyunda maksimum 5. efsuna kadar çıkılır. Ancak özel sunucularda bu sınır genellikle geliştirilir. 6. ve 7. efsunlar, oyuncuların silah ve zırhlarına ekstra bonuslar kazandırarak PVP sistemlerinde büyük avantaj sağlar. Bu bonuslar genellikle攻击力, savunma, can ve diğer özel istatistikler olabilir.
C++ Kaynak Kodlarında Efsun Değişikliği
Metin2 özel sunucularında 6. ve 7. efsunları eklemek için genellikle game server source code üzerinde değişiklik yapılması gerekir. Özellikle C++ tabanlı sistemlerde bu işlem oldukça teknik seviyede yapılır. İlk olarak, efsun sistemini yöneten fonksiyonların bulunduğu dosyaları incelemek gerekir. Bunlar genellikle char_item.cpp ve item_manager.cpp gibi dosyalardır.
Öncelikle, constantsmanager.cpp dosyasında maksimum efsun limiti belirlenmelidir. Burada MAX_REFINE constant’ı 6 veya 7 olarak ayarlanmalıdır. Ardından, efsun sırasında hangi bonusların verileceği belirlenir. Bu da genellikle bir tablo üzerinden yapılır. Örneğin, 6. efsun %10攻击力 artışı, 7. efsun ise %15攻击力 artışı sağlayabilir.
Python Tarafında UI Script ve Py Root Ayarları
Efsun sistemini ekledikten sonra, bu değişikliğin oyun arayüzünde de görünmesi gerekir. Bu nedenle, uiscript dosyalarında da değişiklikler yapılmalıdır. Özellikle efsun penceresi (refine window), yeni efsunları gösterecek şekilde düzenlenmelidir. Bu işlemler için py root dizinindeki python dosyaları düzenlenir.
Örneğin, uiinventory.py dosyasında efsun seviyesi kontrolü yapan fonksiyonlar güncellenir. Ayrıca, refine_dialog.py gibi dosyalarla kullanıcıya 6. ve 7. efsunun ne gibi bonuslar vereceği gösterilmelidir. Eğer bu bonuslar dinamikse, PyGUI ile arayüzde dinamik veri gösterimi yapılabilir.
Database Ayarları ve Bonus Oranları
6. ve 7. efsunlar için bonus oranları, db core kısmında tanımlanmalıdır. Özellikle mob_proto, item_proto ve refine_proto tabloları üzerinde çalışmak gerekir. Yeni efsun seviyeleri için yeni item ID’leri veya özel refine item’ları tanımlanabilir. Bu sayede oyuncular, belirli item’larla 6. veya 7. efsun yapabilsin.
Ayrıca, auth server ile haberleşen sistemlerde, efsun esnasında veritabanı sorguları da yeniden düzenlenmelidir. Bu, hem güvenlik hem de performans açısından önemlidir. Martysama gibi sistemlerle entegrasyon halindeyse, bu noktada ekstra dikkat gerektirir.
Test ve Derleme İşlemi
Tüm değişiklikler yapıldıktan sonra, Metin2 compile işlemi gerçekleştirilir. Hem game server, hem de client tarafında test edilmelidir. Özellikle efsun sırasında crash veya hata alınmaması için tüm sistemlerin uyumlu olması gerekir. Source edit işlemleri sonrası, sunucu başlatıldığında 6. ve 7. efsunlar sorunsuz çalışmalıdır.
Sonuç: Metin2 özel sunucularında 6. ve 7. efsunları eklemek, oyuncular için daha heyecanlı ve rekabetçi bir oyun deneyimi sunar. Bu işlem, C++ source edit, PyGUI, DB Core ve Client SRC gibi birçok alanı kapsar. Doğru yapılandırıldığında, oyuncuların karakterlerini güçlendirme konusunda ciddi bir ilerleme sağlar.
MaviAyGames | Adding 6th and 7th Enchantments to Metin2
Adding advanced features in Metin2 private servers can significantly enhance player experience. In this context, systems like those known from MaviAyGames have gained popularity among Metin2 private server developers. Particularly, high-level bonuses such as Metin2 6th and 7th enchantments allow players to strengthen their characters. In this article, we will explain in detail how to add 6th and 7th enchantments to Metin2 private servers.
What is the Metin2 Enchantment System?
In Metin2, enchantments are systems that allow items to gain random or fixed bonuses. In the original game, the maximum enchantment level reaches up to 5. However, on private servers, this limit is often extended. The 6th and 7th enchantments provide extra bonuses to weapons and armor, giving significant advantages in PVP systems. These bonuses typically include attack power, defense, health, and other special stats.
Enchantment Changes in C++ Source Code
To add 6th and 7th enchantments to Metin2 private servers, modifications are usually required in the game server source code. Especially in C++-based systems, these operations are performed at a technical level. First, you need to examine the files where functions managing the enchantment system are located. These are typically files like char_item.cpp and item_manager.cpp.
Firstly, the maximum enchantment limit must be set in the constantsmanager.cpp file. Here, the MAX_REFINE constant should be set to 6 or 7. Then, bonuses given during enchantment are defined. This is usually done through a table. For example, the 6th enchantment could grant a 10% attack increase, while the 7th enchantment provides a 15% attack boost.
UI Script and Py Root Settings in Python
After adding the enchantment system, these changes must also appear in the game interface. Therefore, modifications must be made in uiscript files. Especially, the enchant window needs to be adjusted to display the new enchantments. For this, python files in the py root directory are edited.
For instance, enchantment level checking functions in uiinventory.py are updated. Additionally, files like refine_dialog.py should show what bonuses the 6th and 7th enchantments provide. If these bonuses are dynamic, dynamic data display can be implemented using PyGUI.
Database Settings and Bonus Rates
For 6th and 7th enchantments, bonus rates must be defined in the db core. Specifically, work must be done on tables like mob_proto, item_proto, and refine_proto. New item IDs or special refine items may be defined for new enchantment levels, allowing players to perform 6th or 7th enchantment with certain items.
Also, in systems communicating with the auth server, database queries during enchantment must be restructured. This is important for both security and performance. Extra care is needed if integrated with systems like Martysama.
Testing and Compilation Process[/BR]After all changes are completed, the Metin2 compile process must be executed. Both the game server and client sides should be tested. To avoid crashes or errors during enchanting, all systems must be compatible. Once properly configured, the 6th and 7th enchantments should work smoothly after starting the server.
Conclusion: Adding 6th and 7th enchantments to Metin2 private servers offers a more exciting and competitive gameplay experience. This involves multiple areas such as C++ source edit, PyGUI, DB Core, and Client SRC. When correctly configured, it allows players significant progression in strengthening their characters.
