İkarus v2 K envanteri uyarlama

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 55

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
char.cpp dosyası açılır
arat
<code class="bbCodeInline">bool CHARACTER::CanTakeInventoryItem(LPITEM item, TItemPos* pos)</code>

değiştir

<code class="bbCodeInline">bool CHARACTER::CanTakeInventoryItem(LPITEM item, TItemPos* pos)</code><code class="bbCodeInline">{</code><code class="bbCodeInline"> int emptyPos = -1;</code><code class="bbCodeInline"></code><code class="bbCodeInline"> if (item-&gt;IsDragonSoul())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyDragonSoulInventory(item);</code><code class="bbCodeInline"> pos-&gt;window_type = DRAGON_SOUL_INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline">#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM</code><code class="bbCodeInline"> else if (item-&gt;IsSkillBook())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptySkillBookInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"> else if (item-&gt;IsUpgradeItem())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyUpgradeItemsInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"> else if (item-&gt;IsStone())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyStoneInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"> else if (item-&gt;IsBox())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyBoxInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"> else if (item-&gt;IsEfsun())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyEfsunInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"> else if (item-&gt;IsCicek())</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyCicekInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline">#endif</code><code class="bbCodeInline"> else</code><code class="bbCodeInline"> {</code><code class="bbCodeInline"> pos-&gt;cell = emptyPos = GetEmptyInventory(item-&gt;GetSize());</code><code class="bbCodeInline"> pos-&gt;window_type = INVENTORY;</code><code class="bbCodeInline"> }</code><code class="bbCodeInline"></code><code class="bbCodeInline"> return emptyPos != -1;</code><code class="bbCodeInline">}</code>
İkarus v2 K Envanteri Uyarlama Rehberi


Giriş
Metin2 özel sunucularında geliştirme yaparken, oyuncuların daha fazla envanter alanına erişebilmesi için farklı yöntemler kullanılır. Bu yöntemlerden birisi de İkarus v2 K sistemidir. Bu sistem sayesinde oyuncuların envanter kapasiteleri artırılır, bu da daha fazla eşya taşıma imkanı sağlar. Bu yazıda, İkarus v2 K sisteminin nasıl doğru bir şekilde entegre edileceği ve envanter uyumlarının nasıl yapılacağı detaylı olarak ele alınacaktır.

İkarus v2 K Nedir?
İkarus v2 K, Metin2 özel sunucu geliştiricileri tarafından yaygın olarak kullanılan bir envanter genişletme sistemidir. Bu sistem, oyuncuların sahip olduğu envanter sayısını artırmakta ve oyun içi deneyimi daha konforlu hale getirmektedir. Özellikle PvP sunucularında, oyuncuların daha fazla ekipman, kutsama kağıdı, pet eşyası gibi öğeleri taşıyabilmesi büyük önem taşır.

Sistem Kurulumu ve Gereksinimler
İkarus v2 K sistemini aktif etmek için öncelikle sunucu tarafında gerekli C++ değişikliklerinin yapılması gerekir. Bu işlem sırasında game core üzerinde çalışmak ve source edit yapabilmek için temel seviyede C++ bilgisi gerekebilir. Ayrıca, client src üzerinde de bazı değişiklikler yapılması gerekir. Bu nedenle, geliştiricilerin hem sunucu hem de istemci tarafında çalışabilmesi önemlidir.

Envanter Sayısı Arttırma
Varsayılan olarak Metin2'de oyuncuların 48'lik bir envanter kapasitesi vardır. Bu sistemle birlikte bu sayı artırılır. Örneğin, İkarus v2 K ile bu sayı 96'ya çıkarılabilir. Bu işlem, hem game server hem de client tarafında yapılmak zorundadır. Python tabanlı arayüz dosyalarında (uiscript) envanter boyutu tanımlamaları yapılır. Py GUI sistemleri bu işlemde yardımcı olabilir.

Client Tarafında Yapılacaklar
Client tarafında yapılacak ilk adım, uiscript dosyalarının düzenlenmesidir. Burada inventory wnd sınıflarında yapılan değişikliklerle yeni envanter alanları tanımlanır. Bu işlem sırasında py root dizinindeki dosyalarda uyumlu olacak şekilde değişiklikler yapılmalıdır. Ayrıca, Martysama gibi araçlar yardımıyla bu süreç daha kolay hale getirilebilir.

Game Server Tarafında Yapılacaklar
Game server tarafında, C++ tabanlı source code üzerinde envanter kapasitesini artıracak değişiklikler yapılır. Özellikle char_item.cpp, packet.h gibi dosyalar üzerinde çalışmak gerekebilir. Bu işlemler sırasında dikkatli olunması gerekir çünkü hatalı kodlama sunucuda ciddi sorunlara yol açabilir.

Veritabanı Uyumları
Envanter sayısı artırıldığında, veritabanı (db) tarafında da bazı değişiklikler yapılması gerekir. Özellikle envanterdeki eşyaların veritabanına yazılma mantığı göz önünde bulundurulmalıdır. Bu bağlamda auth ve game veritabanlarında inventory tablolarında gerekli düzenlemeler yapılmalıdır. Bu, veri kaybını önlemek açısından kritik öneme sahiptir.

Hata Ayıklama ve Test
Tüm sistem entegrasyonundan sonra mutlaka test işlemleri yapılmalıdır. Oyuncuların yeni envanter alanlarını kullanabildiği, herhangi bir hata veya donma yaşamadığı kontrol edilmelidir. Metin2 lobby gibi platformlarda geliştirilen sistemlerin test edilmesi, sorunların erken tespiti açısından önemlidir.

Sonuç
İkarus v2 K sistemi, Metin2 özel sunucularında envanter genişletimi için oldukça etkili bir yöntemdir. Doğru şekilde entegre edildiğinde oyuncuların oyun deneyimini ciddi anlamda artırır. Ancak, bu sistemin doğru çalışması için client, server ve database arasında tam uyum sağlanmalıdır. Geliştiricilerin bu konularda titiz davranması, uzun vadede daha stabil ve kullanıcı dostu sunucular geliştirmelerini sağlayacaktır.


Adapting İkarus v2 K Inventory System


Introduction
When developing Metin2 private servers, various methods are used to allow players access to larger inventory spaces. One such method is the İkarus v2 K system. This system increases player inventory capacity, allowing them to carry more items. In this article, we will provide detailed information on how to properly integrate the İkarus v2 K system and adjust inventory compatibility.

What Is İkarus v2 K?
İkarus v2 K is an inventory expansion system commonly used by Metin2 private server developers. It increases the number of inventory slots available to players, enhancing the in-game experience. Especially on PvP servers, it's crucial for players to carry more equipment, blessing scrolls, pet items, etc.

System Installation and Requirements
To activate the İkarus v2 K system, certain C++ modifications must be made on the server side. This process requires basic knowledge of C++ to work with the game core and perform source edits. Additionally, some changes may also need to be made to the client src. Therefore, developers should be able to work on both server and client sides.

Increasing Inventory Slots
By default, Metin2 provides players with 48 inventory slots. With this system, that number can be increased—up to 96 slots with İkarus v2 K. These changes must be applied on both the game server and client sides. Modifications in Python-based UI files (uiscript) define the new inventory sizes. Py GUI systems can assist in this process.

Client-Side Modifications
The first step on the client side involves editing uiscript files. Changes in the inventory wnd classes define the new inventory areas. These changes must be compatible with files located in the py root directory. Tools like Martysama can simplify this process.

Server-Side Modifications
On the game server side, C++-based source code must be modified to increase inventory capacity. Files such as char_item.cpp and packet.h often require adjustments. Care must be taken during these modifications, as errors could cause critical issues on the server.

Database Compatibility
When increasing inventory space, corresponding changes must also be made in the database (db). The way items in the inventory are stored in the database must be considered. Relevant updates to inventory tables in the auth and game databases are essential to prevent data loss.

Debugging and Testing
After all integrations, thorough testing is required. It must be ensured that players can use their new inventory slots without any errors or freezes. Testing systems on platforms like Metin2 lobby is important for early issue detection.

Conclusion
The İkarus v2 K system is a highly effective solution for expanding inventory space on Metin2 private servers. When properly integrated, it significantly enhances the player experience. However, full compatibility between client, server, and database is essential for correct operation. Developers who are meticulous about these aspects will be able to create more stable and user-friendly servers in the long term.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt