Kod:
-1. Kısım: Envantere butonu yerleştirmek. (pack / python) -2. Kısım: Butona bir eşyayla tıklanıp tıklanmadığının kontrolü (sürükle-bırak) ve beraber tıklanan eşyanın hangi slotta / pozisyonda olduğunun verisini elde edip bunu oyun içinde yazdırmak. (pack / python) -3. Kısım: Client source'da, oyun içinden edindiğimiz "item pozisyonu" verisini servera göndermek üzere bir paket tanımlamak ve Python tarafından "net.FonksiyonAdımız" kullanımıyla erişebileceğimiz (ve veriyi servera gönderecek olan) bir fonksiyon yazmak. Root'tan fonksiyonu çağırmak. (client src / c++) -4. Kısım: Server source'da gelen veriyi işlemek üzere aynı paketi tanımlamak, gelen envanter pozisyonuna göre itemi bulup, eğer giyilmiyorsa itemi silmek. (game src / c++) Ve sürüklenen itemin mouse'a takılı kalmasını önlemek. (python) -5. ve son kısım: "Silmek istediğinden emin misin?" evet/hayır kontrolü. (pack / python)
Basit Sistem Yazma Rehberi: Metin2 Envanter İçinde Çöp / Item Silme Butonu
Metin2 özel sunucularında kullanıcı deneyimini artırmak için geliştiriciler sürekli yenilikler yapar. Bu yeniliklerden biri de envanter içinde gereksiz eşyaları hızlıca silmek için bir sistem entegre etmektir. Bu rehberde, envanter içinde çöp veya item silme butonu oluşturma sürecini adım adım ele alacağız. Bu sistem özellikle Metin2 private server geliştiricileri için değerlidir.
Sistemin Amacı
Bu sistem sayesinde oyuncuların envanterinde bulunan gereksiz eşyaları hızlıca silmeleri sağlanır. Özellikle PvP sunucularında bu gibi küçük ama etkili sistemler kullanıcı memnuniyetini artırır. Ayrıca C++ ve Python tabanlı sistemlerle kolayca entegre edilebilir.
Geliştirme Ortamı
Bu sistemi geliştirmek için aşağıdaki bileşenlere ihtiyacınız olacaktır:
- Client-side: Python GUI (PyUI), uiscript, py root dosyaları.
- Server-side: Game server kaynak kodları (src), auth ve db yapıları.
Python Tarafında Uygulama
Öncelikle Python tarafında uiscript dosyasına yeni bir buton tanımlaması yapılmalıdır. Bu buton, envanter penceresine eklenecek ve tıklanması durumunda seçilen eşyayı silme işlemi başlatılacaktır. PyGUI kütüphanesi kullanılarak arayüzde kolayca buton eklenebilir. Butonun işlevi, seçilen itemi belirleyip sunucuya silme isteği göndermek olacaktır.
C++ Tarafında Sunucu Entegrasyonu[/CENTER]
Sunucu tarafında, gelen silme isteğine göre eşya veritabanında kontrol edilir ve ardından envanterden silinir. Bu işlem sırasında güvenlik önlemleri alınmalıdır. Örneğin, oyuncunun gerçekten o eşyaya sahip olup olmadığı kontrol edilmelidir. Bu tür kontroller, game server üzerinde C++ ile yazılmış özel fonksiyonlarla sağlanabilir.
Dikkat Edilmesi Gerekenler
- Silinen eşyalar geri getirilemeyeceği için kullanıcıya onay mesajı gösterilmelidir.
- Sunucu tarafında güvenlik açıklarına dikkat edilmelidir.
- Martysama gibi gelişmiş sistemlerle uyumlu olacak şekilde kodlanmalıdır.
Sonuç
Envanter içi item silme sistemi, hem kullanıcı dostu hem de performanslı bir yapıdır. Metin2 development süreçlerinde bu tarz küçük ama faydalı sistemler, sunucunuzun öne çıkmasını sağlar. Geliştiriciler, bu rehber doğrultusunda kendi sistemlerini özelleştirebilir ve Metin2 lobby gibi platformlarda paylaşarak toplulukla birlikte büyüyebilirler.
Simple System Writing Guide: Trash / Item Delete Button for Inventory
To enhance user experience in Metin2 private servers, developers constantly introduce new features. One such feature is integrating a quick system to delete unwanted items directly from the inventory. This guide will walk you through creating an item deletion button inside the inventory. This system is especially valuable for Metin2 private server developers.
Purpose of the System
This system allows players to quickly delete unnecessary items from their inventory. Particularly on PvP servers, such small yet effective systems improve user satisfaction. Additionally, the system can be easily integrated with C++ and Python-based architectures.
Development Environment
The following components are required to develop this system:
- Client-side: Python GUI (PyUI), uiscript, py root files.
- Server-side: Game server source codes (src), auth and db structures.
Implementation in Python
Firstly, a new button must be defined in the uiscript file. This button will be added to the inventory window, and upon clicking, it will initiate the deletion process of the selected item. The PyGUI library can be used to easily add the button to the interface. The function of the button will be to identify the selected item and send a delete request to the server.
Server-Side Integration with C++
On the server side, the incoming deletion request is validated by checking the item in the database, then the item is removed from the player's inventory. Security measures must be taken during this process. For example, verifying whether the player truly owns the item should be ensured. Such validations can be handled by custom functions written in C++ within the game server.
Important Considerations
- Since deleted items cannot be recovered, a confirmation message must be shown to the user.
- Security vulnerabilities must be carefully addressed on the server side.
- Code should remain compatible with advanced frameworks like Martysama.
Conclusion
An in-inventory item deletion system is both user-friendly and performance-efficient. In Metin2 development processes, such small yet useful systems help your server stand out. Developers can customize their own systems according to this guide and share them on platforms like Metin2 lobby to grow together with the community.
