Az Önceki Konumuzda Ekrana Sadece QuestionDialog Getirmiştik ve Tamam Butonuna Bastığımızda Işınlama İşlemi Yapmıyordu.
Basit Bir Kodlama İle Bu Yapılabilir.
Cmd.cpp Açın ve Ekleyin:
Basit Bir Kodlama İle Bu Yapılabilir.
Cmd.cpp Açın ve Ekleyin:
Dizi İçine Ekleyin
Cmd_General.cpp Açın ve En Alta Ekleyin:
Common/Length.h Açın ve Ekleyin:
Benim Tüm MapIndex'lerim enum MapTypes İçinde Sabit Olarak Ekli. Cmd_General.cpp'den İsterseniz Tanımlamaları Silip Manuel Olarak Sayı Girebilirsiniz.
GameSource Build Alın ve Root/UiRestart.py Açın ve AnswerRestartElementalWorld İşlevini Şu Şekilde Değiştirin:
KANIT:
C++ / Python ile Official Elemental World Haritası (Işınlama Güncellemesi)
Metin2 özel sunucularında gelişmiş harita sistemleri ve ışınlama mekanikleri, oyuncuların deneyimini ciddi anlamda artırır. Bu yazıda, Official Elemental World haritası üzerinde ışınlama sistemini C++ ve Python tabanlı kaynak kodlarla nasıl entegre edebileceğinizi detaylıca ele alacağız. Metin2 lobby olarak hazırladığımız bu rehber, hem server-side hem de client-side değişiklikler içerir.
Harita Sistemi ve Işınlama Mekaniği Nedir?
Metin2 sunucularında ışınlama (teleportation), oyuncuların bir haritadan diğerine hızlıca geçmesini sağlayan temel sistemlerden biridir. Elemental World, bu bağlamda geniş bir coğrafya sunar ve birçok alt bölgeye sahiptir. Bu bölgeler arasında geçiş yapabilmek için Python GUI arayüzleri, C++ server-side komutlar ve root dosyalarında yapılan düzenlemeler gereklidir.
Python Tarafında Teleport Arayüzü Oluşturmak
Python tarafında bir ışınlanma menüsü oluşturmak için öncelikle uiscript klasörü altında bir GUI dosyası hazırlanmalıdır. Bu dosya, oyuncuya Elemental World haritasının bölümlerini listeleyecek ve seçilen konuma göre ışınlanma işlemini tetikleyecektir. Py Root klasöründe bulunan net modülü üzerinden sunucuya istek gönderilebilir. Örnek bir yapı şu şekildedir:
- Uiscript altında 'teleport_window.py' adında bir pencere tanımlanır.
- Bu pencere, 'teleport_info.py' dosyasıyla veri alır.
- Tıklanan buton, 'game.py' üzerinden server'a 'TELEPORT' komutu gönderir.
C++ Tarafında Işınlama Mantığı
Sunucu tarafında, ışınlanma komutları genellikle game/src dizinindeki char_manager.cpp veya input_main.cpp gibi dosyalarda işlenir. Gelen isteğe göre oyuncunun bulunduğu harita kontrol edilir ve yeni koordinatlar atanır. Bu işlem sırasında db_core üzerinden oyuncu verisi güncellenmelidir. Ayrıca, ışınlanma esnasında motion veya effect sistemlerine entegrasyon yapılabilir.
Harita Dosyalarını Hazırlamak
Elemental World haritasının doğru çalışması için map_info.xml dosyasında gerekli tanımlar yapılmalıdır. Her harita için map_index numarası, start_position ve warp_zones gibi veriler tanımlanır. Bu dosya pack içine yerleştirilerek client tarafında kullanılabilir hale getirilir.
Güncellemeler ve Güvenlik
Işınlama sistemi, sunucu güvenliği açısından dikkatle yönetilmelidir. Yanlış koordinatlara ışınlanmayı engellemek için warp_check fonksiyonları geliştirilmelidir. Ayrıca, Martysama gibi popüler sistemlerle uyumlu çalışacak şekilde kodlar özelleştirilmelidir.
Sonuç
Official Elemental World haritası ve ışınlama güncellemesi, Metin2 özel sunucularında kullanıcı deneyimini artırmak için önemli bir yapıdır. C++ ve Python dillerindeki entegrasyonlarla güçlü bir sistem oluşturulabilir. Metin2 Lobby olarak, bu tür gelişmiş sistemlerin geliştirilmesi için gerekli tüm kaynakları sağlıyoruz.
Official Elemental World Map with Teleport Update (C++ / Python)
In Metin2 private servers, advanced map systems and teleport mechanics significantly enhance player experience. In this article, we will explain how to integrate the teleportation system into the Official Elemental World map using C++ and Python-based source codes. As Metin2 Lobby, our guide includes both server-side and client-side modifications.
What Is the Map System and Teleport Mechanism?
In Metin2 servers, teleportation allows players to quickly move from one map to another. The Elemental World offers a vast geography with multiple sub-regions. To travel between these regions, Python GUI interfaces, C++ server-side commands, and modifications within root files are required.
Creating a Teleport Interface in Python
To create a teleport menu in Python, you must first prepare a GUI file under the uiscript folder. This file lists the sections of the Elemental World map and triggers the teleport action based on the selected location. Requests can be sent to the server through the net module found in the py root folder. An example structure is as follows:
- Define a window named 'teleport_window.py' inside the uiscript folder.
- This window receives data via 'teleport_info.py'.
- The clicked button sends a 'TELEPORT' command to the server through 'game.py'.
Teleport Logic in C++
On the server side, teleport commands are typically handled in files like char_manager.cpp or input_main.cpp located in game/src. Based on the incoming request, the player's current map is checked and new coordinates are assigned. During this process, the player's data should be updated via db_core. Additionally, integration with motion or effect systems during teleportation may be implemented.
Preparing Map Files
For the Elemental World map to function properly, necessary definitions must be made in the map_info.xml file. Each map requires entries such as map_index number, start_position, and warp_zones. This file is placed inside the pack to become available on the client-side.
Updates and Security
The teleportation system must be carefully managed for server security. Functions like warp_check should be developed to prevent teleportation to invalid coordinates. Furthermore, codes should be customized to work compatibly with popular systems like Martysama.
Conclusion
The Official Elemental World map and teleport update represent an important feature for enhancing user experience in Metin2 private servers. By integrating systems using C++ and Python, a robust infrastructure can be built. At Metin2 Lobby, we provide all necessary resources for developing such advanced systems.
