basit bir kaç satır koda ekleme yapılacak sadece yapıpta saklayan varsa boşuna saklamış
zaten martysama example diye örnek bırakmış dosyalara 
bendekiler osmanlı2 k envanterine göre ayarlanmış kendi k envanter kodlarınıza göre bu 2 yeri editlemeniz yeterli. yanlız martynin eski tarz bıraktığı yerler varsa oraya eski usul manuel editlemeniz lazım. onu da anlatımdan anlarsınız. eğer eklemeniz gereken yerde getemptyinventoryex kodu ya da getwindowinventoryex kodu varsa oralara ekstra ekleme yapmanıza gerek yok.
bendekiler osmanlı2 k envanterine göre ayarlanmış kendi k envanter kodlarınıza göre bu 2 yeri editlemeniz yeterli. yanlız martynin eski tarz bıraktığı yerler varsa oraya eski usul manuel editlemeniz lazım. onu da anlatımdan anlarsınız. eğer eklemeniz gereken yerde getemptyinventoryex kodu ya da getwindowinventoryex kodu varsa oralara ekstra ekleme yapmanıza gerek yok.
Kod:
int CHARACTER::GetEmptyInventoryEx(LPITEM item) { if (!item) return -1; int cell = -1; if (item->IsDragonSoul()) cell = GetEmptyDragonSoulInventory(item); #ifdef ENABLE_SPECIAL_STORAGE[HASH=2]#ifdef[/HASH]lse if (item->IsUpgradeItem()) // example cell = GetEmptyUpgradeInventory(item); else if (item->IsBook()) // example cell = GetEmptyBookInventory(item); else if (item->IsStone()) // example cell = GetEmptyStoneInventory(item); else if (item->IsFlower()) // example cell = GetEmptyFlowerInventory(item); else if (item->IsAttrItem()) // example cell = GetEmptyAttrInventory(item); else if (item->IsChest()) // example cell = GetEmptyChestInventory(item); #endif else cell [HASH=3]#endif[/HASH]mptyInventory(item->GetSize()); return cell; }
Kod:
int CItem::GetWindowInventoryEx() { if (IsDragonSoul()) return DRAGON_SOUL_INVENTORY; #ifdef ENABLE_SPECIAL_STORAGE[HASH=2]#ifdef[/HASH]lse if (IsUpgradeItem()) // example return UPGRADE_INVENTORY; else if (IsBook()) // example return BOOK_INVENTORY; else if (IsStone()) // example return STONE_INVENTORY; else if (IsFlower()) // example return FLOWER_INVENTORY; else if (IsAttrItem()) // example return ATTR_INVENTORY; else if (IsChest()) // example return CHEST_INVENTORY; #endif return INVENTORY; [HASH=3]#endif[/HASH]E][/CENTER]
Martysama Server Files'e K Envanter Uyarlama Rehberi
Metin2 Lobby olarak, Metin2 özel sunucu geliştirme konusunda aktif olan topluluk üyelerine değerli kaynaklar ve detaylı rehberler sunmaya devam ediyoruz. Bu makalede, Martysama Server Files üzerinde K Envanter özelliğini nasıl uygalayacağınızı adım adım anlatacağız. Bu işlem, hem oyun içi deneyimi geliştirecek hem de oyuncuların envanter alanlarını genişleterek daha fazla eşya taşımasını sağlayacaktır.
K Envanter Nedir?
K Envanter, Metin2 oyununda oyuncuların envanterinde daha fazla eşya taşımalarını sağlayan gelişmiş bir özelliktir. Normal envanterde 45 slot bulunurken, K Envanter ile bu sayı 90 veya daha fazlasına çıkartılabilir. Bu sistem, özellikle PvP sunucularında çok önemlidir çünkü oyuncuların daha fazla ekipman, pet, silah ve aksesuar taşıması gerekir.
Martysama Server Files Hazırlığı
Öncelikle Martysama Server Files sürümünüzü kontrol etmelisiniz. K Envanter uyumlu dosyalarla çalıştığınızdan emin olun. Eğer mevcut sürümünüz uyumsuzsa, güncelleme yapmanız gerekebilir. Sistemdeki game core[/COORD] ve client src üzerinde değişiklikler yapılacak.
Client Tarafında Değişiklikler
Client kısmında, öncelikle uiscript ve py root dosyalarında düzenlemeler yapılmalıdır. inventorywindow.py dosyası üzerinde çalışarak, K Envanter için gerekli GUI ayarlarını yapmalısınız. Bu işlemde Python GUI bilginiz oldukça işinize yarayacaktır.
Envanter Slot Sayısı Ayarı
Client dosyasında bulunan inventorywnd.py dosyasında, slot sayısı tanımlanmış satırları bularak 45 ten 90 a veya daha yüksek değerlere çekmeniz gerekir. Örneğin: INV_WINDOW_SIZE = 90 gibi. Ayrıca uiinventory.py dosyasında da benzer değişiklikler yapılmalıdır.
Game Sunucusu Tarafında Ayarlar
Server tarafında, game core dosyalarında envanter limitleriyle ilgili ayarlar yapılmak zorundadır. char_item.cpp ve char_manager.cpp gibi dosyalarda, envanter boyutunu belirten sınırlar güncellenmelidir. Burada dikkat edilmesi gereken nokta, veritabanı (db core) ile uyumun korunmasıdır.
Python ve C++ Kod Entegrasyonu
Bazı durumlarda, C++ source üzerinde değişiklikler yaparak envanteri genişletmek gerekebilir. source edit işlemi sırasında dikkatli olunmalıdır. Aynı zamanda Python script tarafında da destekleyici kodlar yazılmalıdır. Metin2 Lobby olarak, bu süreçte size özel destek sunuyoruz.
Test ve Derleme[/COORD]
Tüm değişiklikler tamamlandıktan sonra, compile işlemi yapılarak sunucu yeniden başlatılmalıdır. Client tarafında da test edilmelidir. Hatalar kontrol edilmeli ve gerekirse debug işlemleri yapılmalıdır.
Sonuç
Martysama Server Files üzerinde K Envanter uyarlama işlemi, Metin2 özel sunucu geliştiricileri için oldukça değerli bir özelliktir. Bu rehber sayesinde, hem client hem de server tarafında gerekli ayarlamaları yaparak oyunculara daha iyi bir deneyim sunabilirsiniz. Metin2 Lobby olarak, gelişimlerinizde yanınızdayız!
Adapting K Inventory to Martysama Server Files
At Metin2 Lobby, we continue providing valuable resources and detailed guides for the active community members engaged in Metin2 private server development. In this article, we will explain step-by-step how to implement the K Inventory feature on Martysama Server Files. This process will enhance the in-game experience and allow players to carry more items by expanding their inventory space.
What is K Inventory?
K Inventory is an advanced feature in Metin2 that allows players to carry more items in their inventory. While the standard inventory has 45 slots, with K Inventory this number can be increased to 90 or even more. This system is especially important in PvP servers where players need to carry more equipment, pets, weapons, and accessories.
Preparing Martysama Server Files
Firstly, you should check your Martysama Server Files version. Ensure that you are working with files compatible with K Inventory. If your current version is incompatible, you may need to update. Changes will be made to game core and client src.
Client-Side Modifications
On the client side, adjustments must be made to uiscript and py root files. By working on the inventorywindow.py file, you will set up the required GUI settings for K Inventory. Knowledge of Python GUI will be highly beneficial during this process.
Setting Inventory Slot Count
In the client file, locate the lines defining the slot count in inventorywnd.py and increase them from 45 to 90 or higher values. For example: INV_WINDOW_SIZE = 90. Similar changes should also be made in uiinventory.py.
Server-Side Settings
On the server side, settings related to inventory limits must be adjusted within game core files. Files like char_item.cpp and char_manager.cpp should have their inventory size limits updated. It's important to maintain compatibility with the database (db core).
Python and C++ Code Integration
In some cases, modifications to the C++ source might be necessary to expand the inventory. During source edit operations, caution is essential. Additionally, supporting code must be written on the Python script side. At Metin2 Lobby, we provide special support during these processes.
Testing and Compilation
After all changes are completed, perform the compile operation and restart the server. The client side must also be tested. Errors should be checked, and debugging procedures performed if needed.
Conclusion
Adapting K Inventory on Martysama Server Files is a very valuable feature for Metin2 private server developers. With this guide, you can make the necessary adjustments on both the client and server sides to offer a better experience for your players. At Metin2 Lobby, we stand beside your developments!
